re: the leaderboard screen, and a Detail_* prefix trap
sub_8219E560 r11, censused against tables.pak exactly like the result screens.
444 instructions, one call site (sub_821A2A80), 100 % of its names are tables.pak
names.
The 18 names partition exactly: 13 record names + 5 field-only names. The 13 are
the 12 Detail_* panel elements plus MISSIONS -- a 0-field record already owned by
isl-condition-builtins.md and challenge-mission-gate.md, so not new. The five
field-only names are the screen's parameters: DETAIL_TITLE, one field in each of
six mode records (ScoreAttack, TimeAttack, Extra01..Extra04), and
Detail_Board_{Permanent,Monthly,Friend,Self}, four fields of CHIPS -- the board
scopes.
All 12 Detail_* record names are in the code block, zero residual -- the opposite
of the boss motions, where the block was a 25-of-55 subset. The panel is Rank,
GamerTag, Main_{Time,Points}_{Self,Live}, Warships, Warplanes,
Weapon_{Nose,Main1,Main2,Main3}: your figure against the selected entry's, plus
that pilot's kills and four weapon slots. _Live, GamerTag and the Friend/Monthly
boards make it the Xbox Live detail view.
The trap worth keeping: tables.pak has 12 Detail* RECORD names and 12 Detail*
FIELD names, and they are DISJOINT (0 overlap). The fields are a different axis
-- 4 board scopes + 6 modes + Detail_Window_{Known,Unknown}. A Detail_* name
means nothing until you say whether it is a record or a field.
Not settled: what Detail_Window_Known/_Unknown switch between, and whether
Extra01..04 map onto the four challenge missions.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
62
docs/re/structures/leaderboard-screen.md
Normal file
62
docs/re/structures/leaderboard-screen.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# ✅ The leaderboard screen — `sub_8219E560`, and a `Detail_*` prefix trap
|
||||
|
||||
- **Key list:** `sub_8219E560` `r11`, base `0x820A0000`, **18 names, 100 % of them
|
||||
`tables.pak` names**; 444 instructions, **one** call site (`sub_821A2A80`).
|
||||
- **Related:** [[result-screens]] (the same compiled-key-list shape),
|
||||
[[savegame-format]] (where that shape was first documented).
|
||||
|
||||
## ✅ The 18 partition exactly
|
||||
|
||||
| | |
|
||||
|---|---:|
|
||||
| `tables.pak` **record** names | **13** |
|
||||
| **field**-only names | **5** |
|
||||
|
||||
`13 + 5 = 18`. The 13 are the **12 `Detail_*` panel elements** plus **`MISSIONS`**
|
||||
— a 0-field record already owned by [[isl-condition-builtins]] and
|
||||
[[challenge-mission-gate]] as an IDXD record key, not a new thing.
|
||||
|
||||
The five field-only names say how the screen is parameterised:
|
||||
|
||||
* **`DETAIL_TITLE`** — one field in **each of six mode records**: `ScoreAttack`,
|
||||
`TimeAttack`, `Extra01`, `Extra02`, `Extra03`, `Extra04`.
|
||||
* **`Detail_Board_{Permanent, Monthly, Friend, Self}`** — four fields of `CHIPS`,
|
||||
the four board scopes.
|
||||
|
||||
✅ **And all 12 `Detail_*` record names are in the code block — zero residual.**
|
||||
That is worth stating because the boss motions went the other way: there the
|
||||
block was a 25-of-55 subset. Here the code names the whole population.
|
||||
|
||||
## The detail panel — 12 elements
|
||||
|
||||
```
|
||||
Detail_Rank Detail_GamerTag
|
||||
Detail_Main_Time_Self Detail_Main_Time_Live
|
||||
Detail_Main_Points_Self Detail_Main_Points_Live
|
||||
Detail_Warships Detail_Warplanes
|
||||
Detail_Weapon_Nose Detail_Weapon_Main1/Main2/Main3
|
||||
```
|
||||
|
||||
`_Self` beside `_Live` for both time and points, `GamerTag`, and Friend/Monthly
|
||||
boards — this is the **Xbox Live** leaderboard detail view: your own figure
|
||||
against the selected entry's, plus that pilot's kill counts and the four weapon
|
||||
slots they flew.
|
||||
|
||||
## 🔑 The trap: two disjoint 12-element `Detail*` populations
|
||||
|
||||
`tables.pak` has **12 `Detail*` record names and 12 `Detail*` field names, and
|
||||
they do not overlap at all** (0 of 12). The fields are a different axis entirely:
|
||||
|
||||
```
|
||||
Detail_Board_{Permanent,Monthly,Friend,Self} the four scopes
|
||||
Detail_{ScoreAttack,TimeAttack,Extra01..Extra04} the six modes
|
||||
Detail_Window_{Known,Unknown} two window states
|
||||
```
|
||||
|
||||
**A `Detail_*` name means nothing until you say whether it is a record or a
|
||||
field** — the same prefix indexes the panel's elements on one side and the
|
||||
screen's mode/scope selectors on the other. Counting "24 `Detail_*` things" would
|
||||
be counting two unrelated tables together.
|
||||
|
||||
🟡 Not settled: what `Detail_Window_Known` / `_Unknown` switch between, and
|
||||
whether `Extra01…04` map onto the four challenge missions the corpus knows.
|
||||
Reference in New Issue
Block a user