docs(render): chunk 3 R5 — the second sky pass is retail's weather pass
GameSky::Draw 0x00506ff0 arg2==1 is the weather pass gated on SmartBox::is_player_outside 0x00451e80, already modeled by RenderWeather; chunk 3 only has to keep it after the last land cell. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
887f221674
commit
edb3278370
1 changed files with 12 additions and 10 deletions
|
|
@ -408,16 +408,18 @@ edits the same driver).
|
||||||
bisect" wording: the whole-stage terrain event is replaced in THIS chunk
|
bisect" wording: the whole-stage terrain event is replaced in THIS chunk
|
||||||
(drawing terrain twice would already hide the punch and make the gate
|
(drawing terrain twice would already hide the punch and make the gate
|
||||||
meaningless), and chunk 4 loses that deletion.
|
meaningless), and chunk 4 loses that deletion.
|
||||||
- **R5 — the sky draws TWICE.** `LScape::draw` @0x00506330 calls
|
- **R5 — the sky draws TWICE, and the second pass is the WEATHER.**
|
||||||
`GameSky::Draw(sky, 0)` @0x0050633c BEFORE `draw_check_blocks`, walks the
|
`LScape::draw` @0x00506330 calls `GameSky::Draw(sky, 0)` @0x0050633c BEFORE
|
||||||
blocks (`DrawBlock` @0x00506374), and then calls `GameSky::Draw(sky, 1)`
|
`draw_check_blocks`, walks the blocks (`DrawBlock` @0x00506374), then calls
|
||||||
@0x00506396 AFTER every block. acdream emits one `Sky()` event at the
|
`GameSky::Draw(sky, 1)` @0x00506396 AFTER every block. `GameSky::Draw`
|
||||||
landscape turn's start. The implementer reads `GameSky::Draw` (grep it)
|
@0x00506ff0's `arg2 == 1` is the weather pass, gated on
|
||||||
and reports what the second pass (`arg2 == 1`) draws; if it is a real
|
`SmartBox::is_player_outside` @0x00451e80 (already Ghidra-arbitrated and
|
||||||
post-terrain layer (horizon band, celestial sprites, the far fog dome),
|
modeled by `RetailPViewPassExecutor.DrawLandscapeSliceLate`'s `RenderWeather`
|
||||||
chunk 3 adds the second sky event after the last land cell; if it is
|
call — see that method's comment). Chunk 3 keeps the sky at the landscape
|
||||||
empty at retail defaults, the contract records why with the address. Do
|
turn's start and places the weather pass AFTER the last land cell of the
|
||||||
not guess — read it.
|
turn (retail order); the implementer confirms where the late landscape
|
||||||
|
slice runs relative to the new per-cell events and moves the weather call
|
||||||
|
only if it currently runs before them.
|
||||||
|
|
||||||
### 9.2 Production behavior change
|
### 9.2 Production behavior change
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue