1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-13 14:09:41 +00:00

Store an animation object in the character controller

This commit is contained in:
Chris Robinson 2013-01-16 10:16:37 -08:00
parent 63e685ea39
commit b378bc92a0
2 changed files with 11 additions and 4 deletions

View file

@ -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);
}
}

View file

@ -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