Files
TeslaRel410/restoration/source410/BT
CydandClaude Fable 5 aadc372307 BT410 5.3.97: combat damage now limps the mech -- and a fresh leg hit can no longer one-shot it
Two corrections to the damage model's leg branch, both read straight off the
binary's own control flow (part_012.c:6900-6945, the _DAT_0049c99c/9a0
compares), closing a delta the notes had carried as staged:

  THE KILL GATE WAS WRONG.  Our reconstruction felled the mech whenever a
  leg zone reached 1.0.  The binary only does that when the mech is ALREADY
  LIMPING (mode 3/4): a first leg hit -- even one that takes the zone
  straight to 1.0 -- produces a LIMP, and the fall needs a second blow to
  land while the gait is already gimped.  Two-stage leg death, exactly the
  BattleTech flavour, and measurably more forgiving than what we shipped.

  THE ALARM WAS RIGHT.  The limp/kill signal writes AlarmIndicator::SetLevel
  at mech+0x2c -- the statusAlarm, exactly as our MECHDMG had it (levels 3/4
  limp, 9 down).  Confirmed rather than changed.

AND THE MISSING LINK STAGED: nothing promoted statusAlarm 3/4 into the
movement mode the gait keys on.  The binary's own damage code READS mode 3/4
to decide "already limping", so the promotion demonstrably exists -- its
writer is the master performance (mech4 @004a9b5c, the function Ghidra never
decompiled).  Until that lands, Simulate promotes status 3/4 -> simulation
state 3/4 (guarded so a death mode is never overwritten), marked STAGED with
the evidence.

The chain is now END TO END: enemy fire -> cylinder table -> leg zone
crosses 0.5 -> statusAlarm 3/4 -> movement mode -> the limp advancers
replace the normal gait -> the drag leg shows on the wire -> the demand
clamp caps the throttle.  Live regression: the normal mission's speed
sequence is bit-identical a third time (7.31972, 26.6726, ...); the
promotion block is inert until real leg damage arrives.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 13:27:02 -05:00
..