mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-25 03:40:40 +00:00
Avoid creating an AnimationValue per ObjectList
This commit is contained in:
parent
ace7d647e5
commit
835ff8eb1e
@ -32,7 +32,8 @@ void Animation::destroyObjectList(Ogre::SceneManager *sceneMgr, NifOgre::ObjectL
|
||||
}
|
||||
|
||||
Animation::Animation(const MWWorld::Ptr &ptr)
|
||||
: mPtr(ptr)
|
||||
: mAnimationBaseValuePtr(OGRE_NEW AnimationValue(this))
|
||||
, mPtr(ptr)
|
||||
, mController(NULL)
|
||||
, mInsert(NULL)
|
||||
, mSkelBase(NULL)
|
||||
@ -70,7 +71,6 @@ void Animation::addObjectList(Ogre::SceneNode *node, const std::string &model, b
|
||||
mInsert = node->createChildSceneNode();
|
||||
assert(mInsert);
|
||||
}
|
||||
Ogre::SharedPtr<Ogre::ControllerValue<Ogre::Real> > ctrlval(OGRE_NEW AnimationValue(this));
|
||||
|
||||
mObjectLists.push_back(!baseonly ? NifOgre::Loader::createObjects(mInsert, model) :
|
||||
NifOgre::Loader::createObjectBase(mInsert, model));
|
||||
@ -145,7 +145,7 @@ void Animation::addObjectList(Ogre::SceneNode *node, const std::string &model, b
|
||||
for(size_t i = 0;i < objlist.mControllers.size();i++)
|
||||
{
|
||||
if(objlist.mControllers[i].getSource().isNull())
|
||||
objlist.mControllers[i].setSource(ctrlval);
|
||||
objlist.mControllers[i].setSource(mAnimationBaseValuePtr);
|
||||
}
|
||||
|
||||
if(!mCurrentControllers || (*mCurrentControllers).size() == 0)
|
||||
|
@ -38,6 +38,7 @@ protected:
|
||||
mAnimation->mCurrentTime = value;
|
||||
}
|
||||
};
|
||||
Ogre::SharedPtr<Ogre::ControllerValue<Ogre::Real> > mAnimationBaseValuePtr;
|
||||
|
||||
MWWorld::Ptr mPtr;
|
||||
MWMechanics::CharacterController *mController;
|
||||
|
Loading…
x
Reference in New Issue
Block a user