refactor(world): own live environment state
Move the DAT sky, selected day group, world clock, weather, AdminEnvirons bridge, and debug cycles into a one-shot WorldEnvironmentController while preserving GameWindow's public aliases and accepted startup/session/render order. Correct the named retail citations and register the remaining environment audio and fog/radar gaps. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
557eb7ef6b
commit
d09e246d3a
19 changed files with 606 additions and 368 deletions
|
|
@ -35,7 +35,8 @@ DayOfYear = 47 ✓
|
|||
The decompile agent's C trail
|
||||
(`docs/research/2026-04-23-sky-decompile-hunt-C.md` §1 + §4) labeled
|
||||
`TimeOfDay+0x10` as *"SecondsPerDay (int copy — source of iVar6)"*
|
||||
for the `FUN_00501990` (`SkyDesc::PickCurrentDayGroup`) LCG seed.
|
||||
for the named `SkyDesc::CalcPresentDayGroup @ 0x00500E10` LCG seed
|
||||
(older-build cross-reference `FUN_00501990 @ 0x00501990`).
|
||||
|
||||
The live probe disproves that. The value is **360** — the same as
|
||||
`GameTime.DaysPerYear` from the dat.
|
||||
|
|
@ -43,7 +44,8 @@ The live probe disproves that. The value is **360** — the same as
|
|||
Implication for the retail LCG seed formula:
|
||||
|
||||
```c
|
||||
// FUN_00501990 line 1296 of chunk_00500000.c:
|
||||
// SkyDesc::CalcPresentDayGroup @ 0x00500E10
|
||||
// (older build: FUN_00501990 line 1296 of chunk_00500000.c):
|
||||
iVar4 = (iVar3 * iVar6 + iVar4) * 0x6a42fdb2 + -0x7541e9ae;
|
||||
// ^Year ^x0x10 ^DayOfYear
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue