re: the objective/tutorial marker records; S24-S29 are CHALLENGE, not story

Correction first.  stage-numbering-and-player-craft.md called S24-S29
'story' and reported 22 story stages.  challenge-mission-gate.md OWNS
that split and already had it: S01-S16 story, S18-S23 tutorials,
S24-S29 challenge.  A third confirmation fell out of this iteration:
AUTO_SETTINGS names stage01..16_settings.tbl, tutorial01..06 and
challenge01..06, and its field tags are 1-16, 18-23, 24-29 -- the
shipped stage numbers exactly.  The campaign is 16 story missions, not
22.  AUTO_SETTINGS and IGNORE are likewise already owned by
isl-condition-builtins.md, so nothing there was new either.

What is new: the 11 marker records hud-config.md listed as unread.  12
named fields each, portable HUD data.  Colour is ARGB, three per marker
-- objectives red 0xFFFF0000, guard/waypoint green 0xFF20FF20,
Acropolis/tanker cyan 0xFF00FFFF, sub-objective yellow 0xFFFFFF00, and
every TutorialMarker_* amber 0xFFFFA010.  Each carries a Normal sprite
and an Emphasis part with optional Sub companions; HPGauge 0/1/2;
RadarCursorType Circle/Rectangle/blank; BlinkCycle 0x800 on all eleven.
TutorialTarget is Yes on exactly the five TutorialMarker_* and No on the
six ObjectiveMarker_*.

Parameters binds the roles: TargetMarker -> ObjectiveMarker_Target,
HelpMarker -> ObjectiveMarker_SubObjective, TutoTargetMarker ->
TutorialMarker_Target, plus ReloadDispTime 0.1.
Enumerate_ObjectiveMarkers is the 11-name roster.

Artefact +13 lines / 0 deletions; the other nine regenerate
byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-27 15:46:31 +00:00
parent 15c9e13c12
commit d1368c12db
5 changed files with 116 additions and 6 deletions

View File

@@ -60,11 +60,52 @@ and index 25 is **S26 — the one stage with its own HUD configuration**. The
arithmetic is exact and the `_S26` suffix names the same stage, but nothing here
proves the indexing, so this is **a reading, not adopted**.
## ✅ The objective / tutorial MARKER records
`hud-config.md` listed these as "in the artefact but unread". Opened now — and
they are portable HUD data, 11 records of **12 named fields** each:
```
ObjectiveMarker_Target ColorNormal 0xFFFF0000 Emph1 0xFFFF0000 Emph2 0xFF800000
Normal pgmark_ob.t32 NormalSub pgmark_ob_s.t32
Emphasis pgmark_em_ob.prt EmphasisSub pgmark_em_ob_s.prt
HPGauge 2 HPGaugeSub 0 BlinkCycle 0x800
RadarCursorType (blank) TutorialTarget No
```
* **Colour is ARGB**, three per marker: `ColorNormal`, `ColorEmphasis1`,
`ColorEmphasis2`. Objectives are **red** `0xFFFF0000`, guard/waypoint **green**
`0xFF20FF20`, Acropolis/tanker **cyan** `0xFF00FFFF`, sub-objective **yellow**
`0xFFFFFF00`, and every `TutorialMarker_*` is **amber** `0xFFFFA010`.
* Each marker carries a `Normal` sprite and an `Emphasis` part, optionally with
`…Sub` companions; `HPGauge` is 0 / 1 / 2; `RadarCursorType` is `Circle`
(Acropolis, tanker), `Rectangle` (guard) or blank; `BlinkCycle` is `0x800`
on all eleven.
* `TutorialTarget` is `Yes` on exactly the five `TutorialMarker_*` records and
`No` on the six `ObjectiveMarker_*` — the two families are otherwise the same
shape.
**`Parameters` (4 fields) binds the roles**:
```
TargetMarker ObjectiveMarker_Target
HelpMarker ObjectiveMarker_SubObjective
TutoTargetMarker TutorialMarker_Target
ReloadDispTime 0.1
```
**`Enumerate_ObjectiveMarkers`** is the 11-name roster of the set — the same
shape as the `Enumerate_Squadrons` record [unit-group-table](unit-group-table.md)
uses.
⚠️ `pgmark_em_ob_s.prt` here is one of the 28 names
[archive-naming](archive-naming.md) shows resolving nowhere — consistent with
the namespace finding, not a missing asset.
## 🟡 Not settled
* How the 2D pak's 574 T8aD and 130 RATC entries *are* addressed, if not by
`name_hash` of the config path. That is now the question.
* What `HudMarkerResource.tbl` is — presumably the 13-record marker entry, but
the filename does not resolve, so the pairing is by content, not by hash.
* `Parameters` (4 fields) and `Enumerate_ObjectiveMarkers` (11) are in the
artefact but unread here.
* ~~`Parameters` and `Enumerate_ObjectiveMarkers` unread.~~ **Opened above.**

View File

@@ -13,13 +13,23 @@
The disc's stage numbers are not 1…28:
```
S01 … S16 story (16)
S01 … S16 story (16)
S17 ABSENT
S18 … S23 the tutorials (6) -- exactly the six with no AIParams_SNN.tbl
S24 … S29 story (6)
== 28 shipped, 22 of them story
S18 … S23 the tutorials (6) -- exactly the six with no AIParams_SNN.tbl
S24 … S29 CHALLENGE (6)
== 28 shipped
```
> ❌ **CORRECTION (2026-08-27, same day).** This page first called S24S29
> "story", giving "22 story stages". They are the **challenge** missions —
> [challenge-mission-gate](../challenge-mission-gate.md) owns that split and had
> it already (`S01S16` story, `S18S23` tutorials, `S24S29` challenge). A third
> confirmation turned up while reading `AUTO_SETTINGS`: it names
> `stage01…16_settings.tbl`, `tutorial01…06_settings.tbl`,
> `challenge01…06_settings.tbl` — **and its field tags are 116, 1823, 2429**,
> the shipped stage numbers exactly. So the campaign is **16** story missions,
> not 22.
Measured by hashing `stage\UnitGroup_S%02d.tbl` and `stage\AIParams_S%02d.tbl`
for N = 0…39 against `GP_MAIN_GAME_E.pak`. Artefact `../data/stage-numbering.txt`,
regenerator `tools/re-capture/stage_numbering.py`.