1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-03 15:15:34 +00:00

Add a small threshold for player turning animations

This commit is contained in:
Andrei Kortunov 2018-08-26 22:57:08 +04:00
parent 327f36b081
commit d448b802ef

View file

@ -2045,6 +2045,12 @@ void CharacterController::update(float duration)
inJump = false;
// Do not play turning animation for player if rotation speed is very slow.
// Actual threshold should take framerate in account.
float rotationThreshold = 0;
if (mPtr == getPlayer())
rotationThreshold = 0.015 * 60 * duration;
if(std::abs(vec.x()/2.0f) > std::abs(vec.y()))
{
if(vec.x() > 0.0f)
@ -2069,9 +2075,9 @@ void CharacterController::update(float duration)
}
else if(rot.z() != 0.0f && !sneak && !(mPtr == getPlayer() && MWBase::Environment::get().getWorld()->isFirstPerson()))
{
if(rot.z() > 0.0f)
if(rot.z() > rotationThreshold)
movestate = inwater ? CharState_SwimTurnRight : CharState_TurnRight;
else if(rot.z() < 0.0f)
else if(rot.z() < -rotationThreshold)
movestate = inwater ? CharState_SwimTurnLeft : CharState_TurnLeft;
}
}