diff --git a/context/combat-damage.md b/context/combat-damage.md index 672ebe4..c9af100 100644 --- a/context/combat-damage.md +++ b/context/combat-damage.md @@ -237,10 +237,11 @@ Real sample (`ava1`, 7 rows × 8 cells): rows 0-2 `rotateWithTorso=0` (feet/legs rows 3-6 `=1` (upper body — rotates with torso twist); a foot cell = `{0.5→16, 0.8→10, 1.0→5}`. The table is found by the mech's **type-0x14 DamageZoneStream NAME** (`ResourceDescription::resourceName`) → `ResourceFile::FindResourceDescription(name, DamageLookupTableStreamResourceType/*29*/)`. -So STEP 6 remaining = (6b) fix the name-load (current `ResourceFindByName` is a NO-OP template stub → empty -name → 0 rows); (6c) make the table functional + `ResolveHit→zone`; (6d) register the -`Mech::TakeDamageMessageHandler` override + verify. **Nothing is guessed — geometry, roll, handler, and byte -format are all verified.** +So STEP 6 was = (6b) the name-load; (6c) the table + `ResolveHit→zone`; (6d) the +`Mech::TakeDamageMessageHandler` override. **✅ ALL DONE — see "STEP 6 COMPLETE" below (`d07ac7d`):** the +name-load BYPASSED the no-op `ResourceFindByName` via `SearchList(type=0x14)` (mech.cpp:1631), so the table +loads live (`[cyl] table 'bhk1'/'madcat'/'ava1' layers=7`) and `ResolveHit` resolves unaimed hits to zones. +**Nothing was guessed — geometry, roll, handler, and byte format all verified.** ## The classes ALREADY EXIST — `game/reconstructed/dmgtable.cpp` (2026-07 discovery) The three container classes are **already reconstructed** in `dmgtable.cpp`/`.hpp` (in the build): diff --git a/context/multiplayer.md b/context/multiplayer.md index cafe616..28752c9 100644 --- a/context/multiplayer.md +++ b/context/multiplayer.md @@ -353,7 +353,10 @@ transition, HUD all landed since P6): console egg → mesh → RunningMission on (@0049fb74) + the level-2 "translocated" cockpit alarm; `CreatePlayerVehicle` (FUN_004bfcac, disassembled — make+link only, matches RP analog). The sphere is a pure RENDER-side watcher on the SimulationState dial, independent of that sim path. - Mech::Reset (@0049fb74) full subsystem-reset sweep is still a bring-up TODO. + Mech::Reset (@0049fb74) does the full subsystem-reset sweep (mech4.cpp:1616 loops every subsystem → + `DeathReset(mode)`, restoring heat/power/ammo/charge) + heals all damage zones + ForceUpdate(0x1f). + (Per-subsystem `DeathReset` bodies are authentically trivial/empty for some classes — the shipped + build folds those overrides — so "fuller" reset behavior is per-subsystem, not a missing sweep.) **Three respawn bugs found + fixed on the way (all [T2], 2-node force-damage verified):** (i) **death-latch un-latch** — `IsMechDestroyed` tested `graphicAlarm>=9` alone; a later leg hit on the wreck rewrites the alarm to 4/3, un-latching → the death transition RE-RAN (double kill,