re: who references a .prt decides whether it ships -- menu named, in-game embedded

Censused the whole 135 unresolved set instead of chasing the five.
Cross-tab over all 376 .prt names: referenced by tables.pak AND
resolves 241; neither 100; referenced but absent 35; resolves WITHOUT
being referenced by tables.pak -- ZERO.

So resolving implies a tables.pak reference, 0 counterexamples of 376.
tables.pak holds the menu screen configs and every part it names ships
as <lang3>\<name>.prt.  The 100 names that appear only inside the
GP_MAIN_GAME_*2D.pak bundles never ship as entries -- the in-flight HUD
is authored into the bundles, not loaded by name.  The five pgmsg_*.prt
were never a special case; the split is menu = named + shipped,
in-game = embedded.

It is not a prefix rule: 6 of the 135 pg* names do resolve (pgloading,
pgloading2, pgmsg_scr, pgpause, pgpause_ttrl, pgpbase), because
tables.pak names them.

The 35-name residual is one coherent family -- pgmenu_btn*/item*/pad,
pgfacewin*, pgtextwin, phinfo1-3, 02d, 02d_scr, psview_release: the
in-game pause menu and squadron-order overlay, named by a menu config
but drawn from the in-game bundles.  Consistent with the split, not
separately proved.

Artefact +44 lines / 0 deletions; the other six regenerate
byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-27 14:13:41 +00:00
parent 94065d40ec
commit e4000d9cb5
4 changed files with 119 additions and 2 deletions

View File

@@ -827,6 +827,31 @@ 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) WHO REFERENCES A `.prt` DECIDES WHETHER IT SHIPS — menu parts
are named and shipped, in-game parts are embedded. 0 counterexamples in 376.**
[structures/mission-script-manifest](structures/mission-script-manifest.md),
artefact `data/prt-parts.txt` (+44 lines, 0 deletions — purely additive).
Censused the whole 135 unresolved set instead of chasing the five. Cross-tab
over all 376 `.prt` names: **referenced by `tables.pak` AND resolves 241;
neither 100; referenced but absent 35; resolves WITHOUT being referenced by
`tables.pak` — ZERO.**
🔑 **Resolving implies a `tables.pak` reference, 0 counterexamples of 376.**
`tables.pak` holds the menu screen configs and every part it names ships as
`<lang3>\<name>.prt`. The **100** names that appear only inside the
`GP_MAIN_GAME_*2D.pak` bundles never ship as entries — the in-flight HUD is
authored into the bundles, not loaded by name. So the five `pgmsg_*.prt` were
never a special case; the real split is **menu = named + shipped, in-game =
embedded**.
❌ **It is NOT a prefix rule** — 6 of the 135 `pg*` names DO resolve
(`pgloading`, `pgloading2`, `pgmsg_scr`, `pgpause`, `pgpause_ttrl`, `pgpbase`),
precisely because `tables.pak` names them.
🟡 The 35-name residual is one coherent family: `tables.pak`-referenced yet
absent — `pgmenu_btn*`/`pgmenu_item*`/`pgmenu_pad`, `pgfacewin*`, `pgtextwin`,
`phinfo1-3`, `02d`, `02d_scr`, `psview_release`: the **in-game pause menu and
squadron-order overlay**, named by a menu config but drawn from the in-game
bundles. Consistent with the split, not separately proved.
🟡 Still open: where an embedded part sits INSIDE a bundle.
* 🟡 **(2026-08-27) WHERE `.prt` SCREEN PARTS LIVE — and the five mission
banners are a real exception.**
[structures/mission-script-manifest](structures/mission-script-manifest.md),