Files
Sylpheed/docs/re/data/script-manifest.txt
Sylpheed RE agent e8158f2dfd 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.
2026-08-27 13:37:31 +00:00

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'