re: Stage\script.tbl's 11 non-MISSION fields, and the mission dialogue table
structures/mission-script-ssb.md owns this manifest and names its 40 fields but never read the 11 that are not MISSION<n> = StageNN.ssb. They are DIALOG_MESSAGE, DIALOG_LOCAL_STRING, FONT (+size), TEXT_POS, TEXT_LINES and the five pgmsg_*.prt. Two sibling records were also unread: GP_TEST (PATH = dat\GP_TEST\, a debug archive not on the disc) and TEXTS (a second text style). Probed 7 values x 33 prefixes x 41 archives. One resolves: message\MissionDialogMessage.tbl, in all six GP_MAIN_GAME_* paks -- 200 records, 25280 bytes, every name S<NN>_P<n>_<KIND> with five kinds 40 each (HINT_PAUSE, HINT, OBJECTIVE, GRAPH, LOSE), fields positional and tagged 0..3, each value a message key. An index from (stage, phase, kind) to the localised strings, on the same S<NN>_P<n> keying the ISL corpus already uses. Control: the 40 stage-phases span stages 1-16 and 24-29 -- a subset of the 28 shipped, and the six with no hints are exactly 18-23, the tutorials. A fifth independent route to the story/tutorial split, and it gives the phase count per stage. The other six do not resolve, with the control in the same sweep: MissionDialog_local_string.tbl and all five pgmsg_*.prt are not a pak entry under any of the 33 prefixes, while message\MissionDialogMessage.tbl and Stage\script.tbl both resolve in 6 archives. name_hash is CASE-INSENSITIVE (message\ == Message\); tag_hash is not. New structure doc, artefact and regenerator; the other five artefacts regenerate byte-identical.
This commit is contained in:
@@ -827,6 +827,41 @@ 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) `Stage\script.tbl`'s 11 NON-`MISSION` FIELDS, READ AT LAST —
|
||||
and one of them lands on the mission DIALOGUE table.**
|
||||
[structures/mission-script-manifest](structures/mission-script-manifest.md),
|
||||
artefact `data/script-manifest.txt`, regenerator
|
||||
`tools/re-capture/script_manifest.py`.
|
||||
`structures/mission-script-ssb.md` owns this manifest and names its 40 fields
|
||||
but never read the 11 that are not `MISSION<n> = StageNN.ssb`. They are
|
||||
`DIALOG_MESSAGE = MissionDialogMessage.tbl`, `DIALOG_LOCAL_STRING =
|
||||
MissionDialog_local_string.tbl`, `FONT = dat\fonts.pak+HGRGE00.TTF`,
|
||||
`FONT_SIZE 15`, `TEXT_POS 128,128,16`, `TEXT_LINES 30`, and the five
|
||||
`pgmsg_{start,end,update,failed,restart}.prt`. Two sibling records were also
|
||||
unread: **`GP_TEST` (`PATH = dat\GP_TEST\`, a debug archive NOT on the disc)**
|
||||
and `TEXTS` (a second text style, 33/3/`296,565,39`).
|
||||
🔑 Probed 7 values x 33 prefixes x 41 archives. **One resolves:
|
||||
`message\MissionDialogMessage.tbl`**, in all six `GP_MAIN_GAME_*` paks —
|
||||
**200 records, 25 280 bytes**, every name `S<NN>_P<n>_<KIND>` with five kinds
|
||||
40 each (`HINT_PAUSE`, `HINT`, `OBJECTIVE`, `GRAPH`, `LOSE`), fields
|
||||
**positional, tagged 0..3**, each value a message key
|
||||
(`S10_P1_HINT_PAUSE` -> `S10_P1_Hint_Pause_00.._03`). An index from
|
||||
(stage, phase, kind) to the localised strings, on the same `S<NN>_P<n>` keying
|
||||
the ISL corpus already uses.
|
||||
🧪 **Control**: the 40 stage-phases span stages **1-16 and 24-29** — a subset
|
||||
of the 28 shipped, and the six with NO hints are exactly **18-23, the
|
||||
tutorials**. A fifth independent route to the story/tutorial split, and it
|
||||
hands over the **phase count per stage** (1 to 3; S02/S03/S06/S09 have 3,
|
||||
S10/S13 and all of S24-S29 have 1).
|
||||
🟡 **The other six do not resolve**, with the control in the same sweep:
|
||||
`MissionDialog_local_string.tbl` and all five `pgmsg_*.prt` are not a pak entry
|
||||
under any of the 33 prefixes, while `message\MissionDialogMessage.tbl` and
|
||||
`Stage\script.tbl` both resolve in 6 archives. Same wall
|
||||
`mission-phase-advance.md` hit for the manifest's KEYS; this closes the VALUES.
|
||||
⚠️ **`name_hash` is CASE-INSENSITIVE** (`message\` == `Message\`); `tag_hash`
|
||||
is not. Already noted in `sound-pak-contents.md`; repeated because it doubles
|
||||
the apparent hit count of a prefix sweep.
|
||||
|
||||
* ✅ **(2026-08-27) THE STAGE NUMBERING IS CONSISTENT EVERYWHERE — and the
|
||||
manifest still declares the cut S17.** Also a **correction to my own claim**
|
||||
in the entry below.
|
||||
|
||||
Reference in New Issue
Block a user