Benched solo AND in MP on the same chassis: both presses reach
DuckRequestMessageHandler, zero drops, SQUAT -> squat clip parked -> RISE.
Locomotion is not the bug, and MP is not refusing it.
Added an ungated [duck] REQUEST DROPPED receipt at the consumer's silent miss.
The squatCapable==0 path skips the consumer entirely AND leaves duckState
latched at 1 with NO log today; the posture-gate miss logged only under
BT_DUCK_LOG, which no player sets. Neither fired on madcat.
What the pilot sees, traced with BT_LAMP_LOG: the button lamp is momentary
press feedback, not state --
PRESS -> [lamp] 0x13 <- 0x3c
SQUAT -> mech crouches, clip parked
RELEASE -> [lamp] 0x13 <- 0x14 <-- while still CROUCHED
so crouched and standing look identical.
Era testimony corrects the scope: the button should ANIMATE A MECH SYMBOL
beside it, standing <-> crouching (operator). Lynx: 'When a mech stops,
crouch button lowers its stance and plays crouch animation. Mech is
immobilized until crouch is pushed again, and mech rises.' Draco concurs.
Two real gaps, neither fixed here:
1. no immobilization while crouched -- nothing gates movement on duckState
or the parked leg alarm. NB a driven mech with a parked leg channel is
the [skate] signature (#52), so this may not be cosmetic.
2. no stance symbol -- no gauge element draws one, and the decomp carries no
crouch/squat/stance/duck graphic string, so it is an authored IMAGE on the
secondary MFD; find it in that gauge's element list, not by string.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCJQkvq6G2JNrpVbA75tVZ
60 lines
3.2 KiB
Python
60 lines
3.2 KiB
Python
"""#142 -- correct the report and record what benching established. ASCII only."""
|
|
import sys
|
|
sys.path.insert(0, r"C:\git\bt411\scratchpad\night7")
|
|
import gitea
|
|
|
|
gitea.comment(142, """**RE-SCOPED 2026-08-07 -- the mech crouches fine; this is a missing PANEL ANIMATION.**
|
|
|
|
The original report ("the crouch button did not toggle to display crouched ... the light next to
|
|
it always flashes when pressed, but state does not change") reads like a locomotion or lamp bug.
|
|
Benching says it is neither.
|
|
|
|
## What works (benched, `scratchpad/night13/crouch142.sh` + `crouchmp.sh`)
|
|
|
|
* SOLO, madcat: both presses reach `DuckRequestMessageHandler`, zero drops, `[duck] SQUAT (posture
|
|
1 -> leg clip 2)` then `squat clip parked`, then `[duck] RISE`. A full toggle cycle.
|
|
* MULTIPLAYER, same chassis: identical -- 2 requests, 0 drops, SQUAT + RISE. So the MP path is not
|
|
refusing it either.
|
|
|
|
A receipt was added at the consumer's silent miss (`[duck] REQUEST DROPPED`, ungated) covering both
|
|
gates -- `squatCapable == 0` (which skips the consumer entirely AND leaves `duckState` latched at 1,
|
|
with no log at all today) and `mapPosture` not 1/2 (previously logged only under `BT_DUCK_LOG`,
|
|
which no player sets). Neither fired on madcat. Chassis without `squ`/`sqd` clips are still
|
|
untested; the bench takes a vehicle argument for that sweep.
|
|
|
|
## What the pilot actually sees
|
|
|
|
The crouch button's LAMP is momentary press feedback, not state. Traced with `BT_LAMP_LOG`:
|
|
|
|
PRESS -> [lamp] 0x13 <- 0x3c (lit)
|
|
SQUAT -> mech crouches, clip parked
|
|
RELEASE -> [lamp] 0x13 <- 0x14 (unlit) <-- while still CROUCHED
|
|
PRESS2 -> [lamp] 0x13 <- 0x3c
|
|
RISE -> mech stands
|
|
RELEASE -> [lamp] 0x13 <- 0x14
|
|
|
|
Crouched and standing are visually identical, so the lamp can never carry posture.
|
|
|
|
## What it is SUPPOSED to be (era testimony, this day)
|
|
|
|
The operator, correcting the framing: the crouch button is supposed to **animate a MECH SYMBOL next
|
|
to the button**, standing <-> crouching. Not a two-state lamp -- a missing animation.
|
|
|
|
VGL Lynx: *"When a mech stops, crouch button lowers its stance and plays crouch animation. Mech is
|
|
immobilized until crouch is pushed again, and mech rises."* Draco: *"Checks out with my memories."*
|
|
|
|
## Two gaps, and the second is the reported one
|
|
|
|
1. **No immobilization while crouched.** Nothing in the port gates movement on `duckState` or the
|
|
parked leg alarm -- grep of every consumer of both across `game/reconstructed/` finds no
|
|
speed/throttle/demand gate. Per Lynx the mech should be immobile until the button is pushed
|
|
again. ⚠ Worth checking what a crouched mech that IS driven does today, since the leg clip is
|
|
parked -- a moving mech with a parked leg channel is the [skate] signature (#52).
|
|
2. **No stance symbol.** No gauge element anywhere in `btl4gau*.cpp` draws a posture/stance icon,
|
|
and the decomp has no crouch/squat/stance/duck graphic STRING (only substring false positives:
|
|
"existance", "distance"). So it is likely an authored IMAGE element on the secondary/radar MFD
|
|
rather than something findable by name -- next step is the secondary MFD's element list in the
|
|
binary, not another string search.
|
|
|
|
Not fixed. Re-scoped, with the locomotion half cleared and the real target named.""")
|