mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-20 20:29:10 +00:00
Fix controlled flight bug
fControlledFlight state should be handled outside of the physics step.
This commit is contained in:
@ -503,15 +503,6 @@ void plWalkingStrategy::Update(float delSecs)
|
||||
fImpactVelocity = (hsVector3)fController->GetLocalRotation().Rotate(&fImpactVelocity);
|
||||
fClearImpact = false;
|
||||
}
|
||||
|
||||
if (fControlledFlight != 0)
|
||||
{
|
||||
if (IsOnGround())
|
||||
fControlledFlightTime = fTimeInAir;
|
||||
|
||||
if (fControlledFlightTime > kControlledFlightThreshold)
|
||||
EnableControlledFlight(false);
|
||||
}
|
||||
}
|
||||
|
||||
void plWalkingStrategy::AddContactNormals(hsVector3& vec)
|
||||
@ -535,6 +526,20 @@ void plWalkingStrategy::Reset(bool newAge)
|
||||
}
|
||||
}
|
||||
|
||||
void plWalkingStrategy::RecalcVelocity(double timeNow, float elapsed, bool useAnim)
|
||||
{
|
||||
if (fControlledFlight != 0)
|
||||
{
|
||||
if (IsOnGround())
|
||||
fControlledFlightTime = fTimeInAir;
|
||||
|
||||
if (fControlledFlightTime > kControlledFlightThreshold)
|
||||
EnableControlledFlight(false);
|
||||
}
|
||||
|
||||
plAnimatedMovementStrategy::RecalcVelocity(timeNow, elapsed, useAnim);
|
||||
}
|
||||
|
||||
bool plWalkingStrategy::EnableControlledFlight(bool status)
|
||||
{
|
||||
if (status)
|
||||
|
Reference in New Issue
Block a user