diff --git a/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md b/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md index 96af78fc..a81ce0b5 100644 --- a/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md +++ b/docs/research/2026-09-01-overhaul/s3-walk-ownership-map.md @@ -408,16 +408,18 @@ edits the same driver). bisect" wording: the whole-stage terrain event is replaced in THIS chunk (drawing terrain twice would already hide the punch and make the gate meaningless), and chunk 4 loses that deletion. -- **R5 — the sky draws TWICE.** `LScape::draw` @0x00506330 calls - `GameSky::Draw(sky, 0)` @0x0050633c BEFORE `draw_check_blocks`, walks the - blocks (`DrawBlock` @0x00506374), and then calls `GameSky::Draw(sky, 1)` - @0x00506396 AFTER every block. acdream emits one `Sky()` event at the - landscape turn's start. The implementer reads `GameSky::Draw` (grep it) - and reports what the second pass (`arg2 == 1`) draws; if it is a real - post-terrain layer (horizon band, celestial sprites, the far fog dome), - chunk 3 adds the second sky event after the last land cell; if it is - empty at retail defaults, the contract records why with the address. Do - not guess — read it. +- **R5 — the sky draws TWICE, and the second pass is the WEATHER.** + `LScape::draw` @0x00506330 calls `GameSky::Draw(sky, 0)` @0x0050633c BEFORE + `draw_check_blocks`, walks the blocks (`DrawBlock` @0x00506374), then calls + `GameSky::Draw(sky, 1)` @0x00506396 AFTER every block. `GameSky::Draw` + @0x00506ff0's `arg2 == 1` is the weather pass, gated on + `SmartBox::is_player_outside` @0x00451e80 (already Ghidra-arbitrated and + modeled by `RetailPViewPassExecutor.DrawLandscapeSliceLate`'s `RenderWeather` + call — see that method's comment). Chunk 3 keeps the sky at the landscape + turn's start and places the weather pass AFTER the last land cell of the + 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