diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 6c8d558a4d..7b166ba91a 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -218,7 +218,7 @@ Ogre::Vector3 CharacterController::update(float duration) // Apply any sideways movement manually movement.x += vec.x * (speed*duration); } - else + else if(mAnimQueue.size() == 0) setState((inwater ? CharState_IdleSwim : CharState_Idle), true); } @@ -246,7 +246,7 @@ void CharacterController::playGroup(const std::string &groupname, int mode, int while(count-- > 0) mAnimQueue.push_back(groupname); mCurrentGroup = groupname; - mState = CharState_Idle; + mState = CharState_SpecialIdle; mAnimation->play(mCurrentGroup, ((mode==2) ? "loop start" : "start"), false); } else if(mode == 0) diff --git a/apps/openmw/mwmechanics/character.hpp b/apps/openmw/mwmechanics/character.hpp index 996687a3e1..2465aea98f 100644 --- a/apps/openmw/mwmechanics/character.hpp +++ b/apps/openmw/mwmechanics/character.hpp @@ -14,6 +14,7 @@ namespace MWMechanics { enum CharacterState { + CharState_SpecialIdle, CharState_Idle, CharState_Idle2, CharState_Idle3,