diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 97cdf3f49..73a6f2c9c 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -138,6 +138,7 @@ void CharacterController::playGroup(const std::string &groupname, int mode, int while(count-- > 0) mAnimQueue.push_back(groupname); mCurrentGroup = groupname; + mState = CharState_SpecialIdle; mAnimation->setAccumulation(Ogre::Vector3::ZERO); mAnimation->play(mCurrentGroup, ((mode==2) ? "loop start" : "start")); } @@ -165,6 +166,8 @@ void CharacterController::setState(CharacterState state) mAnimQueue.clear(); switch(mState) { + case CharState_SpecialIdle: + break; case CharState_Idle: mCurrentGroup = "idle"; mAnimation->setAccumulation(Ogre::Vector3::ZERO); diff --git a/apps/openmw/mwmechanics/character.hpp b/apps/openmw/mwmechanics/character.hpp index 902b8cc36..47bb27e83 100644 --- a/apps/openmw/mwmechanics/character.hpp +++ b/apps/openmw/mwmechanics/character.hpp @@ -12,6 +12,7 @@ namespace MWMechanics { enum CharacterState { + CharState_SpecialIdle, /* When running a PlayGroup/LoopGroup animation. */ CharState_Idle, CharState_Dead };