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

@@ -126,7 +126,37 @@ but the control kills the generalisation: **only 4 of 376 `.prt` stems have a
`_sub.rat`. So `_sub.rat` is not the container convention; it is something these
four happen to have.
**Still not settled**: where the five mission-banner parts actually are. What is
### ✅ Who REFERENCES a part decides whether it ships as an entry
Censused the whole 135, not the five. The cross-tab over all **376** names:
| referenced by `tables.pak` | resolves as an entry | count |
|---|---|---:|
| yes | yes | **241** |
| no | no | **100** |
| yes | no | 35 |
| **no** | **yes** | **0** |
**Resolving implies being referenced by `tables.pak` — 0 counterexamples in
376.** `tables.pak` holds the menu screen configs; 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 at all — they are the
in-flight HUD, authored into the bundles rather than loaded by name.
🔑 So the five `pgmsg_*.prt` are not a special case of their own: they belong to
the 135, and the real split is **menu parts (named, shipped) vs in-game parts
(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**: referenced by `tables.pak`
yet absent — `pgmenu_btn*` / `pgmenu_item*` / `pgmenu_pad`, `pgfacewin*`,
`pgtextwin`, `phinfo1-3`, `02d`, `02d_scr`, `psview_release`. That is 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 above; not separately
proved.
**Still not settled**: where the embedded parts sit *inside* a bundle. What is
now settled is that they are **not** pak entries while 241 of their siblings are,
and that `pgmsg_update` is the odd one out even among them.