diff --git a/context/combat-damage.md b/context/combat-damage.md index e3a1ce5..509f3e8 100644 --- a/context/combat-damage.md +++ b/context/combat-damage.md @@ -14,6 +14,22 @@ open_questions: The drive→target→fire→damage→destroy loop. Full detail: `docs/PROGRESS_LOG.md §10c`; the death/ teardown forensics: `docs/HARD_PROBLEMS.md` (P5). +## ⚠ `TurretClassID` is a RED HERRING — there is no turret code (2026-07-28) [T1] +`engine/MUNGA/VDATA.h:209` really does declare `TurretClassID`, as the **last entry of the BT block** +(right after `MechTechClassID`, before the ND section), which makes it look like a BattleTech class. +It is not one. That enum position computes to **3038 = 0xBDE**, and 0xBDE in the shipped runtime is +**ThermalSight** (ctor `@4b8718`, `thermalsight.cpp`, already DONE) — the same enum-vs-runtime label +drift `CLASSMAP.md` records for HUD/MechTech at 0xBD6/0xBDC. The `case 0xbde:` in the mech factory +(`part_012.c:10186`) is a **mech SUBSYSTEM** slot (roster `param_1[0x4a]`), not a world entity. +Corroborating: there is **no `class Turret`** anywhere in the engine or the port, and `BTL4OPT.EXE` +contains **zero** occurrences of `turret`/`sentry`/`emplac`/`brain`/`patrol`/`aggro`/`hostile`/`npc`. +`jointturret` (in `OWN`/`PGN`/`STI` skeletons + `own_tur.bgf`) is a **mech** turret-torso joint, not a +world gun. The destructible world objects (`Landmark`, `CulturalIcon`, `UnscalableTerrain` — +`CULTURAL.h`) have no weapon/fire/target members of any kind: they take damage and break, nothing more. +⇒ **Turret/cannon models in the maps (`TT1`/`TT2`/`TWR`/`TK1`/`APC` + their `D` damaged variants) are +SCENERY.** They never fired in 1995. Making them fire would be inventing a feature, not reconstructing +one — and it would need an entity class, targeting, and a threat model that the binary has no trace of. + ## No AI — BT is PvP-only (verified, not a recovery gap) The mission system is NETWORKED and BT never had NPCs/AI. Every mech is driven by a `BTPlayer` (or a `BTCameraDirector` spectator). The BT registry knows only Mech/Projectile/Missile/BTPlayer/BTTeam; no