re: the rest of the stage-settings object -- cameras, player limits, difficulty
53 objects in GP_MAIN_GAME_E carry a Phase_1 record, in TWO families: 29 are the resource manifest the corpus already owns (Phase_N = 4 fields) and 24 are the settings table (Phase_N = 31-90 fields). That answers the 24-vs-28 puzzle left open by the scoring entry -- the 29 is a different table, not the settings. Camera: three chase rigs in metres, 13 of 14 fields identical in every stage -- Nose (0, 4.5, 7), Near (0, 10, 40), Far (0, 15, 80), FOV 0.92; only CameraFar varies, once. Player: BulletLimit 512 / HomingLimit 256 / LaserLimit 32 and the three 0.30 axis adjustments are constant, GravityFactor is non-zero in 4 of 24 stages, and IsBoss16Enable appears in exactly ONE object -- the first per-stage handle for a family whose filenames do not resolve. Difficulty_Easy/Normal/Hard is a SECOND difficulty record (8 damage and guidance multipliers), separate from Score_*. New doc structures/stage-settings-table.md; mission_scoring.py extended. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
@@ -4575,3 +4575,51 @@ not assume the missing four are the tutorials without opening them.
|
||||
positive last iteration are the same offsets that made it findable — but only
|
||||
after switching from *offset* to *name*. Read what a loader names, not where it
|
||||
stores.
|
||||
|
||||
---
|
||||
|
||||
## ✅ 2026-08-27 — the rest of the stage-settings object: cameras, player limits, difficulty
|
||||
|
||||
Continues the scoring entry. New doc
|
||||
[`structures/stage-settings-table.md`](structures/stage-settings-table.md);
|
||||
`mission_scoring.py` extended; artefact `data/mission-scoring.txt` grows by the
|
||||
whole-object census. **Still twelve artefacts.**
|
||||
|
||||
**Docs checked first.** `isl-condition-builtins.md` owns `Camera`,
|
||||
`ControlTweak`, `Rendering` **as records in `GP_HANGAR_ARSENAL.pak`** — the
|
||||
game-wide defaults. **What it does not say** is that `Camera` recurs *per stage*
|
||||
in the `GP_MAIN_GAME_*` packs. `stage-definition-table.md` /
|
||||
`challenge-mission-gate.md` own `StageResource`; `stage-mission-tables.md` owns
|
||||
`LodResource`/`MotionResource`. `SplinterCell` and `Difficulty_*` are unowned.
|
||||
|
||||
⚠️ **Two families share the `Phase_1/2/3` record names.** 53 objects in
|
||||
`GP_MAIN_GAME_E.pak` contain a `Phase_1`: **29** are the resource manifest
|
||||
(`StageResource`/`LodResource`/`MotionResource`, `Phase_N` = 4 named fields) and
|
||||
**24** are the settings table (`Camera`/`Player`/`SplinterCell`/`Difficulty_*`/
|
||||
`Score_*`, `Phase_N` = 31–90 fields). Counting without partitioning would have
|
||||
merged them — *a record name is a file-local role*, again.
|
||||
|
||||
✅ **This answers the 24-vs-28 puzzle** left open last iteration: the settings
|
||||
family is 24; the **29** — matching `AUTO_SETTINGS`'s 1…29 tag range — is a
|
||||
different table.
|
||||
|
||||
✅ **`Camera`: three chase rigs, and 13 of 14 fields are identical in every
|
||||
stage.** Nose (0, 4.5, 7.0), Near (0, 10, 40), Far (0, 15, 80), all FOV 0.92;
|
||||
`CameraNear` 1.0, `CameraFar` 3 000 000.0 with a single stage at 500 000.0.
|
||||
World unit is 1 m, so these are metres — directly portable.
|
||||
|
||||
✅ **`Player`:** `BulletLimit` 512, `HomingLimit` 256, `LaserLimit` 32,
|
||||
`Pitch/Roll/YawAdjustment` 0.30, `AirDragFactor` 1.0 — all constant across 24.
|
||||
**`GravityFactor` is non-zero in 4 of 24 stages** (250/400/700), and
|
||||
**`IsBoss16Enable` appears in exactly ONE object**, which identifies it as stage
|
||||
16 — the first per-stage handle for a family whose filenames do not resolve.
|
||||
|
||||
✅ **`Difficulty_Easy/Normal/Hard` is a SECOND difficulty record**, 8 damage and
|
||||
guidance multipliers, separate from `Score_*`. So difficulty is expressed twice
|
||||
in one object: once for scoring, once for damage.
|
||||
|
||||
🟡 **Not settled:** the `Phase_1/2/3` block of the settings family (31–90 fields
|
||||
— post-processing, fog, DOF, unsharp mask, supply squadrons/movies,
|
||||
`UnderCommandSquadron`, `MapPath`) is the largest remaining piece and was not
|
||||
read. Which object is which stage, beyond `IsBoss16Enable`. `SplinterCell Count
|
||||
5` is a name and a value only.
|
||||
|
||||
Reference in New Issue
Block a user