re: the rest of StageResource - two more value kinds, one convention refuted
Swept all 19 StageResource fields by value kind. Refuted: <X>ID + <X>Package is not a convention. The record has exactly one *ID field (BackGroundID) and exactly one pairing stem. StageResourcePackage has no StageResourceID; WingmanIconID_0..3 have no package. n = 1 is not a rule, so last pass's generalisation is withdrawn. Fourth kind - the game:\ external path. BackGroundPackage (18 values) and StageResourcePackage (23) are neither records nor pak keys because they are ISO file paths. Mapping game:\ to the extract root and \ to /, case-folded, 41 of 41 exist on the extracted disc (hidden/resource3d/BG_Acheron.xpr, Stage_S01.xpr, ...; 166 .xpr files in that directory). Fifth form - game:\hidden\<archive>.pak+<entry>. LodEnumTable, MotionEnumTable and TBL_3D name an archive AND an entry inside it, e.g. game:\hidden\DefTables.pak+EnumLODSet_S24.tbl. Splitting on + and hashing the right half against THAT archive's keys resolves 20 of 21; the one failure is sound.pak+ with an empty entry name. Some of those entry names carry an explicit <lang>\ prefix (deu\GP_HANGAR_ARSENAL_3D.tbl, eng\, esp\), each present in 0 other archives, so the language-prefix form is genuinely used by the engine. This does NOT unblock the 2D naming problem: archive-naming refuted <lang>\ there structurally, since the six 2D paks share one identical 711-key TOC and cannot carry per-language names. Both facts stand. The 4 never-shipped _Test tables - the residual of the 344-name census - are now named: EnumCharacter_Test.tbl, EnumLocalString_Test.tbl, EnumSquadron_Test.tbl, StageMessageSet_test.tbl (lower-case test on the last). WingmanIconID_1..3 hold PGHUD_WING2/WING3/WING4, HUD element names from the PG* roster; WingmanIconID_0 is never valued. All fifteen artefacts byte-identical.
This commit is contained in:
@@ -6407,3 +6407,36 @@ id — the same borrow-and-re-dress pattern already seen for maps and objectives
|
||||
|
||||
🟡 Not settled: `Original` carries **no** `BackGroundPackage` — whether that is
|
||||
"no sky" or an engine default is unknown.
|
||||
|
||||
---
|
||||
|
||||
## ✅❌ 2026-08-28 — the rest of `StageResource`: two more value kinds, one convention refuted
|
||||
|
||||
Item (a).
|
||||
|
||||
❌ **`<X>ID` + `<X>Package` is not a convention.** `StageResource` has exactly one
|
||||
`*ID` field (`BackGroundID`) and one pairing stem; `StageResourcePackage` has no
|
||||
`StageResourceID`, `WingmanIconID_0…3` have no package. **n = 1 is not a rule** —
|
||||
last pass's generalisation withdrawn.
|
||||
|
||||
✅ **Fourth kind — the `game:\` external path.** `BackGroundPackage` (18) and
|
||||
`StageResourcePackage` (23) resolve as neither record nor pak key because they
|
||||
are ISO paths: mapping `game:\`→extract root and `\`→`/`, **41 of 41 exist on the
|
||||
extracted disc**.
|
||||
|
||||
✅ **Fifth form — `game:\hidden\<archive>.pak+<entry>`.** `LodEnumTable`,
|
||||
`MotionEnumTable`, `TBL_3D` name an archive *and* an entry
|
||||
(`…\DefTables.pak+EnumLODSet_S24.tbl`); hashing the right half against **that
|
||||
archive's** keys resolves **20 of 21**, the failure being `sound.pak+` with an
|
||||
empty entry name.
|
||||
|
||||
🔑 Some entry names carry an explicit `<lang>\` prefix (`deu\GP_HANGAR_ARSENAL_3D.tbl`),
|
||||
each present in 0 other archives — the language-prefix form is real.
|
||||
⚠️ It does **not** unblock 2D: `archive-naming` refuted `<lang>\` there
|
||||
structurally (six identical 711-key TOCs). Both stand.
|
||||
|
||||
✅ **The 4 never-shipped `_Test` tables are named**: `EnumCharacter_Test.tbl`,
|
||||
`EnumLocalString_Test.tbl`, `EnumSquadron_Test.tbl`, `StageMessageSet_test.tbl`.
|
||||
|
||||
✅ **`WingmanIconID_1…3` = `PGHUD_WING2/3/4`**, HUD names from the `PG*` roster;
|
||||
`WingmanIconID_0` is never valued.
|
||||
|
||||
Reference in New Issue
Block a user