2026-04-19 11:27:09 -07:00
|
|
|
# Runtime Effect Kind-8 Tier2 Sequencing Note
|
|
|
|
|
|
|
|
|
|
This note extracts the current late bringup sequencing around the Tier 2
|
|
|
|
|
candidate/world-state rebuild strip beneath
|
|
|
|
|
`world_entry_transition_and_runtime_bringup` `0x00443a50`.
|
|
|
|
|
|
|
|
|
|
## Earlier recipe-runtime rebuild checkpoint
|
|
|
|
|
|
|
|
|
|
The earlier post-load recipe-runtime rebuild call at `0x00443ebc` runs:
|
|
|
|
|
|
|
|
|
|
- immediately after the named candidate-availability collection at `[world+0x66b2]`
|
|
|
|
|
has been restored from fixed `0x22`-byte rows
|
2026-04-21 18:44:10 -07:00
|
|
|
- by directly calling `0x00435630`
|
|
|
|
|
- then calling `0x00412c10` only if live candidate pool `0x0062b268` is non-null
|
2026-04-19 11:27:09 -07:00
|
|
|
- before the neighboring candidate filter/count rebuilds
|
|
|
|
|
`0x00412c10 / 0x00412bd0`
|
|
|
|
|
- before the year-derived follow-ons
|
|
|
|
|
`0x00434130 / 0x00436af0`
|
|
|
|
|
|
|
|
|
|
That means the earlier checkpoint is already candidate/world rebuild work, not the final
|
|
|
|
|
kind-`8` materializer by itself.
|
|
|
|
|
|
|
|
|
|
## Later `0x197` checkpoint
|
|
|
|
|
|
|
|
|
|
The later explicit `0x197` checkpoint at `0x00444ac1` sits:
|
|
|
|
|
|
|
|
|
|
- after `world_publish_shell_controller_progress_scalar_from_year_thresholds_or_selector_overrides`
|
|
|
|
|
`0x004354a0`
|
|
|
|
|
- after the territory-side sweep
|
|
|
|
|
`world_region_border_overlay_emit_segment_geometry_from_region_grid`
|
|
|
|
|
`0x00487de0`
|
2026-04-21 18:44:10 -07:00
|
|
|
- and then directly reruns `0x00435630`
|
|
|
|
|
- then falls through into
|
2026-04-19 11:27:09 -07:00
|
|
|
`world_preseed_named_candidate_availability_records_from_live_pool`
|
|
|
|
|
`0x00437737`
|
2026-04-21 18:44:10 -07:00
|
|
|
- followed by the later unconditional candidate-side availability refresh
|
2026-04-19 11:27:09 -07:00
|
|
|
`0x00412c10`
|
2026-04-21 18:44:10 -07:00
|
|
|
- and then `0x00434d40`
|
2026-04-19 11:27:09 -07:00
|
|
|
|
|
|
|
|
So the late Tier 2 strip begins with named-availability preseed and latch refresh, not with the
|
2026-04-21 18:47:56 -07:00
|
|
|
shell progress or territory overlay helpers that precede it, and it ends with one extra subtype-`2`
|
|
|
|
|
mark pass rather than stopping at the named-availability latch refresh.
|
2026-04-19 11:27:09 -07:00
|
|
|
|
|
|
|
|
## Internal Tier 2 rebuild relationships
|
|
|
|
|
|
|
|
|
|
Current grounded internal relationships:
|
|
|
|
|
|
|
|
|
|
- `0x00437737`
|
|
|
|
|
- pre-seeds scenario-side named candidate availability records from the live pool
|
|
|
|
|
- upserts records through `0x00434f20`
|
|
|
|
|
- `0x00434f20`
|
|
|
|
|
- writes a boolean named-availability override bit
|
|
|
|
|
- immediately re-enters `0x00412c10` when the live candidate pool exists
|
|
|
|
|
- `0x00412c10`
|
|
|
|
|
- refreshes `[candidate+0x7ac]` from named availability and then tails into
|
|
|
|
|
cargo-economy filter refresh `0x0041eac0`
|
|
|
|
|
- `0x00435630`
|
|
|
|
|
- rebuilds port/warehouse recipe runtime tables from scenario-side recipe books
|
|
|
|
|
- then re-enters `0x00412d70`
|
|
|
|
|
- `0x00412d70`
|
|
|
|
|
- rebuilds candidate runtime records from scenario state
|
2026-04-21 19:03:58 -07:00
|
|
|
- runs two explicit bank passes, first on nonzero `[candidate+0xba]` rows and then on nonzero
|
|
|
|
|
`[candidate+0xbb]` rows
|
|
|
|
|
- picks one availability-qualified seed row and either reuses or clones its full `0x1f2`-dword
|
|
|
|
|
body into the rebuilt numbered record
|
2026-04-19 11:27:09 -07:00
|
|
|
- does not consult the scenario-side recipe-book name at `[state+0x0fe8]`
|
|
|
|
|
- `0x00412fb0`
|
2026-04-21 18:47:56 -07:00
|
|
|
- broader collection load owner that directly loops through `0x004120b0`, then calls
|
|
|
|
|
`0x00412d70`, then `0x00412ab0`, and only after its later catalog rebuild re-enters
|
|
|
|
|
`0x00412c10`
|
2026-04-21 19:03:58 -07:00
|
|
|
- `0x004120b0` itself explicitly reads selector bytes `[candidate+0xba/+0xbb]` from the stream
|
2026-04-21 18:47:56 -07:00
|
|
|
- `0x00434d40`
|
|
|
|
|
- late post-refresh sweep over collection `0x0062b26c`
|
|
|
|
|
- sets `[entry+0x7b0] = 1` for subtype-`2` rows
|
2026-04-19 11:27:09 -07:00
|
|
|
|
|
|
|
|
## Current recovery implication
|
|
|
|
|
|
|
|
|
|
The strongest remaining Tier 2 question is sequencing, not naming:
|
|
|
|
|
|
|
|
|
|
- whether the shipped `Add Building Warehouse05` row in `Louisiana.gmp`
|
|
|
|
|
depends on the order or interaction of
|
|
|
|
|
`0x00437737 -> 0x00434f20 -> 0x00412c10`
|
|
|
|
|
versus
|
|
|
|
|
`0x00435630 -> 0x00412d70`
|
|
|
|
|
and the broader load-side rebuild owner
|
|
|
|
|
`0x00412fb0`,
|
2026-04-21 19:03:58 -07:00
|
|
|
with `0x004120b0` now grounded as the loader that reads `[candidate+0xba/+0xbb]` and
|
|
|
|
|
`0x00412d70` grounded as the immediate two-pass consumer of those bytes,
|
2026-04-21 18:44:10 -07:00
|
|
|
with the early checkpoint only conditionally refreshing `0x00412c10` but the late checkpoint
|
2026-04-21 18:47:56 -07:00
|
|
|
always rerunning `0x00435630 -> 0x00437737 -> 0x00412c10 -> 0x00434d40`,
|
2026-04-19 11:27:09 -07:00
|
|
|
rather than on a direct `Warehouse05` availability bit or recipe-book display-name leak.
|