Make locomotive context save-native

This commit is contained in:
Jan Petykiewicz 2026-04-16 12:18:13 -07:00
commit b060c42fa2
18 changed files with 1240 additions and 83 deletions

View file

@ -87,13 +87,13 @@ Implemented today:
`RuntimeState.named_locomotive_availability`, and imported runtime effects can mutate that map
through the ordinary event-service path without requiring Trainbuy or live locomotive-pool parity
- the recovered locomotives-page availability bands can now import as full scalar overrides
through an overlay-backed `RuntimeState.locomotive_catalog` into
`RuntimeState.named_locomotive_availability`; save-slice-only imports of those rows now fail on
the explicit `blocked_missing_locomotive_catalog_context` frontier rather than a generic
unmapped-world bucket
through `RuntimeState.locomotive_catalog` into `RuntimeState.named_locomotive_availability`;
raw `.smp` inspection/export now reconstructs the save-side locomotive row family and derives the
catalog directly into save-slice documents, so standalone save-slice imports can execute those
rows whenever the save carries enough catalog entries
- the adjacent locomotive-cost bands `352..451` and `475..500` now import too through the same
overlay-backed catalog into the event-owned `RuntimeState.named_locomotive_cost` map when their
scalar payloads are nonnegative
save-native or embedded catalog into the event-owned `RuntimeState.named_locomotive_cost` map
when their scalar payloads are nonnegative
- the remaining recovered scalar world families now execute as well: cargo-production `230..240`
rows lower into slot-indexed `cargo_production_overrides`, and territory-access-cost descriptor
`453` lowers into `world_restore.territory_access_cost`