re: the screen parse generalises to the ARSENAL, plus kind 0x4 and the component model

examples/screen_layout.rs dumps a bundle's declaration table and placement region
together. It reproduces the tutorial pause menu exactly and reads the ARSENAL the
same way -- 23 elements that match the running game: eight buttons prbtn1..8.rat
at X=242 evenly spaced (the config declares WEAPON_CATEGORIES = 8, and eight
categories are what the Arsenal shows), prexp3.t32 declared SEVEN times at X=726
34px apart (the DATA SHEET rows), prexp1 sliding (726,143)->(1286,143) with
prexp1a parented to it, and prmsg at (151,645).

Two additions to the format:

  kind = 0x4 marks a REPEATED INSTANCE of a sprite -- prexp3.t32 appears once
  with 0x0 then six times with 0x4, each with its own placement. So the element
  name is not a key; the declaration index is.

  A screen composes from named .prt components. GP_HANGAR_ARSENAL.pak has 510
  RATC entries because its config names components (Menu = prmain_scr.prt, etc.)
  and they resolve under the config's own PATH prefix: prmain_scr.prt is absent,
  eng\prmain_scr.prt is present -- the same <lang>+<member> convention the movie
  table uses. A sub-component reads identically: psselect_win1 declares 4
  elements, three parented to element 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-11 22:06:00 +00:00
parent f65387143e
commit de357ffdc9
4 changed files with 167 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
23 elements
# element parent kind pivot kf placement
0 preff01.t32 - 0x0 (164,156) 5 (256, 214)
1 preff02.t32 - 0x0 (155,175) 7 (305, 240)
2 preff03.t32 - 0x0 (155,175) 7 (225, 150)
3 preff04.t32 - 0x0 (247,237) 6 (173, 133)
4 prwinbase.t32 - 0x0 (136,130) 5 (284, 240)
5 prbtn1.rat - 0x3002 (28,14) 5 (242, 166)
6 prbtn2.rat - 0x3002 (43,14) 5 (242, 220)
7 prbtn3.rat - 0x3002 (58,14) 5 (242, 276)
8 prbtn4.rat - 0x3002 (89,14) 5 (242, 331)
9 prbtn5.rat - 0x3002 (89,14) 5 (242, 385)
10 prbtn6.rat - 0x3002 (104,14) 5 (242, 441)
11 prbtn7.rat - 0x3002 (58,14) 5 (242, 496)
12 prbtn8.rat - 0x3002 (30,14) 5 (242, 551)
13 prexp1.t32 - 0x0 (277,30) 8 (726, 143) → (1286, 143)
14 prexp1a.t32 13 0x1 (277,30) 3 (1126, 143)
15 prexp3.t32 - 0x0 (205,5) 5 (726, 381)
16 prmsg.t32 - 0x0 (330,19) 5 (151, 645)
17 prexp3.t32 - 0x4 (205,5) 5 (726, 415)
18 prexp3.t32 - 0x4 (205,5) 5 (726, 449)
19 prexp3.t32 - 0x4 (205,5) 5 (726, 483)
20 prexp3.t32 - 0x4 (205,5) 5 (726, 517)
21 prexp3.t32 - 0x4 (205,5) 5 (726, 551)
22 prexp3.t32 - 0x4 (205,5) 5 (726, 585)

View File

@@ -0,0 +1,13 @@
11 elements
# element parent kind pivot kf placement
0 pgp_ttrl_eff11.t32 - 0x0 (34,33) 7 (603, 121) → (493, 121)
1 pgp_ttrl_eff12.t32 - 0x0 (34,33) 7 (609, 121) → (719, 121)
2 pgp_ttrl_eff10.t32 - 0x0 (204,60) 5 (436, 94)
3 pgp_ttrl_eff22.t32 - 0x0 (133,130) 5 (480, 225) → (490, 225)
4 pgp_ttrl_eff23.t32 - 0x0 (138,130) 5 (524, 271) → (514, 271)
5 pgp_ttrl_eff21.t32 - 0x0 (214,180) 5 (426, 198)
6 pgp_ttrl_title.rat - 0x0 (101,36) 6 (540, 119)
7 pgp_ttrl_btn10.rat - 0x3002 (43,21) 5 (546, 288)
8 pgp_ttrl_btn11.rat - 0x3002 (86,22) 5 (546, 358)
9 pgp_ttrl_btn12.rat - 0x3002 (110,21) 5 (546, 428)
10 pgp_ttrl_msg.t32 - 0x0 (190,19) 5 (451, 545)