re: correction -- Generic is a per-FILE header record, not a table
Yesterday's page said "Generic (394 per pak) is the unit datasheet".
Only 114 of the 394 are. Every IDXD file carries exactly one Generic
record and its schema is set by what kind of file it is. Partitioned
by field set, identically in all six GP_MAIN_GAME_*.pak:
114 has HP -- a unit datasheet
204 {Count} only -- a dialogue file
64 {ID, Name, SideID, Unique} -- a character (36 TCAF + 28 ADAN)
10 {EnumAsteroidGroup} -- an asteroid group
2 degenerate
204+114+64+10+2 = 394, and 178 distinct Generic.ID = 114 unit + 64
character, the only two shapes carrying an ID. That settles the
"178 IDs vs 394 records" question the previous entry left open.
Positive control in the same loop: for the 204 dialogue headers Count
equals the number of Message_NNN siblings, 204/204, zero mismatches.
Cross-check from the other side: Maneuver = 114, Effect = 114, the
carrying-entry sets are identical, every unit Generic has a Maneuver
sibling, and Generic.Type splits 43 Craft + 71 Vessel -- the same
43/71/114 unit-struct-runtime.md reached from live guest memory.
New tool generic_partition.py + artefact; ISL artefacts byte-identical.
This commit is contained in:
@@ -827,6 +827,34 @@ unknown, what evidence exists, and what the first step would be. Move an item in
|
||||
field; the stat keys in records not opened here (`MegaTons`, `BulletLimit`,
|
||||
`CrewCount`, `HP_CLASS`); why the roster lists 59 of 131.
|
||||
|
||||
* ✅ **(2026-08-27) CORRECTION — `Generic` is a per-FILE HEADER record, not a
|
||||
table. Only **114** of the 394 are unit datasheets.**
|
||||
[structures/unit-datasheet-static](structures/unit-datasheet-static.md),
|
||||
artefact `data/generic-record-partition.txt`, tool
|
||||
`tools/re-capture/generic_partition.py`.
|
||||
Answers "178 distinct `Generic` IDs vs 394 records per pak — what are the
|
||||
extra records?" from the entry below. **Every IDXD file carries exactly one
|
||||
`Generic` record**, and its schema is set by what kind of file it is.
|
||||
Partitioned by field set, identically in all six `GP_MAIN_GAME_*.pak`:
|
||||
**114** have `HP` = unit datasheets; **204** are `{Count}` only = dialogue
|
||||
files; **64** are `{ID, Name, SideID, Unique}` = characters (36 `TCAF` +
|
||||
28 `ADAN`, each with a `Faces` sibling); **10** are `{EnumAsteroidGroup}`;
|
||||
2 are degenerate (one empty, one naming `eff_n0071`). 204+114+64+10+2 = 394,
|
||||
and **178 distinct `Generic.ID` = 114 unit + 64 character** — the only two
|
||||
shapes that carry an `ID`.
|
||||
🧪 **Positive control in the same loop**: for the 204 dialogue headers,
|
||||
`Count` equals the number of `Message_NNN` siblings **204 / 204**, zero
|
||||
mismatches — so "header record describing its own file" is not a story fitted
|
||||
to the counts.
|
||||
🔑 Cross-check from the other side: `Maneuver` = 114, `Effect` = 114, the
|
||||
carrying-entry sets are **identical**, every unit `Generic` has a `Maneuver`
|
||||
sibling, and `Generic.Type` splits **43 `Craft` + 71 `Vessel`** — the same
|
||||
43/71/114 `unit-struct-runtime.md` reached by reading live guest memory.
|
||||
🟡 Still open from the entry below: no field-by-field reconciliation of the
|
||||
static sheet against the runtime capture (much of it is already done in
|
||||
`unit-struct-runtime.md`); why the arsenal roster lists 59 of 131 weapons;
|
||||
what `Maneuver`'s `AA_`/`AV_` prefixes select.
|
||||
|
||||
* ✅✅ **(2026-08-27) THE STATIC UNIT DATASHEET **AND** THE AI FLIGHT MODEL —
|
||||
`Generic` (394), `Maneuver` (114), `Effect` (114).
|
||||
[structures/unit-datasheet-static](structures/unit-datasheet-static.md),
|
||||
|
||||
Reference in New Issue
Block a user