diff --git a/apps/openmw/mwmechanics/actors.cpp b/apps/openmw/mwmechanics/actors.cpp index 485d7448ba..bd7a9cef2c 100644 --- a/apps/openmw/mwmechanics/actors.cpp +++ b/apps/openmw/mwmechanics/actors.cpp @@ -165,11 +165,12 @@ namespace MWMechanics void Actors::addActor (const MWWorld::Ptr& ptr) { + MWRender::Animation *anim = MWBase::Environment::get().getWorld()->getAnimation(ptr); if(!MWWorld::Class::get(ptr).getCreatureStats(ptr).isDead()) - mActors.insert(std::make_pair(ptr, CharacterController(ptr, CharState_Idle))); + mActors.insert(std::make_pair(ptr, CharacterController(ptr, anim, CharState_Idle))); else { - mActors.insert(std::make_pair(ptr, CharacterController(ptr, CharState_Dead))); + mActors.insert(std::make_pair(ptr, CharacterController(ptr, anim, CharState_Dead))); MWBase::Environment::get().getWorld()->playAnimationGroup (ptr, "death1", 2); } } diff --git a/apps/openmw/mwmechanics/character.hpp b/apps/openmw/mwmechanics/character.hpp index 206f6e737f..8a09861177 100644 --- a/apps/openmw/mwmechanics/character.hpp +++ b/apps/openmw/mwmechanics/character.hpp @@ -3,6 +3,11 @@ #include "../mwworld/ptr.hpp" +namespace MWRender +{ + class Animation; +} + namespace MWMechanics { @@ -14,12 +19,13 @@ enum CharacterState { class CharacterController { MWWorld::Ptr mPtr; + MWRender::Animation *mAnimation; CharacterState mState; public: - CharacterController(const MWWorld::Ptr &ptr, CharacterState state) - : mPtr(ptr), mState(state) + CharacterController(const MWWorld::Ptr &ptr, MWRender::Animation *anim, CharacterState state) + : mPtr(ptr), mAnimation(anim), mState(state) { } CharacterState getState() const