Extend atlas seam annotations across subsystems

This commit is contained in:
Jan Petykiewicz 2026-04-13 14:12:18 -07:00
commit 97295d4060
8 changed files with 2837 additions and 234 deletions

View file

@ -31,6 +31,19 @@ The neighboring connection-state note pair now appears
through the wider multiplayer preview launch-state service. So the station-detail overlay
currently owns only the `Coming To`, `Going From`, `Current Supply`, `Current Demand`, `--None--`,
and `All` legend lanes.
That formatter boundary is tighter now too. `0x004207d0` returns `0` immediately when preview-global
`0x0062be84` is armed, forwards directly into the shared fallback formatter `0x00455860` when
subtype dword `[this+0x23e]` is nonzero, and only otherwise runs its own connection-status path. On
that main path it rounds the current normalized city coordinates, samples one world-view-dependent
alpha byte through `world_view_query_city_label_alpha_byte_from_normalized_xy_and_view_scalars`
`0x0043ad50`, and then tries to resolve one linked station-or-transit site through the active
selection or scenario fallback object. When that linked-site path succeeds, the formatter forces a
highlighted top color lane with alpha `0xff` and appends localized id `207` `(Connected)`; when it
does not, it only reuses the sampled byte from `0x0043ad50` when that value is nonzero and below
`0xff`. The tail also splits cleanly now: one branch returns style code `1`, while the other derives
one label-priority scalar from `[this+0x25e]` or the piecewise-scaled `[this+0x312]` path, clamps
that priority to `0x95`, resolves the final style through `0x0053de00`, and returns style code `3`.
#### Ownership side
One reusable site helper is grounded now too.
@ -60,12 +73,17 @@ The city bonus formatter no longer depends only on
The reusable bridge between the status formatter and the
company news lane is now bounded too. `city_connection_bonus_build_peer_route_candidate` at
`0x004046a0` reuses `city_connection_bonus_select_first_matching_peer_site` with both selector
flags forced on, samples the selected peer's derived coordinates through `0x0047df30` and
`0x0047df50`, and then either tries the shared heavy builder
`city_connection_try_build_route_with_optional_direct_site_placement` `0x00402cb0` or falls
back to the smaller wrapper `city_connection_bonus_try_compact_route_builder_from_region_entry`
`0x00404640` before handing the result back to the company-side announcement sweep at
`0x00406050`. The score side of that announcement lane is tighter now as well:
flags forced on, rounds both the source-city and selected-peer normalized coordinates through
`0x005a10d0`, and then first tries the shared heavy builder
`city_connection_try_build_route_with_optional_direct_site_placement` `0x00402cb0` when the
caller already supplied a live route-anchor tuple. When that direct attempt does not apply or no
peer survives, it falls back to the smaller wrapper
`city_connection_bonus_try_compact_route_builder_from_region_entry` `0x00404640`; and when both
early attempts fail it builds one mixed 10-byte candidate list from the dense pair store
`0x006cfcb4` and the route-entry store `0x006cfca8`, marks only route-anchor-eligible class-`2`
sites through the `0x0048a1c0/0x0048a1a0/0x0048f290` route-anchor tests, and then retries
`0x00402cb0` with the best surviving span-ranked candidate. The score side of that announcement
lane is tighter now as well:
`city_compute_connection_bonus_candidate_weight` at `0x004010f0` provides the per-city opportunity
weight, `company_query_min_linked_site_distance_to_xy` at `0x00405920` provides the nearest
linked-site distance term, `company_count_linked_transit_sites` at `0x00426590` provides one of
@ -97,14 +115,32 @@ The reusable bridge between the status formatter and the
narrower city-connection public-opinion lane or as part of a broader management-attitude family,
not the ownership of the connection-bonus formatter, peer-route candidate path, or company news
gate.
The ordinary `StationDetail.win` caller strip is tighter now too. In the non-scenario, non-class
`3/4` branch, `shell_station_detail_window_refresh_controls` `0x00506610` rebuilds the nearby-site
lane first through `shell_station_detail_refresh_nearby_structure_jump_rows` `0x00505470`, then
rebuilds the paired hauled-traffic widgets through two calls to
`shell_station_detail_build_to_from_haul_summary_widget` `0x00505150`. That hauled-traffic helper
does more than publish a heading: it normalizes the incoming float lane into a bounded ten-step
fill count, resolves per-step styles through `0x0053de00/0x00552560`, and on first build wires the
matching `0xb3f6` or `0xb3f7` click target back to
`shell_station_detail_present_to_from_haul_stats_popup` `0x00504770` through `0x00540120`. The
nearby-site helper has a similarly concrete split now: for each of the fixed five categories it
counts entries through `0x0047dc90`, emits the descriptive text block through `0x0051b700 ->
0x0053f9c0`, and then builds the paired jump-control payload through `0x0053b070 -> 0x0055a040 ->
0x0053f9c0`, with text rows under `0xb40a..0xb40e` and jump controls under `0xb410..0xb414`. So
the remaining uncertainty in the ordinary branch is no longer the ownership of those lanes; it is
the broader user-facing meaning of later callers above the row callbacks.
#### Route-list side
The neighboring helper
`placed_structure_append_unique_route_entry` at `0x0047f010` is now grounded as the
append-if-missing builder for the six-byte route-entry list rooted at `[site+0x462]` and
`[site+0x466]`. That matters here because the directional overlay query at `0x0047e690` consumes
the same list, so the remaining uncertainty is no longer list ownership. It is down to the exact
semantics of each entry's `u32` payload.
`[site+0x466]`. One tighter boundary closes the overlay-side uncertainty further: the directional
overlay query at `0x0047e690` only consumes the leading `u16` peer-site key when it walks that
list and does not currently read the trailing `u32` companion payload at all. So the remaining
uncertainty is no longer route-list ownership or overlay dependence on that payload; it is only
the broader meaning of the payload for other caller families.
#### Route-entry and Cache Side
The adjacent helper strip is tighter now too.