From 74d9d3b6ff3fd6b84f41143fa5e95ef806380c1f Mon Sep 17 00:00:00 2001 From: arcattack Date: Sat, 18 Jul 2026 15:29:48 -0500 Subject: [PATCH] Camera networks FOUND: BTL4.RES type 27, all 8 maps -- KB corrected The 'cameras\ directory missing, ask Nick' entry (a03b16f, same day) was WRONG: the file path is only the DEV OVERRIDE (the RP-style loose .CAM files -- present for RP in the nick-games 410SRC archive, which prompted the re-check). The shipped binary falls back to a BTL4.RES resource TYPE 27 (0x1b) named after the map (FUN_0042be3c probe -> FUN_0042c078 res loader; per-cam binary records, parsers @0042ad54/ @0042b9f8) -- and our res has ALL 8 maps' networks (arena1 = 62 cameras; cavern/dbase/grass ~57KB each). First arena1 record parses clean (pos+quat, type 2). The spectator/broadcast seat needs no external data: remaining work is the type-27 loader in the WinTesla CAMMGR (file flavor only today), the stubbed ranking-window draw, and a camera-vehicle boot test. Co-Authored-By: Claude Fable 5 --- context/decomp-reference.md | 1 + context/open-questions.md | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/context/decomp-reference.md b/context/decomp-reference.md index 03972aa..4b73bc7 100644 --- a/context/decomp-reference.md +++ b/context/decomp-reference.md @@ -36,6 +36,7 @@ NOT `SearchList(clip_id, 16)` (which treats the arg as a LIST → walks garbage | AnimationResourceType | **16 (0x10)** | animation clips (lowercase: `blhrrl`=904, `blhrrr`=905, `blhwwli`=910, `blhrrli`=916) | | damage-zone segment list | 0x14 | per-zone segment list | | critical-subsystem segment | 0x1e | crit subsystem segments | +| CameraStream | **27 (0x1b)** | per-map spectator camera network, resource named after the map (all 8 maps ship; arena1 = 62 cams). Loaded by the CameraShip system when no `cameras\` dev-override FILE exists (`FUN_0042be3c` → `FUN_0042c078`; records `{count; per-cam {size; type 1\|2; pos+quat…}}` @0042ad54/@0042b9f8). [[open-questions]] §camera seat. [T1] | Animation clip names in `BTL4.RES` are **lowercase**. [T1] diff --git a/context/open-questions.md b/context/open-questions.md index e21d8fe..de47b5a 100644 --- a/context/open-questions.md +++ b/context/open-questions.md @@ -28,14 +28,18 @@ authentic path scoped. ERMLaser_2/3 (back gun ports) are the only rear weapons in the roster; see [[combat-damage]]. Remaining: bind the side/down look views to keys (only 'V' look-back is bound); pod look-button mappings for Phase 8. -- **The `cameras\` directory (per-map camera-network files)** — the CameraShip spectator/broadcast - system (2026-07-18 investigation) is engine-complete (DIRECTOR.cpp auto-follows the score - leader; CAMSHIP.cpp cuts between FIXED map camera positions like TV coverage), but the data is - missing: `CameraInstanceManager::ReadNotationFile` loads `cameras\` (name = the map - resource's, CAMMGR.cpp:390-415) and our archive has NO cameras directory. Without it a camera - seat has no shot network. Alternatives if lost: author our own per map, or a chase-cam - fallback. Also unreconstructed: the ranking-window draw (L4VIDRND.cpp:3016 visibility calls - stubbed) + `vehicle=camera` never boot-tested. Status: OPEN. +- ~~The `cameras\` directory (per-map camera-network files)~~ **RESOLVED from our own data + (2026-07-18, same day)**: the `cameras\` FILE path (CAMMGR.cpp:390-415, RP-style + loose `.CAM` notation — present for RP maps in the nick-games 410SRC archive) is only the DEV + OVERRIDE; the shipped binary falls back to **BTL4.RES resource TYPE 27 (0x1b) named after the + map** (`FUN_0042be3c` probe → `FUN_0042c078(res, mapname, 0x1b)`; binary records + `{count; per-cam {size; type 1|2; pos+quat+...}}`, parsers @0042ad54/@0042b9f8) — and our + BTL4.RES has ALL 8 maps' networks (arena1 = 62 cameras; cavern/dbase/grass ~57KB each). + [T1] Remaining to make the camera SEAT live: reconstruct the type-27 res loader in the + WinTesla CAMMGR (it only has the file flavor), un-stub the ranking-window draw + (L4VIDRND.cpp:3016), boot-test `vehicle=camera`. The spectator/broadcast system (director + auto-follows the score leader, TV-style camera cuts) is otherwise engine-complete. Status: + data in hand, loader reconstruction OPEN. ## Pod-hardware readiness gaps (Phase 8 assessment, 2026-07-17) [[pod-hardware]] Everything below EXISTS in the tree but has NEVER run against real pod hardware. Mechanism