diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index ed590817c..1819c36ce 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -311,12 +311,15 @@ void CharacterController::refreshHitRecoilAnims() mAnimation->disable(mCurrentHit); mAnimation->play(mCurrentHit, Priority_Knockdown, MWRender::Animation::BlendMask_All, true, 1, "loop stop", "stop", 0.0f, 0); } + if (mHitState != CharState_None) + mIdleState = CharState_None; } void CharacterController::refreshJumpAnims(const WeaponInfo* weap, JumpingState jump, bool force) { if(force || jump != mJumpState) { + mIdleState = CharState_None; bool startAtLoop = (jump == mJumpState); mJumpState = jump; @@ -359,6 +362,7 @@ void CharacterController::refreshMovementAnims(const WeaponInfo* weap, Character { if(force || movement != mMovementState) { + mIdleState = CharState_None; mMovementState = movement; std::string movementAnimName; @@ -1197,6 +1201,7 @@ bool CharacterController::updateWeaponState() bool animPlaying; if(mAttackingOrSpell) { + mIdleState = CharState_None; if(mUpperBodyState == UpperCharState_WeapEquiped && (mHitState == CharState_None || mHitState == CharState_Block)) { MWBase::Environment::get().getWorld()->breakInvisibility(mPtr);