1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-03-13 07:14:31 +00:00

Restart from the loop point if replaying the same animation

This commit is contained in:
Chris Robinson 2013-08-09 21:25:28 -07:00
parent 5968165de0
commit 180f0d0fe9

View File

@ -212,6 +212,10 @@ void CharacterController::refreshCurrentAnims(CharacterState idle, CharacterStat
}
}
/* If we're playing the same animation, restart from the loop start instead of the
* beginning. */
int mode = ((movement != mCurrentMovement) ? 1 : 2);
mAnimation->disable(mCurrentMovement);
mCurrentMovement = movement;
if(!mCurrentMovement.empty())
@ -220,7 +224,7 @@ void CharacterController::refreshCurrentAnims(CharacterState idle, CharacterStat
if(mMovementSpeed > 0.0f && (vel=mAnimation->getVelocity(mCurrentMovement)) > 1.0f)
speedmult = mMovementSpeed / vel;
mAnimation->play(mCurrentMovement, Priority_Movement, movegroup, false,
speedmult, "start", "stop", 0.0f, ~0ul);
speedmult, ((mode==2)?"loop start":"start"), "stop", 0.0f, ~0ul);
}
}
}