Rule out alternate Tier2 BCA import callers

This commit is contained in:
Jan Petykiewicz 2026-04-19 14:05:27 -07:00
commit 7769abd618
2 changed files with 18 additions and 0 deletions

View file

@ -1216,6 +1216,15 @@
already-materialized bank/template bytes instead of explaining how live candidates diverge from
the all-zero shipped `BuildingTypes/*.bca` corpus before the later `Port%02d` /
`Warehouse%02d` rebuild.
The constructor/import strip is fixed in the same negative way now too: `0x00438c70` allocates
the live candidate pool through `0x004131f0`, calls `0x004411d90` (currently a no-op stub), and
only then allocates the auxiliary/source pool through `0x0041aa50`, so there is no checked
alternate branch between those constructors. The only current caller of source-record importer
`0x00414490` is `0x00419788`, and the surrounding `.rdata` at
`0x005c93f0/0x005c9400` proves that strip is the stock `"%1*.bca"` scan under
`".\\Data\\BuildingTypes\\"`. So the remaining bank-byte divergence is not hidden inside a
second caller of the BCA parser; it has to happen after the fixed stock `BuildingTypes/*.bca`
import has already run, or through some later non-stock projection seam above it.
That candidate-side table now has a grounded fixed record layout too: each entry is a `0x22`-byte
blob with a zero-terminated candidate-name slot at `[entry+0x00..+0x1d]` and one trailing
availability dword at `[entry+0x1e]`, read through `0x00434ea0` and mirrored later into