Tighten atlas seam annotations for transport and load/save

This commit is contained in:
Jan Petykiewicz 2026-04-14 01:57:02 -07:00
commit aaf9310e62
5 changed files with 299 additions and 120 deletions

View file

@ -26,7 +26,7 @@
helper inside the larger post-load generation pipeline `world_run_post_load_generation_pipeline`
at `0x004384d0` under the `Seeding Economy...` phase rather than under the ordinary player-facing
speed buttons. That setup pipeline is now clearer at the progress-banner level too: on the fuller
setup path it first runs one preliminary named-candidate availability prepass through `0x00437743`
setup path it first runs one preliminary named-candidate availability prepass through `0x00437737`
before any visible progress banner is posted. One startup-side selector edge is tighter now too:
`shell_active_mode_run_profile_startup_and_load_dispatch` `0x00438890` reaches an early
selector-`2` branch at `0x00438a66..0x00438c00` that refreshes one support-family type-`7`
@ -40,9 +40,10 @@
`structure_candidate_collection_run_post_load_local_service_setup_phase` `0x0041ea50`, and the conditional region pair
`world_region_collection_seed_default_regions` `0x00421b60` plus
`world_region_collection_refresh_neighbor_and_profile_bands` `0x00420f30`. One save-load-side
status-stack strip is now tighter too: `0x004422d0/0x00442330` push and pop the same four shell
dwords `[0x006cec74+0x140/+0x13c/+0x138/+0x144]` plus startup byte `[0x006cec78+0x4c74]`
through the local stack `0x0062be90` with depth `0x0062bedc`, and the paired wrappers
status-stack strip is now tighter too: `0x004422d0/0x00442330` push and pop the low bytes of the
same four shell lanes `[0x006cec74+0x140/+0x13c/+0x138/+0x144]` plus startup byte
`[0x006cec78+0x4c74]` through the local stack `0x0062be90` with depth `0x0062bedc`, and the
paired wrappers
`0x004423a0/0x004423d0` bracket that same band while also servicing the live TrackLay.win and
StationPlace.win tool objects through `0x0050e070`, `0x00507a50`, `0x0050a530`, and
`0x0050e1e0`. The live `.smp` serializer uses the higher pair, while `world_entry_transition_and_runtime_bringup`
@ -1186,13 +1187,13 @@
it then posts id `321` `Seeding Economy...` for `simulation_run_chunked_fast_forward_burst`
`0x00437b20`; only after those setup-side gates does the code post id `319`
`Setting up Players and Companies...`. That `319` lane is no longer just a shell-state placeholder: its
earlier hidden prepass is tighter now too: `0x00437743` is the scenario-side named
earlier hidden prepass is tighter now too: `0x00437737` is the scenario-side named
candidate-availability seeding pass over the live candidate pool `0x0062b268`, feeding the
override collection at `[state+0x66b2]` through `0x00434f20` before any visible banner is posted.
That grounded write path is narrower than the static file evidence, though: the startup reset
helper `world_runtime_reset_startup_dispatch_state_bands` `0x004336d0` explicitly clears
`[state+0x66b2]` before the dispatch path begins, and the current exported write-side callers
we can name after that reset are still just the live-pool preseed `0x00437743`, the sibling
we can name after that reset are still just the live-pool preseed `0x00437737`, the sibling
startup lane `0x00436ad7`, and the editor-side `Industry (Overall)` toggle handler
`0x004cf430` through `0x00434f20`. So while the fixed `0x6a70..0x73c0` candidate-availability
block is now well grounded as bundled map/save source data, a direct bulk-import path from that
@ -1479,8 +1480,10 @@
The editor-side help text cluster around ids `2433..2437` is no longer floating either: current
grounded map-editor code now has a live economic tuning family beside the chairman-slot panel.
`map_editor_economic_cost_slider_panel_construct` `0x004cadf0` binds six slider controls through
`map_editor_economic_cost_slider_dispatch` `0x004ca980` into the scenario-state float block
`[0x006cec78+0x0be2..0x0bf6]`, while the surrounding descriptor table at `0x00611c70..0x00612220`
`map_editor_economic_cost_slider_dispatch` `0x004ca980`, which now grounds as the real writer for
the scenario-state float block `[0x006cec78+0x0be2..0x0bf6]`: lane `0` uses one dedicated scale
divisor, the trailing five lanes share the centered `(value-0xce)` path, and the helper mirrors
lane `0` into `[state+0x0bde]`. The surrounding descriptor table at `0x00611c70..0x00612220`
pairs that wider editor lane with localized fields `Prime Rate`, `Merger Premium`, and `Build
Stations Cost` through `Steam Engine Cost` plus the comparison or help texts `2433..2437`. The
broader shell-state master flag at `[0x006cec74+0x68]` still sits above the remaining post-load
@ -2007,9 +2010,10 @@ Current evidence grounds the shell-controller-backed input and frame path as the
`.smp` serializer `world_runtime_serialize_smp_bundle` `0x00446240` does the same thing through
`0x446271` and `0x446d09` around its bundle-write and fixed status-publish span. The exact
save/load-side status stack under those spans is tighter now too: `0x004422d0/0x00442330` push
and pop shell dwords `[0x006cec74+0x140/+0x13c/+0x138/+0x144]` plus startup byte
`[0x006cec78+0x4c74]` through `0x0062be90`, while `0x004423a0/0x004423d0` layer the same band
under active TrackLay.win and StationPlace.win service. The per-frame tail is
and pop the low bytes of shell lanes `[0x006cec74+0x140/+0x13c/+0x138/+0x144]` plus startup byte
`[0x006cec78+0x4c74]` through `0x0062be90`, with the restore side sign-extending the first three
shell bytes and zero-extending the fourth before rewriting the wider dwords; `0x004423a0/0x004423d0`
layer the same band under active TrackLay.win and StationPlace.win service. The per-frame tail is
tighter now too: `0x0054f5b0` queues one 12-dword shell-input event record into the rotating
ring at `[input+0x128]`; `0x0054f6a0` and `0x0054f6b0` are the two neighboring fixed-value
seeders for shared phase scalar `0x00d93850` used by shell-side branches `0x00538b72`,