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.
50 lines
2.3 KiB
Plaintext
50 lines
2.3 KiB
Plaintext
# Stage\script.tbl -- the mission-script manifest
|
|
# Regenerate: python3 tools/re-capture/script_manifest.py
|
|
# See docs/re/structures/mission-script-manifest.md
|
|
|
|
## the three records
|
|
SCRIPTS 40 fields
|
|
GP_TEST 1 fields
|
|
PATH 'dat\\GP_TEST\\'
|
|
TEXTS 3 fields
|
|
FONT_SIZE '33'
|
|
TEXT_LINES '3'
|
|
TEXT_POS '296,565,39'
|
|
|
|
## SCRIPTS -- the 11 non-MISSION fields, read for the first time
|
|
DIALOG_LOCAL_STRING 'MissionDialog_local_string.tbl'
|
|
DIALOG_MESSAGE 'MissionDialogMessage.tbl'
|
|
FONT 'dat\\fonts.pak+HGRGE00.TTF'
|
|
FONT_SIZE '15'
|
|
MISSION_END_PRT 'pgmsg_end.prt'
|
|
MISSION_FAILED_PRT 'pgmsg_failed.prt'
|
|
MISSION_RESTART_PRT 'pgmsg_restart.prt'
|
|
MISSION_START_PRT 'pgmsg_start.prt'
|
|
MISSION_UPDATE_PRT 'pgmsg_update.prt'
|
|
TEXT_LINES '30'
|
|
TEXT_POS '128,128,16'
|
|
|
|
## do those values resolve as pak entries? (33 prefixes x 41 archives)
|
|
MissionDialogMessage.tbl FOUND as message\MissionDialogMessage.tbl in 6 archives
|
|
MissionDialog_local_string.tbl not found
|
|
pgmsg_start.prt not found
|
|
pgmsg_end.prt not found
|
|
pgmsg_update.prt not found
|
|
pgmsg_failed.prt not found
|
|
pgmsg_restart.prt not found
|
|
CONTROL Stage\script.tbl resolves in 6 archives
|
|
NOTE name_hash is CASE-INSENSITIVE (message\ == Message\); tag_hash is not.
|
|
|
|
## message\MissionDialogMessage.tbl -- 200 records, 25280 bytes
|
|
name families S<NN>_P<n>_<KIND>: {'HINT_PAUSE': 40, 'HINT': 40, 'LOSE': 40, 'GRAPH': 40, 'OBJECTIVE': 40}
|
|
field counts: {4: 120, 3: 40, 1: 40}
|
|
stages present (22): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24, 25, 26, 27, 28, 29]
|
|
phases per stage: {1: 2, 2: 3, 3: 3, 4: 2, 5: 2, 6: 3, 7: 2, 8: 2, 9: 3, 10: 1, 11: 2, 12: 2, 13: 1, 14: 2, 15: 2, 16: 2, 24: 1, 25: 1, 26: 1, 27: 1, 28: 1, 29: 1}
|
|
CONTROL subset of the 28 shipped stages: True ; shipped with NO hints: [18, 19, 20, 21, 22, 23]
|
|
|
|
sample S10_P1_HINT_PAUSE:
|
|
tag 0 <none> 'S10_P1_Hint_Pause_00'
|
|
tag 1 <none> 'S10_P1_Hint_Pause_01'
|
|
tag 2 <none> 'S10_P1_Hint_Pause_02'
|
|
tag 3 <none> 'S10_P1_Hint_Pause_03'
|