1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-21 11:53:53 +00:00

Make spellcasting stance transition more smooth (fixes #4358)

If a movement animation was identical to the previous one that was played, restart it from the point the previous animation ended
This commit is contained in:
Capostrophic 2018-07-05 01:37:11 +03:00 committed by Capostrophic
parent 2ff9dc34a4
commit faf3e9ba5a

View file

@ -459,9 +459,11 @@ void CharacterController::refreshMovementAnims(const WeaponInfo* weap, Character
} }
} }
/* If we're playing the same animation, restart from the loop start instead of the // If we're playing the same animation, start it from the point it ended
* beginning. */ bool sameAnim = (movementAnimName == mCurrentMovement);
int mode = ((movementAnimName == mCurrentMovement) ? 2 : 1); float startPoint = 0.f;
if (sameAnim)
mAnimation->getInfo(mCurrentMovement, &startPoint);
mMovementAnimationControlled = true; mMovementAnimationControlled = true;
@ -510,7 +512,7 @@ void CharacterController::refreshMovementAnims(const WeaponInfo* weap, Character
} }
mAnimation->play(mCurrentMovement, Priority_Movement, movemask, false, mAnimation->play(mCurrentMovement, Priority_Movement, movemask, false,
1.f, ((mode!=2)?"start":"loop start"), "stop", 0.0f, ~0ul, true); 1.f, (!sameAnim ? "start" : "loop start"), "stop", startPoint, ~0ul, true);
} }
} }
} }