locomotion.md: correct the gimp-audio verdict -- the reverse-disabled voice is real and wired
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
1671b7d4b2
commit
18766a167b
+19
-11
@@ -303,17 +303,25 @@ gimped mechs too — the port relocated it into the NORMAL leg driver's Standing
|
||||
stops running when the gimp driver takes over ("rotating statue"). The arming is now mirrored
|
||||
in `AdvanceLegAnimationGimp`. No gimp-turn clip exists — a limping mech step-turns with the
|
||||
normal `trn` clip [T1: the RES limp set is only wg/gg/gs].
|
||||
**Gimp audio — RESOLVED 2026-07-29** (`ed84445`): there is NO "reverse disabled" voice line,
|
||||
klaxon binding, or MFD text in the 1995 game — the binary's mapper has no gimp check (the
|
||||
refusal is structural: the gimp machines have no reverse path) and no REVERSE/DISABLED string
|
||||
exists in BTL4.RES; the five `*VOC` bank samples are mission-shell VO. The AUTHENTIC limp audio
|
||||
is the authored **strained-servo component**: `Entity.AnimationState` state-watchers on the limp
|
||||
entries 22/23 and stops 26/27 (+ walk-stands 8/9) start it, gain-scaled by `Entity.LocalVelocity`
|
||||
(0..10 → −300..0). Verified live: `[statefire] trigState=23 old=7 new=23 ctl Start`
|
||||
(BT_AUDIO_SPATIAL diagnostic). ⚠ Open hazard: one bench session had ZERO AnimationState watcher
|
||||
fires (same build/conditions) — suspected watcher rebind miss around the initial mission respawn
|
||||
(watchers possibly bound to a recreated mech's stale indicator). Watch for silent limps in the
|
||||
field.
|
||||
**Gimp audio — the "REVERSE DISABLED" voice IS REAL and now plays** (`1671b7d`; the earlier
|
||||
"no voice exists" verdict here was WRONG — user/old-timer pushback found it). The authored mech
|
||||
audio has **state watchers on `Entity.SimulationState == 3/4`** (the binary's one-cell mech+0x40
|
||||
= the gimp level) that start a sequence playing notes 29, 16, **40** — two klaxon hits then
|
||||
Warnings01 zone 8 (`Warnings01_z7.wav`, key 40-41) = the spoken "reverse disabled". It never
|
||||
fired in the port because of the SAME cell split that hid the limp (graphicAlarm vs engine
|
||||
simulationState, gotcha #23) — the audio watches the half the gimp system never wrote. Fixed:
|
||||
mechdmg mirrors gimp 3/4 into `SetSimulationState` at the leg-half crossing (guarded vs
|
||||
disabled/fall/dead), and `BT_GIMP_SAFE_BASE_READ` stops pre-gimp replication records from
|
||||
stomping the cell (gimp is monotonic per life). Verified: `SetupPatch bank2 patch113 note=40`.
|
||||
Layered under it: the `Entity.AnimationState` triggers on limp entries 22/23 + stops 26/27
|
||||
(+ walk-stands 8/9) play **EngineShiftRev01** (downshift foley), velocity-gained — a separate
|
||||
working layer (earlier mis-ID'd here as "the" limp audio). The earlier "watcher rebind"
|
||||
hazard was a bench artifact (the harness gimped the mech before the audio object loaded —
|
||||
impossible in play). ⚠ Open: an unidentified RAW writer (bypasses SetState; indicator-level
|
||||
trap never fired while the value changed) resets the sim cell between damage events — under a
|
||||
1 Hz bench harness it restarted the warning before the 1.8 s voice note; sporadic real-play
|
||||
damage is unaffected. Needs a cdb write-watchpoint dig (candidates: a recon raw +0x2c-family
|
||||
write or a struct copy spanning it).
|
||||
Open: the load-time per-clip callbacks `PTR_LAB_0050d738/744` on the wg clips (uncarved LABs,
|
||||
inert `Recon` placeholders in the port — likely footstep/cycle events, transitions work without
|
||||
them).
|
||||
|
||||
Reference in New Issue
Block a user