7.9 KiB
7.9 KiB
Runtime and World Tools
Primary atlas sources:
This view keeps together the runtime-side shell input path, world-view tool surfaces, world bring-up pipeline, and the large shell-window families that hang off the recurring frame owner.
Current grounded owners:
shell_controller_window_message_dispatchsimulation_frame_accumulate_and_step_worldsimulation_advance_to_target_calendar_pointsimulation_service_periodic_boundary_workworld_run_post_load_generation_pipelineshell_ensure_game_uppermost_windowgame_uppermost_window_service_world_hotspot_bandstation_place_window_handle_messagetrack_lay_window_handle_messageshell_open_or_focus_load_screen_pageshell_open_or_focus_overview_windowshell_open_or_focus_trainbuy_windowshell_open_or_focus_train_detail_window
Current bounded tool families:
TrackLay.winStationPlace.winGameUppermost.winLoadScreen.winOverview.winTrainbuy.winTrainDetail.win
Current bounded post-load detail:
- inside
world_run_post_load_generation_pipeline, the laterSetting up Players and Companies...319lane now has a tighter interior order: route-entry collection refresh on0x006cfca8, auxiliary route-entry tracker collection refresh on0x006cfcb4, placed-structure local-runtime refresh through0x004133b0, flagged world-grid cleanup through0x00448af0/0x00533fe0, later route-entry post-pass through0x00491c20, and a separate event-side runtime materialization pass on the live event collection0x0062be18throughscenario_event_collection_refresh_runtime_records_from_packed_state0x00433130plus the per-record helper0x0042db20 - the event-side branch is tighter now too:
the first rebuilt linked row family under
0x0042db20aligns with the standalone condition list later consumed byEventConditions.win, while the second rebuilt family aligns with the four grouped effect lists later deep-copied throughscenario_event_clone_runtime_record_deep_copy0x0042e050during event duplication and effect staging - the shell-side event windows are tighter too:
0x0042df30/0x0042df70/0x0042dfb0/0x0042dff0now read as class-bit predicates over the standalone condition-row list, and the window vtables bindshell_event_conditions_window_handle_message0x004d59e0plusshell_event_effects_window_handle_message0x004d7060as the primary message owners - the conditions-side refresh split is tighter too:
0x0042d700now reads as the standalone condition-list class or modifier aggregate,0x0042d740as the grouped effect-row type-flag aggregate for one selected grouped list,0x004d77b0as the grouped summary-band affordance gate for0x4fed..0x4ff0,0x004d9970as the condition-class summary and grouped-row status refresh,0x004d9d10as the smaller grouped-effect territory-target affordance refresh on control0x500b,0x004d9f50as the selected-event mode strip and summary-panel refresh,0x004d9390as the mode-dependent detail-row switch beneath that strip, and0x004da0f0as the broader refresh owner that now cleanly splits selector0x5001versus0x5002, with the strongest current RT3.lng fit reading0x5001 = Test against...and0x5002 = Apply effects...; the0x5002branch then builds0x5014from RT3.lng1160..1164as the target-subject textto the company/player/player (i.e. chairman)/territory for which the condition is TRUE, while the strongest current RT3.lng fit for0x5015..0x501ciswhole game,all/human/AI companies,specified territories, andall/human/AI players - the selected-event strip is tighter now too:
0x004db120now reads as the broader selected-event repaint and navigation refresh,0x004db520/0x004db5e0as the previous/next selected-event stepping verbs,0x004db8b0as the add-blank or clone-selected-event modal helper,0x004dba90as the rename-selected-event modal helper,0x004d9360as the delete-selected-event helper,0x004db6a0as the live selected-event id setter behind control0x4e84,0x004db6f0as the callback-binding plus pending-selection bootstrap path, and0x004dbb80as the broader strip and grouped-band dispatcher above the0x4e85..0x4e8aprevious/next/add/clone/rename/delete cases - the selection bootstrap and grouped-band side is tighter too:
0x004daf40is the placeholder reset helper for the selected-event summary controls, and0x004dbf93is the grouped-effect summary-band selector that commits current state through0x004d8d50before switching grouped selector[this+0x9c] - the grouped target-scope strip is tighter too:
0x004d8ea0now reads as the selected-event text-panel commit helper before selection changes,0x004d91e0as the selected-event summary-header and grouped-mode commit helper above0x004d8d50,0x004d8d50now grounding the hidden ordinal selector family0x5006..0x500e -> 0..8,0x004d88f0as the selected grouped-effect row-list renderer on0x4ed5using RT3.lng1154..1159,0x004da9a0as the stored grouped-summary-state reload that republishes0x500a,0x500b, and visible action selection0x5014..0x501cfrom the selected event,0x004dab60as the selected grouped-effect target-scope strip refresh that projects that ordinal onto visible controls0x5014..0x501cwhile still honoring the grouped-effect type-mask gates on0x5015,0x5016..0x5018,0x500b/0x5019, and0x501a..0x501c,0x004dbfcaas the grouped target-scope mode selector that persists the chosen control id into0x00622074, with0x5001/0x5002now strongest-fit asTest against...andApply effects...,0x004dbeebas the pending shared summary-text triplet publish helper, and0x004dbe7aas the narrower0x4ec6/0x4ec7choice-event single-player-only warning modal branch - the hidden/display split is tighter too:
0x5006..0x500enow read as the canonical hidden target-scope selector family stored into[event + group + 0x7fb], while0x5014..0x501care the visible one-to-one mirror rows republished from that ordinal rather than a second independently named selector family - the grouped-band dispatch boundary is tighter too:
the
0x4dc09ctable now shows0x5001/0x5002are the only0x4fed..0x501ccontrols that route into0x004dbfcaon the0xcfside, while visible rows0x5014..0x501croute only to the smaller0x004d9d10affordance path and0x4ff1..0x5013are default no-ops - the effects-side editor stack is tighter too:
0x004d5d00now reads as the effect-type selector refresh,0x004d5f50as the selected-effect parameter-row repaint,0x004d6090as the heavier staged-effect editor refresh, and0x004d67f0as the commit back into the staged effect row - the editor verbs are tighter too:
0x004d9dc0and0x004d9e40are the shared modal openers forEventConditions.winandEventEffects.win,0x004da640/0x004da700/0x004d9ed0now read as add-edit-remove over the standalone condition list, and0x004da7c0/0x004da860/0x004da920are the matching add-edit-remove verbs for grouped effect rows
What this note is for:
- Shell-owned simulation cadence
- World-view pan, zoom, rotate, and hotspot handling
- Post-load generation phases and setup banners
- Track-lay and station-placement semantics
- Train detail and trainbuy command ownership
Current bounded conclusion:
- Current evidence points to one stable reading: no later gameplay-owned mode introduces a distinct
outer input or frame owner for ordinary world interaction. The grounded
shell_controller_window_message_dispatchplussimulation_frame_accumulate_and_step_worldpath remains the sole coordinator after world entry and the first grounded non-camera world-input coordinator, and no separate outer gameplay loop or gameplay-only input object is grounded in the local corpus.