Browse Source

Fix landing behaviors

Looks like Cyan broke these when they fixed superjumps. It appears that
LinearVelocity is only good while the PhysicalControllerCore is updating,
and it stashes the result for later so nothing else can touch it.
Regardless, we need to test AchievedLinearVelocity outside of the update
proc.
Adam Johnson 13 years ago
parent
commit
b907f8978a
  1. 4
      Sources/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.cpp

4
Sources/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.cpp

@ -133,8 +133,10 @@ void plWalkingController::RecalcVelocity(double timeNow, double timePrev, hsBool
if (fController && !fWalkingStrategy->IsOnGround()) if (fController && !fWalkingStrategy->IsOnGround())
{ {
// PhysX Hack: AchievedLinearVelocity is a Cyanic fix for superjumps. LinearVelocity is
// always (0,0,0) outside of the controller update proc
fImpactTime = fWalkingStrategy->GetAirTime(); fImpactTime = fWalkingStrategy->GetAirTime();
fImpactVelocity = fController->GetLinearVelocity(); fImpactVelocity = fController->GetAchievedLinearVelocity();
fClearImpact = false; fClearImpact = false;
} }
else else

Loading…
Cancel
Save