Classify nonzero stock building header family

This commit is contained in:
Jan Petykiewicz 2026-04-19 15:09:09 -07:00
commit c9026bd1a0
4 changed files with 89 additions and 8 deletions

View file

@ -84,6 +84,12 @@
`Maintenance Facility` and `Service Tower` with zero `dword_0xbb`. So the later numbered
`Port%02d` / `Warehouse%02d` clone seam is now bounded above the bare `Port` / `Warehouse`
family itself rather than under a hidden station-style alias family in `BuildingTypes`.
The wider nonzero stock family is explicit now too: the recovered report shows only one nonzero
`.bty` header lane, `dword_0xbb = 0x000001f4`, and it spans exactly `22` files including
`Port.bty`, `Warehouse.bty`, and a smaller industrial/commercial subset such as `Brewery`,
`ConcretePlant`, `ConstructionFirm`, `Hospital`, `Museum`, `PaperMill`, and `Steel Mill`. So
the later numbered clone seam is now bounded above that narrower `0x000001f4` stock family
rather than above the full style/source strip.
The fixed
tail is explicit now too: `0x00444dd0` writes one direct dword from
`[world+0x19]`, one zeroed `0x1f4`-byte slab under `0x32cf`, closes the package, derives the

View file

@ -1314,10 +1314,16 @@
`name_0x7c = VictorianStations` and `dword_0xbb = 0x00000000`. The standalone
`Maintenance.bty` / `ServiceTower.bty` rows also stay in that stock family, but their display
names are `Maintenance Facility` and `Service Tower` and their `dword_0xbb` lane remains zero.
So the numbered `Port%02d` / `Warehouse%02d` seam is no longer plausibly a hidden station-style
alias family under the stock assets; the remaining open question is why the later clone chooser
favors the bare `Port` / `Warehouse` family over those zero-valued station and maintenance /
service rows.
The nonzero stock family above that seam is explicit now too: the recovered report exposes only
one nonzero `.bty` header lane, `dword_0xbb = 0x000001f4`, spanning exactly `22` files
(`Brewery`, `ConcretePlant`, `ConstructionFirm`, `DairyProcessor`, `Distillery`,
`ElectronicsPlant`, `Furnace`, `FurnitureFactory`, `Hospital`, `Lumbermill`, `MachineShop`,
`MeatPackingPlant`, `Museum`, `PaperMill`, `PharmaceuticalPlant`, `Port`, `Recycling Plant`,
`Steel Mill`, `Textile Mill`, `Tire Factory`, `Tool and Die`, and `Warehouse`). So the
numbered `Port%02d` / `Warehouse%02d` seam is no longer plausibly a hidden station-style alias
family under the stock assets; the remaining open question is why the later clone chooser favors
this narrower `0x000001f4` stock family over the zero-valued station and maintenance / service
rows.
The direct `+0xba/+0xbb` writer census now rules out a broad false lead too. The obvious new
stores at `0x004ecd42/0x004ecdaa` and `0x004ed5d5/0x004ed625` are only shell-side
portrait/string refresh helpers over a different id-keyed collection rooted through

View file

@ -850,11 +850,17 @@ Working rule:
as `VictorianStationSml/Med/Lrg.bty` stay on the same `0x000003ec` family but keep
`name_0x7c = VictorianStations` and `dword_0xbb = 0x00000000`. The standalone
`Maintenance.bty` / `ServiceTower.bty` rows also stay in the same stock family, but expose
display names `Maintenance Facility` and `Service Tower` with zero `dword_0xbb`. So the
display names `Maintenance Facility` and `Service Tower` with zero `dword_0xbb`. The stock
nonzero family is explicit now too: only one recovered `.bty` header lane is nonzero,
`dword_0xbb = 0x000001f4`, and it spans exactly `22` files:
`Brewery`, `ConcretePlant`, `ConstructionFirm`, `DairyProcessor`, `Distillery`,
`ElectronicsPlant`, `Furnace`, `FurnitureFactory`, `Hospital`, `Lumbermill`, `MachineShop`,
`MeatPackingPlant`, `Museum`, `PaperMill`, `PharmaceuticalPlant`, `Port`, `Recycling Plant`,
`Steel Mill`, `Textile Mill`, `Tire Factory`, `Tool and Die`, and `Warehouse`. So the
remaining Tier-2 source question is no longer whether the numbered `Port%02d` /
`Warehouse%02d` banks are hidden station-style aliases; it is why the later clone path prefers
the bare `Port` / `Warehouse` family over the zero-valued station and maintenance/service
families when it seeds those numbered banks.
this narrower `0x000001f4` stock family over the zero-valued station and
maintenance/service families when it seeds those numbered banks.
The direct `+0xba/+0xbb` writer census is narrower now too. The obvious newly surfaced stores
at `0x004ecd42/0x004ecdaa` and `0x004ed5d5/0x004ed625` are only shell-side portrait/string
refresh helpers: they walk a separate id-keyed collection through `0x0053f830`, free and