gimped turn-in-place (#78 field find): arm the trn step in the gimp leg driver
Field test: a gimped mech pivoted as a rotating statue. The binary's turn dispatcher (FUN_004a9b5c, master perf) runs OUTSIDE the driver selection so it arms trn for gimped mechs too -- 71f4's case 4 exists to advance it. The port relocated that dispatcher into the NORMAL leg driver's Standing case, which stops running when the gimp driver takes over. Mirror the arming (same gates + lockstep body arm) into AdvanceLegAnimationGimp's Standing case. No gimp-turn clip exists in the RES -- a limping mech step-turns with the normal trn clip, authentic. Field-verified: stepping pivots both directions while gimped, heading sweeping, clean re-entry into the wgr/ggl limp on throttle-up. [T2] Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
3db1062eb6
commit
95cf49d1b6
@@ -1652,6 +1652,28 @@ Scalar
|
||||
}
|
||||
if (motionSource->commandedSpeed <= standSpeed) // +0x128 <= 0x530
|
||||
{
|
||||
// TURN-IN-PLACE while GIMPED (#78 field find, 2026-07-29: "rotating
|
||||
// statue"). The binary's trn dispatcher (FUN_004a9b5c, master perf)
|
||||
// runs OUTSIDE the driver selection, so it arms the turn step for
|
||||
// gimped mechs too -- 71f4's case 4 exists to advance it. The port
|
||||
// relocated that dispatcher into the NORMAL driver's Standing case,
|
||||
// which stops running the moment this driver takes over. Mirror it
|
||||
// (same gates + lockstep body arm; no reverse entry here -- the gimp
|
||||
// machines refuse reverse).
|
||||
const int trnIsRepl2 = (GetInstance() == ReplicantInstance);
|
||||
const Scalar trnEntryMax2 = trnIsRepl2 ? standSpeed * 0.25f : standSpeed;
|
||||
if (turnCapable != 0 && gimpMppr != 0
|
||||
&& motionSource->commandedSpeed >= ZeroSpeed
|
||||
&& motionSource->commandedSpeed <= trnEntryMax2
|
||||
&& (gimpMppr->turnDemand > 0.05f
|
||||
|| gimpMppr->turnDemand < -0.05f)
|
||||
&& (trnIsRepl2 || bodyAnimationState == StandingAnimation))
|
||||
{
|
||||
SetLegAnimation(4); // trn, channel A
|
||||
if (!trnIsRepl2)
|
||||
SetBodyAnimation(4); // lockstep, masters
|
||||
goto advance_normally;
|
||||
}
|
||||
distance = 0.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user