1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-17 10:52:46 +00:00

Convert the impact velocity to avatar-local coordinates, because that's what {Running|Ground}Impact::PreCondition() expects.

Fixes landing animations depending on what direction relative to the age you jump rather than whether you land forward or straight down.
This commit is contained in:
Christian Walther
2012-04-18 20:51:14 +02:00
parent 67f6823f73
commit 3d0f01ff03
2 changed files with 3 additions and 0 deletions

View File

@ -137,6 +137,8 @@ void plWalkingController::RecalcVelocity(double timeNow, double timePrev, hsBool
// always (0,0,0) outside of the controller update proc
fImpactTime = fWalkingStrategy->GetAirTime();
fImpactVelocity = fController->GetAchievedLinearVelocity();
// convert orientation from subworld to avatar-local coordinates
fImpactVelocity = (hsVector3)fController->GetLocalRotation().Rotate(&fImpactVelocity);
fClearImpact = false;
}
else

View File

@ -147,6 +147,7 @@ public:
virtual void CheckAndHandleAnyStateChanges();
virtual void UpdateSubstepNonPhysical();
virtual const hsPoint3& GetLocalPosition()=0;
const hsQuat& GetLocalRotation() { return fLocalRotation; }
virtual void MoveActorToSim();
virtual void OverrideAchievedVelocity(hsVector3 newAchievedVel)