Close out EventEffects descriptor metadata

This commit is contained in:
Jan Petykiewicz 2026-04-16 19:03:07 -07:00
commit 3dbcec688f
15 changed files with 7156 additions and 23 deletions

View file

@ -97,9 +97,13 @@ The highest-value next passes are now:
tables too, so the current company-targeted and chairman-targeted descriptor/condition batches
can execute from standalone save-slice fixtures without overlay snapshots when that context is
present; raw `.gms` inspection/export still does not reconstruct those company/chairman surfaces
- a generic company-governance scalar effect surface now exists in runtime too, but real
governance descriptor ids remain deferred until the checked-in `EventEffects.win` evidence is
strong enough to recover them honestly
- a checked-in `EventEffects` export now exists at
`artifacts/exports/rt3-1.06/event-effects-table.json`, and the first recovered governance
descriptor tranche now executes through the generic company-governance scalar effect surface:
descriptor `56` `Credit Rating` and descriptor `57` `Prime Rate`
- adjacent recovered finance/control-transfer descriptors such as `55` `Stock Prices` and `58`
`Merger Premium` now land on explicit shell-owned descriptor parity instead of generic unmapped
descriptor residue
- widen real packed-event executable coverage descriptor by descriptor after identity, target mask,
and normalized effect semantics are all grounded, not just after row framing is parsed
- the first grounded condition-side unlock now exists for negative-sentinel `raw_condition_id = -1`
@ -190,6 +194,15 @@ python3 tools/py/export_startup_map.py \
artifacts/exports/rt3-1.06
```
Regenerate the checked-in `EventEffects` table export with:
```bash
python3 tools/py/extract_event_effects.py \
rt3_wineprefix/drive_c/rt3/RT3.exe \
rt3_wineprefix/drive_c/rt3/Data/Language/RT3.lng \
artifacts/exports/rt3-1.06/event-effects-table.json
```
That default export now walks two roots:
- `entry:0x005a313b`

View file

@ -60,9 +60,14 @@ Implemented today:
chairman-targeted descriptor/condition batches execute from standalone save-slice fixtures
without overlay snapshots when the checked-in documents include that context, while raw `.gms`
inspection/export still leaves those company/chairman surfaces absent
- a generic company-governance scalar effect surface now exists in runtime, but real governance
descriptor recovery is still deferred until the checked-in effect-table evidence can ground the
ids honestly
- a checked-in `EventEffects` export now exists too at
`artifacts/exports/rt3-1.06/event-effects-table.json`, and the first recovered
company-governance descriptor tranche now executes through the generic
`SetCompanyGovernanceScalar` surface: descriptor `56` `Credit Rating` and descriptor `57`
`Prime Rate` now import through ordinary company target lowering
- adjacent recovered finance/control-transfer descriptors such as `55` `Stock Prices` and `58`
`Merger Premium` now land on explicit shell-owned descriptor parity instead of generic unmapped
descriptor buckets
- a minimal event-owned train surface and an opaque economic-status lane now exist in runtime
state, and real descriptors `8` = `Economic Status`, `9` = `Confiscate All`, and `15` =
`Retire Train` now import and execute through the ordinary runtime path when overlay context
@ -131,14 +136,13 @@ Implemented today:
remaining world-side frontier is broader descriptor/condition breadth rather than missing cargo
classification or save/import context
That means the next implementation work is breadth, not bootstrap. The recommended next slice is
broader real grouped-descriptor and ordinary condition-id coverage beyond the current access,
whole-game toggle, train, player, chairman selected-scope grouped effects, grounded
chairman/governance conditions, numeric-threshold, named locomotive availability, named locomotive
cost, world scalar override, and world-scalar condition batches, plus eventual raw save
reconstruction for company/chairman context once stronger evidence exists. Richer runtime ownership
should still be added only where a later descriptor or condition family needs more than the
current event-owned roster.
That means the next implementation work is still breadth, not bootstrap. The current descriptor
frontier is no longer anonymous id recovery; it is the remaining recovered-but-nonexecutable
families from the checked-in effect table, especially broader company/world scalar bands and the
shell-owned finance/control-transfer rows that still need final classification or bounded runtime
landing surfaces. Raw save reconstruction for company/chairman context is still a later tranche
once stronger evidence exists. Richer runtime ownership should still be added only where a later
descriptor or condition family needs more than the current event-owned roster.
## Why This Boundary