|
|
|
@ -111,17 +111,17 @@ CharacterController::CharacterController(const MWWorld::Ptr &ptr, MWRender::Anim
|
|
|
|
|
mAnimation->setController(this);
|
|
|
|
|
|
|
|
|
|
getStateInfo(mState, &mCurrentGroup);
|
|
|
|
|
if(ptr.getTypeName() == typeid(ESM::Activator).name())
|
|
|
|
|
{
|
|
|
|
|
/* Don't accumulate with activators (they don't get moved). */
|
|
|
|
|
mAnimation->setAccumulation(Ogre::Vector3::ZERO);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
if(MWWorld::Class::get(mPtr).isActor())
|
|
|
|
|
{
|
|
|
|
|
/* Accumulate along X/Y only for now, until we can figure out how we should
|
|
|
|
|
* handle knockout and death which moves the character down. */
|
|
|
|
|
mAnimation->setAccumulation(Ogre::Vector3(1.0f, 1.0f, 0.0f));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
/* Don't accumulate with non-actors. */
|
|
|
|
|
mAnimation->setAccumulation(Ogre::Vector3(0.0f));
|
|
|
|
|
}
|
|
|
|
|
if(mAnimation->hasAnimation(mCurrentGroup))
|
|
|
|
|
mAnimation->play(mCurrentGroup, "stop", "stop", loop);
|
|
|
|
|
}
|
|
|
|
|