17 KiB
17 KiB
Seam Queue
doneLoad/save setup-preview sidecar save split: the atlas now distinguishes the direct package-save0x00442ba0 -> 0x00441ec0branch at0x00444f42/0x00444f47from the.smpserializer branch at0x00446312, which writes0x2ee0 -> 0x403c2 -> 0x2ee1itself and does not re-enter0x00441ec0.doneLoad/save shell status-stack and tool bracketing: the atlas now separates the three grounded branches:.smpsave uses wrapper pair0x004423a0/0x004423d0, world entry0x00443a50uses raw0x004422d0/0x00442330plus inline TrackLay/StationPlace entry and service calls, and the non-.smppackage-save tail under0x00445de0uses raw0x00442330plus inline recurring tool service; current local evidence does not show0x00446d40directly re-entering either pair.doneLoad/save selected-year launch-policy seam: the split is now grounded: the ordinary saved-profile loader0x00442400and package-save prelude0x00444dd0remain the two direct writers to stage dword0x00620e94, while interactive command path0x00464410owns direct writes to shell launch-policy[0x006cec74+0x178]; the load or restore consumers are explicit under0x00436d10,0x004384d0,0x00437b20,0x00437737, and0x00444dc5.doneRuntime/package sidecar gate provenance: the sidecar-gate producer chain is now grounded: settings dispatcher0x00464c80owns the shell dwords, package-save coordinator0x00445de0reseeds0x0062bec4, exporter0x00442ba0copies those values into payload bytes+0x0a/+0x0b, and the live world bytes[world+0x66c8/+0x66c9]inherit them only through whole-block[world+0x66be]copies on restore, multiplayer mirror, and save/export reuse.doneResolve the owner-side callback roles behind the validated GameSpy packet branches: route constructor0x0058c9b0seeds[route+0x9c]from the transport callback table and zeros[route+0xa0/+0xa4/+0xd4]; the transport-owned status/live connect paths then patch[route+0xa0] -> 0x00597330, keep[route+0xa4/+0xd4]null, and therefore make subtype4dispatch through0x005972c0, subtype6use the validated extended-payload lane before an optional raw fallback, and semicolon-line parsing remain an inactive optional branch for those routes.doneDetermine whether later world-mode branches bypass the shell controller input path: current local evidence still keeps the full grounded chain under the same shell-fed roots0x006d4018and0x006d4024, from cursor drag0x00478cb0, hotspot service0x004e0780, and camera service0x0043db00down through the frame-owned hover or focus-target tail at0x0043963d; no separate gameplay-only input object or later non-cursor bypass branch is exposed in the current local traces.doneLoad/save null-cargo fallback boundary in the recipe import bridge: the importer-side0x004120b0 -> 0x00411ee0 -> 0x00412650chain is now narrow enough to treat cargo id0as a fallback or sentinel lane rather than another ordinary cargo meaning: failed exact matches still land in the first summary-bank bucket, but steady-state callers do not probe cargo id0like a normal cargo id and the placed-structure sweep diverts explicit0requests into the linked-site classification path instead of the ordinary cargo-reference helper.doneLoad/save recipe marker-token provenance boundary at[world+0x0fe7]: current local evidence does not surface any in-binary non-editor author for the unmatched marker-like token families. The reset path only seeds names, the editor preserves or rewrites token lanes verbatim, the importer runs only the exact-name match at0x0041e9f0, and checked map/save pairs preserve those raw marker payloads byte-for-byte. So the load/save seam is closed at the current evidence level as opaque scenario-authored payload preserved through persistence, not as one more hidden runtime decode or writer path inside the local binary.doneLoad/save clear-only boundary at[world+0x4cae/+0x4cb2]: the current local corpus keeps both dwords on the same negative-evidence boundary: checked save offsets stay zero there, the startup pre-dispatch helper0x004336d0, shared reset owner0x00436d10, and post-fast-forward tail around0x00437120only clear them, and the current binary still does not expose any direct non-clear readers or writers. That is enough to treat them as a reset-owned structural pair rather than an active unresolved policy lane.doneLoad/save late-state plateau boundary under[world+0x4cc2..]: the atlas already closes this as a layout seam at the current evidence level:0x00436d10is the grounded reset owner, serializer-side evidence jumps from the leading tuning lanes straight to the recipe-book root, and the current binary does not expose direct literal-offset readers or writers for the first dwords in the plateau after the bulk clear. The remaining unknowns there are per-field semantics, not an open load/save ownership seam.doneLoad/save named-availability header-word framing above[world+0x66b2/+0x66b6]:0x00517d90now closes the ownership boundary: those words belong to the generic indexed-collection header path on the package-save branch, while the.smpbranch bypasses that header entirely and writes only direct counted fixed-row runs. Their exact semantic names remain ungrounded, but as a load/save seam they are now bounded as outer collection-framing dwords rather than hidden payload fields inside the named-availability row families.doneLoad/save special-condition tail scalar boundary at[world+0x4b0b..+0x4b3f]: the current corpus and parser notes now close this at the ownership level as one fixed post-sentinel save window that overlaps the aligned scenario-rule band, then continues as a save-only tail into the grounded[world+0x4b47]status-text region. Direct consumers for the intervening dwords remain sparse, but that is now a semantic-naming gap rather than an open load/save seam.doneLoad/save compact setup-profile slab framing in classic/1.05 saves: the load/save seam is closed at the current evidence level as one serialized setup-profile slab with a grounded runtime-profile core plus serializer-owned framing and scenario-family metadata. The fixed middle bytes, skewed classic front edge, leading dword, and scenario-save-only extra bands remain naming work, not unresolved ownership.doneLoad/save semantic meaning of recipe-importcargo id 0: the current caller layer narrowscargo id 0to a linked-site classification sentinel rather than a normal cargo identity. Failed exact-name imports can still land in bucket0, but steady-state cargo-service callers avoid probing that id and the placed-structure sweep reuses it as the nonstandard linked-site or station-or-transit bypass path instead of the ordinary cargo-reference helper.doneLoad/save semantic naming of recipe line mode values and token classes: the remaining gap is now bounded tightly enough to carry as naming, not as an open seam. The player-facing mode family is grounded directly from the editor page and importer split asDisabled,Demand Only,Supply Only, andProduction Demand->Supply; the recurring saved token families are named conservatively ashigh16-ascii-stem,high16-numeric, andlow16-marker; and the recurring row signatures are named asdemand-numeric-entry,demand-stem-entry,supply-numeric-entry, andsupply-marker-entry. The unresolved part is only whether some opaque numeric or marker words are literal cargo ids or scenario-authored token codes, not another missing load/save naming boundary.doneLoad/save semantic naming inside the late-state plateau[world+0x4cc2..]: the family now carries one conservative load/save name. The opening run is the reset-owned late-state scalar plateau immediately ahead of the recipe books, while the grounded neighbors are the support-entry counters[world+0x4c9a/+0x4c9e], pending-plus-accumulated support float pair[world+0x4ca6/+0x4caa], selected-train latch[world+0x4cb6], selected-station latch[world+0x4cba], and cached available-locomotive rating[world+0x4cbe]. What remains missing is only per-dword decode inside the opening unlabeled slice, not load/save naming.doneLoad/save semantic naming of post-special-conditions tail dwords[world+0x4b0b..+0x4b3f]: the window now carries one conservative family name as the post-sentinel special-condition save tail, with[world+0x4b43]as its grounded trailing scalar and the earlier dwords preserved as opaque tail scalars within the same saved rule-family extension.doneLoad/save semantic naming of compact setup-profile slab framing bytes: the framing now has conservative names at the family level: one leading serializer-tag dword, one stable presence byte, one skewed classic front edge, one classic fixed middle strip, one scenario-sensitive middle word around+0x80, and one scenario-save-only extra band+0x88..+0x8b, all wrapped around the already-grounded setup-profile core.doneTransport selector-request lane semantics around0x593980/0x593c40/0x59fc80: the old broad request-id note is replaced by the grounded lane split the atlas actually exposes. OuterMultiplayer.winrequested actions are bounded at0x004ef960, with action1as the preview-reset/entry lane, action2as the staged-text and local-session-slot promotion lane, and action4as the committed-text or launch-side promotion lane. Beneath that, the concrete transport submit owners are0x5959e0 -> 0x593980for bound-route status requests,0x593c40for selector-text route requests, and the second selector-descriptor callback lane rooted at0x59fc80for named-selector callback publication.doneTransport compact-descriptor auxiliary dword semantics at[descriptor+0x10]: the field now carries one conservative family name as the compact-header auxiliary inline dword. Header bit0x08gates its presence, setter0x58d650owns the decode-side store, and later descriptor copy or callback-marshaling helpers preserve it without exposing a narrower dedicated reader.doneTransport preview-dataset reuse boundary outsideMultiplayer.win: the caller set is now broad enough to close the boundary. Beyond the coreMultiplayer.winflows, preview submitter0x00469d30is reused by the.gmtsave-mode branch in0x00445de0,BuildingDetail.winauxiliary sync,Start New Company...side-owner submission,CompanyDetail.winasync multiplayer actions, and multiple dataset-side selector or update owners, while current local evidence still keeps that reuse inside shell-side preview or async families rather than ordinary world or simulation cadence.doneStationDetail lower action and special-action semantic naming: the page now carries conservative family names instead of broader residual notes. The ordinary non-scenario branch is the station-summary presentation lane over nearby-site jumps plusTo/Fromhauled-traffic widgets; the lower0xb3b5..0xb3bfstrip is the linked-site mutation action band with affordability notice and validate-or-apply branches; and special control0xb3f8is the editor-gated scenario-station special-case affordance.doneStationDetail route-list companion payload meaning under[site+0x462/+0x466]: the six-byte list now carries a conservative split as a peer-site route-entry key plus one trailing route-entry companion payload word reserved for non-overlay caller families.doneStationDetail linked-instance terrain-class caller meaning: the later consumers are now bounded conservatively as linked-instance secondary-raster class filter families used by world-side and linked-peer gating, rather than as a remaining unnamed caller cloud above the helper strip.doneShell/gameplay cadence handoff across bootstrap, shell command, presentation, map-load, and runtime roots: the repeated atlas-level handoff note is now closed under one conservative current-evidence boundary: long-lived gameplay cadence still rendezvous with the shell-owned frame and bring-up coordinators, and the atlas no longer leaves separate page-local open-question wording across those shell bring-up pages.doneStation-detail city-connection caller ladder above the formatter family: the station-detail page now carries the broader caller side conservatively as the city-connection / company-start announcement ladder above the already-grounded peer-selector, route-build, and prime-rate branches.doneEditor residual semantic naming for recipe-token provenance and event-validation score bands:editor-breadth.mdnow carries the supply-marker token family as opaque scenario-authored marker strings, the event-validation score and flag slice as gameplay metric bands, and the placed- structure+0x42caution as an immediate accessor cluster without extending that evidence to the unrelated later mode-gated byte readers.doneSetup payload lower-slab consumer naming around0x6a70: the lower setup slice is now carried conservatively as a candidate-table slab inside the broader setup payload family, with current named consumers still bounded to earlier setup offsets.doneRuntime residual naming for detail-panel modes0x06/0x0b, mode-gated flag byte+0x42, and PaintTerrain per-mode scalar lanes: the runtime page now carries those families conservatively as the scenario-toggle-gated company-detail mode-0x0bgate, the selected-company-or-editor mode-0x06gate, one local runtime enable byte, and PaintTerrain per-mode scalar or token bands beneath the grounded shell/world ownership split.doneSave/runtime late scalar-family naming around[world+0x4cae/+0x4cb2]and the 1.05-only scalar band: the remaining save/runtime notes now carry those lanes conservatively as startup-dispatch companion dwords inside the reset-owned late save-visible cluster and as the 1.05-only late scalar tail beneath the aligned runtime-rule base.doneFunction-map structural stub and constant-slot naming families: the remaining pure stub, constant-return, raw-flag, and fixed-value rows now carry bounded structural names without explicit open-work wording.doneFunction-map shell command, detail-panel mode, and input-registration caption families: the remaining command-side rows now stay at the concrete localized-id, action-id, control-id, or mode-family level instead of carrying unresolved caption or user-facing-verb notes.doneFunction-map SettingsWindow field and caption families: the remaining settings-page rows now carry bounded page-owned selector, toggle, shell-config, and display-runtime field names instead of open caption or field-meaning notes.doneFunction-map Trainbuy, paired preview-selector widget, and adjacent shell widget subtype families: the train-side selector strip, paired preview-selector family, adjacent world-surface brush strip, and neighboring shell widget rows now carry conservative family names without explicit subtype uncertainty.doneFunction-map surface-decoder user-facing format-name families: the decoder rows now carry exact tag, FourCC, aux-mode, stride, packed-YUV, or DXT family names without leaving user-facing pixel-format labels as open work.doneFunction-map transport residual descriptor and callback-sidecar families: the remaining transport-side rows now keep the staged route descriptor tuple, negative sidecar boundary, callback-table attach, and selector helper wording at bounded structural family names.doneFunction-map route-entry optional-hook and queued-record prompt naming: the route-entry optional-refresh hook, idle-shell queued-record prompt, and adjacent collection- validation rows now carry bounded family names without explicit residual notes.doneFunction-map additional CompanyDetail, PaintTerrain callback, display command, UI image-slot, and support-math helper wording: the export sweep also closed the remaining small helper notes encountered during the pass, including the CompanyDetail overview/help formatter strip, the PaintTerrain numeric-updater callback wording, the display-resolution command wrapper, the UI image-slot loader, and the support-math helper rows that previously left axis-order or API-variant wording open.
Queue Rules
- When a seam closes or narrows materially, move or rewrite the queue item instead of leaving the old gap described only in page-local prose.
- Prefer queue items that name concrete addresses and payload roots over broad subsystem notes.
- Keep pending template, transport, and save/load work scoped to the specific atlas edges that remain unresolved.