CROUCH reconstruction (WIP): the master posture/duck machine, decoded + wired
Raw-disasm of the dark master-perf region (@0x4a9cf0-0x4aa0af): the myomer effectiveness factor (+0x79c, MAX over heatables' +0x31c, scales speedDemand -- feeder @004b8be3 unreconstructed, neutral 1.0 [T3]), the posture selector (+0x3f8: mode/novice/leg-state/myomer gates -- novices cannot crouch), and the DuckRequest consumer (standing -> SetLegAnimation(2) 'sqd', ducked -> SetLegAnimation(3) 'squ', ForceUpdate 8+1 ships the type-3 state record, stability alarm flips, request consumed). +0x1DC = mountSegment... er, the searchlight learned that one; here: mapPosture @0x3f8 + myomerEffectiveness @0x79c members land; value-space note (port normal mode == 1, binary 0). VERIFIED: request->consumer chain fires ([duck] SQUAT), the sqd clip plays (22kf/7joint, ends root -2.22 crouched -- clip data parsed from BTL4.RES, squ is its exact mirror; loader slot map re-verified byte-exact). OPEN: the parked crouch pose does not HOLD on screen (reverts ~1 frame after clip end with NO SetLegAnimation re-arm logged) -- the hold's render path is the remaining dig; [duck] re-arm tracer left in SetLegAnimation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
b75bb4a04c
commit
dd70061e0e
@@ -220,6 +220,16 @@ enum MechAnimationState
|
||||
void
|
||||
Mech::SetLegAnimation(int state)
|
||||
{
|
||||
// DIAG (BT_DUCK_LOG): every leg re-arm with the caller's return address --
|
||||
// the crouch-clobber hunt (who re-arms after the squat parks?).
|
||||
if (getenv("BT_DUCK_LOG"))
|
||||
{
|
||||
char dbuf[96];
|
||||
sprintf(dbuf, "[duck] SetLegAnimation(%d) ra=btl4+0x%lx", state,
|
||||
(unsigned long)_ReturnAddress()
|
||||
- (unsigned long)GetModuleHandleA(0));
|
||||
DEBUG_STREAM << dbuf << std::endl << std::flush;
|
||||
}
|
||||
legAnimation.SelectSequence( // FUN_004277a8(this+0x65c, ...)
|
||||
animationClips[state], // *(this+0x5cc + state*4)
|
||||
// The real leg finished-callback PTR_LAB_0050d6f0 == FUN_004a6928
|
||||
|
||||
Reference in New Issue
Block a user