formats: what opt links, measured - a record-to-record reference, focus is one use of it
Two readings were on record and both were wrong in different directions: the structure doc called it "normal state -> focused state" from a single example, and the backlog called it "refuted as focus; unexplained otherwise". Classified every link reachable from a declaration table: 1467 links, and ALL 1467 resolve to a RATC child of their own bundle, ALL are .rat -> .rat, none dangle and none self-link. 1076 (73%) match the <stem>f focus pattern; the other 391 are chains between effect records - px_bunk_eff01 -> pjex_eff -> pjex_eff07, pveff01 -> pjeff02 -> pjeff21 - which also explains why only 227 targets are themselves declared elements: the middle of a chain is, the end is not. So `opt ` is a record-to-record reference within the bundle, and focus is its commonest use rather than its meaning. Coverage is stated rather than glossed: the bundles hold 18718 raw `opt ` tags against the 1467 classified, because opt_link reads the first tag of a DECLARED element's record. Roughly 92% of occurrences sit deeper in the chains (or are byte coincidences - the scan is unaligned) and are untested. The numbers are asserted so the answer cannot drift back into an anecdote. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
@@ -452,3 +452,47 @@ that a menu draws for its buttons.
|
||||
**Still open:** whether the focused state is marked anywhere *else* — the `.rat`
|
||||
record, the RATC child stream, or (as with the paint order) only in the game's
|
||||
code. This closes the declaration table, not the question.
|
||||
|
||||
## 🟡 What `opt ` links — measured over the whole disc (2026-08-24)
|
||||
|
||||
Two readings were on record and both were wrong in different directions: this
|
||||
file called it *normal state → focused state* from a single example
|
||||
(`pgpbtn00.rat → pgpbtn00f.rat`), and the backlog called it "refuted as focus;
|
||||
unexplained otherwise". Classifying **every** link reachable from a declaration
|
||||
table (`tests/ui_opt_link_disc.rs`) gives a distribution instead:
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| `opt ` links classified | **1 467** |
|
||||
| resolve to a **RATC child of the same bundle** | **1 467 — all of them** |
|
||||
| `.rat` → `.rat` | **1 467 — all of them** |
|
||||
| match the focus pattern `<stem>f.<ext>` | **1 076 (73 %)** |
|
||||
| whose target is *also* a declared element | 227 |
|
||||
| link to themselves | **0** |
|
||||
|
||||
So `opt ` is a **record→record reference within the bundle**: a record naming
|
||||
another record it uses. It never dangles, never points at a sprite, and never
|
||||
points at itself. Focus is the commonest *use* of that mechanism, not its
|
||||
meaning.
|
||||
|
||||
**What the other 27 % are: chains.** The non-`f` targets are effect records
|
||||
referring to further effect records, and following them shows depth:
|
||||
|
||||
```
|
||||
px_bunk_eff01.rat → pjex_eff.rat → pjex_eff07.rat
|
||||
px_bunk_eff01.rat → pjnet_bg.rat → pjnet_loop1.rat
|
||||
pveff01.rat → pjeff02.rat → pjeff21.rat
|
||||
pjeff03.rat → pjeff03_sub.rat
|
||||
```
|
||||
|
||||
Note the middle name in each chain *is* a declared element while the third is
|
||||
not — which is exactly why only 227 targets are elements.
|
||||
|
||||
⚠️ **Coverage, stated because it bounds all of the above.** The bundles contain
|
||||
**18 718** raw `opt ` byte-tags against the **1 467** links classified here.
|
||||
`opt_link()` reads the **first** tag of the record belonging to a **declared
|
||||
element**, so roughly 92 % of occurrences sit on records deeper in the chain (or
|
||||
are byte coincidences in binary data — the scan is unaligned). What those say is
|
||||
untested. The claims above are about the links a screen's element table can
|
||||
reach, which is what a compositor follows; they are not a statement about every
|
||||
`opt ` in the file.
|
||||
|
||||
Reference in New Issue
Block a user