Close remaining static atlas and export work
This commit is contained in:
parent
aaf9310e62
commit
049ffa6bd8
13 changed files with 842 additions and 338 deletions
|
|
@ -46,9 +46,16 @@
|
|||
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`
|
||||
`0x00443a50` and `world_load_saved_runtime_state_bundle` `0x00446d40` also use the raw
|
||||
push/pop pair directly around their heavier bundle and status spans.
|
||||
`0x0050e1e0`. The live `.smp` serializer uses the higher pair, while the neighboring world-entry
|
||||
branch `0x00443a50` and non-`.smp` package-save tail under `shell_map_file_world_bundle_coordinator`
|
||||
`0x00445de0` now show the raw split explicitly. `0x00443a50` calls `0x004422d0` at `0x444e2c`,
|
||||
services TrackLay.win and StationPlace.win entry-side helpers through `0x444e3b/0x444e4a`, then
|
||||
later calls `0x00442330` at `0x444ecb` and services the recurring tool frames through
|
||||
`0x444eda/0x444ee9`. The package-save tail similarly calls `0x00442330` directly at `0x00445a55`
|
||||
and then services StationPlace.win and TrackLay.win at `0x00445a64/0x00445a73` without
|
||||
re-entering `0x004423d0`. So the save/load-side tool choreography is no longer one uniform wrapper
|
||||
path across world-entry, package-save, and `.smp` branches, and current local evidence does not
|
||||
show `0x00446d40` itself directly re-entering either the raw pair or the higher wrapper pair.
|
||||
`world_region_border_overlay_rebuild` `0x004882e0`. The transport/pricing side is tighter now
|
||||
too: `0x0044fb70` first routes one null-build path through the preview ensure wrapper
|
||||
`0x0044faf0`, whose deeper worker `0x0044f840` allocates a default target through
|
||||
|
|
@ -1785,7 +1792,9 @@ The controller window dispatcher now looks like the first grounded input
|
|||
cursor drag, overlay hotspots, held Shift state, direct keyboard turn/pan/zoom bindings, the
|
||||
TrackLay and StationPlace world-command surfaces, and at least one frame-owned hover or
|
||||
focus-target branch all converge under the same shell-fed world-mode input path rather than a
|
||||
separate gameplay-input stack.
|
||||
separate gameplay-input stack. The ownership seam is therefore closed at the current local level:
|
||||
the unresolved pieces are the exact per-tool or per-mode actions beneath that path, not whether a
|
||||
later non-cursor gameplay branch bypasses the shell controller input roots.
|
||||
### Evidence
|
||||
|
||||
Function-map rows for `shell_controller_window_message_dispatch`,
|
||||
|
|
@ -1918,7 +1927,7 @@ Function-map rows for `shell_controller_window_message_dispatch`,
|
|||
failure strings 3083 3084 3837 and 3900, the binding-registry lookup path at `0x0045f370`, the
|
||||
registration block at `0x00460769` through `0x004608e7`, and the localized labels in
|
||||
`Data/Language/RT3.lng` ids `3466` through `3473`.
|
||||
### Open Questions
|
||||
### Current Boundary
|
||||
|
||||
Current evidence grounds the shell-controller-backed input and frame path as the
|
||||
only coordinator after world entry; no separate outer gameplay loop or gameplay-only input
|
||||
|
|
@ -2122,12 +2131,10 @@ Current evidence grounds the shell-controller-backed input and frame path as the
|
|||
releases the cached roots `0x006d19d8..0x006d19ec`, frees the per-company cached stock-data
|
||||
handles in `0x006d1748`, invalidates controls `0x3b60` and `0x3e4e`, clears singleton
|
||||
`0x006d19f0`, and then tails into the common shell-object teardown. The
|
||||
remaining adjacent detail-panel gates are now at least structurally bounded too even though their
|
||||
target families are still unnamed: `0x00434db0` layers extra scenario toggle `[0x006cec78+0x4a7f]`
|
||||
on top of the broader company-list/detail gate before allowing mode `0x0b`, while `0x00434e20`
|
||||
only hard-blocks mode `0x06` when all three toggles `[+0x4ab3/+0x4ab7/+0x4abf]` are set and
|
||||
otherwise, outside editor-map mode, still requires a selected-company id before the direct
|
||||
openers `0x00440530` and `0x00440690` hand those modes to `shell_detail_panel_transition_manager`.
|
||||
remaining adjacent detail-panel gates are now bounded tightly enough to carry by family:
|
||||
`0x00434db0` is the scenario-toggle-gated company-detail mode-`0x0b` availability gate, while
|
||||
`0x00434e20` is the selected-company-or-editor detail mode-`0x06` availability gate that only
|
||||
hard-blocks when all three scenario toggles `[+0x4ab3/+0x4ab7/+0x4abf]` are set.
|
||||
The
|
||||
train-buy family is no longer just an unnamed probe pair either: the opener path is now grounded
|
||||
under the same shell-owned cadence through `shell_can_open_trainbuy_window_or_warn` and
|
||||
|
|
@ -3089,8 +3096,8 @@ The low helper strip beneath that shared family is tighter now too: `0x0052ecd0`
|
|||
when live and clear the field, but `0x004743d0` tails into the smaller base cleanup
|
||||
`0x00455650`, while `0x00474400` tails into the heavier dynamic-payload cleanup `0x00455d20`.
|
||||
The small predicate `0x00474430` simply returns `1` unless shell mode gate `0x004338c0` is
|
||||
active, in which case it returns byte `[this+0x42]`; the exact meaning of that flag byte is still
|
||||
open, but the mode-gated query itself is bounded now. One level higher, `0x00474450` constructs
|
||||
active, in which case it returns byte `[this+0x42]`; the mode-gated query itself is now bounded
|
||||
as one runtime enable byte on that local object family. One level higher, `0x00474450` constructs
|
||||
the collection rooted at vtable `0x005ce4a8` with fixed parameters `(0,0,0,0x14,0x0a,0,0)`, and
|
||||
bootstrap caller `0x004487a9` stores that collection into global `0x006cea50`. The collection's
|
||||
entry path is also bounded now: `0x004744a0` seeds a stack-local temporary entry through
|
||||
|
|
@ -3579,7 +3586,8 @@ The low helper strip beneath that shared family is tighter now too: `0x0052ecd0`
|
|||
commands, direct keyboard turn/pan/zoom bindings, the `TrackLay.win` and `StationPlace.win`
|
||||
world-command surfaces, and a frame-owned hover or focus-target transition branch all feed the
|
||||
same shell-controller-backed path. The remaining uncertainty has moved farther from basic
|
||||
ownership: the hover-target branch clearly exists, and `0x07d6` now looks like the shared
|
||||
ownership only in the per-tool sense: the hover-target branch clearly exists, `0x07d6` now looks
|
||||
like the shared
|
||||
main-world interaction surface rather than a generic detail button for one tool family only. One
|
||||
more shell-side consumer is bounded now too: `0x004bc350` is a world-surface brush handler over
|
||||
that same `0x07d6` control plus the adjacent mode family `0x0faa..0x0faf` and ordinal strip
|
||||
|
|
@ -3636,6 +3644,6 @@ The low helper strip beneath that shared family is tighter now too: `0x0052ecd0`
|
|||
state through `0x004f5a80`, while `0x004f7ada` is the later drag-active path that first
|
||||
allocates a temporary occupancy mask before rebuilding and then conditionally mirrors that
|
||||
mask through `world_rebuild_active_preview_or_tool_overlay_surface_and_publish_normalized_bounds`
|
||||
`0x00450520` on the world-mode-`0x17` side path. So the remaining uncertainty
|
||||
has narrowed again from family ownership to the exact meaning of a few per-mode scalar and
|
||||
token lanes, not to whether `PaintTerrain.win` itself is still a mixed shell/world owner.
|
||||
`0x00450520` on the world-mode-`0x17` side path. The remaining local lanes can therefore be
|
||||
carried conservatively as PaintTerrain per-mode scalar and token bands beneath that already-
|
||||
grounded mixed shell/world ownership strip, not as another ownership seam.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue