Extend event effects through add-building strip

This commit is contained in:
Jan Petykiewicz 2026-04-19 01:46:59 -07:00
commit b2da02befa
7 changed files with 3319 additions and 1161 deletions

View file

@ -281,13 +281,26 @@ Working rule:
`East Coast, USA.gmp`, `Japan Trembles.gmp`, and `State of Germany.gmp`; it does not appear on
the `opcode 8` deactivation branch, so grouped descriptor id `548` is not just the obvious
compact stand-in for ordinary descriptor `13`
- the frontier is now best treated as a small compact-only opcode-`8` cluster rather than a
one-id anomaly:
the installed-map sweep now shows unlabeled grouped descriptor ids `[521, 526, 528, 548, 563]`
in the `0x00431b20` dispatch strip, all currently on opcode `8`, with current sightings in
`Alternate USA.gmp`, `Rhodes Unfinished.gmp`, `Louisiana.gmp`, and `Texas Tea.gmp`; the next
static-analysis pass should treat that as one branch family above `0x00426d60`, not five
unrelated missing labels
- that compact opcode-`8` cluster is now grounded as an artifact-boundary problem rather than a
mysterious compact-only id family:
direct binary inspection of the `0x00610398` EventEffects table shows the contiguous table does
not stop at row `519`; it continues cleanly through row `613`, with the extractor-side
sequential descriptor invariant still holding. The checked-in extractor and semantic catalog now
cover the full `614`-row export instead of the old truncated `520`-row slice
- that closes the earlier unlabeled cluster:
grouped descriptor ids `521`, `526`, `528`, `548`, and `563` are now recovered as
`Add Building Slot 19`, `Add Building Slot 24`, `Add Building Slot 26`, `Add Building Slot 46`,
and `Add Building Slot 61` respectively, all in the widened shell-owned add-building strip
`503..613`
- the earlier `label_id - 2000` bridge for `548` and `563` is now known to be a false lead:
those numeric collisions hit the special-condition label table
(`Disable Building Stations`, `Completely Disable Money-Related Things`), but the extended
EventEffects table proves the actual grouped descriptors are add-building slots, not
special-condition verbs
- the compact opcode-`8` frontier therefore shifts:
the next static-analysis pass should target which add-building slot numbers correspond to which
concrete building classes and whether opcode `8` on that shell-owned strip means a distinct
add-building shell flow, not more missing-label recovery
- the concrete owner strip above that bundle is grounded now too:
`0x00433060` is the direct non-direct serializer loop that writes `0x4e99/0x4e9a/0x4e9b`,
calls `0x00430d70` per live collection row, and sits beside the sibling `0x00433130` size/load