mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-22 03:53:52 +00:00
Only set mSkelBase from the first objectlist
This commit is contained in:
parent
7eac37be23
commit
86fda1bff6
1 changed files with 10 additions and 2 deletions
|
@ -106,7 +106,7 @@ void Animation::addObjectList(Ogre::SceneNode *node, const std::string &model, b
|
||||||
NifOgre::ObjectList &objlist = obj.mObjectList;
|
NifOgre::ObjectList &objlist = obj.mObjectList;
|
||||||
if(objlist.mSkelBase)
|
if(objlist.mSkelBase)
|
||||||
{
|
{
|
||||||
if(!mSkelBase)
|
if(mObjects.size() == 1)
|
||||||
mSkelBase = objlist.mSkelBase;
|
mSkelBase = objlist.mSkelBase;
|
||||||
|
|
||||||
Ogre::AnimationStateSet *aset = objlist.mSkelBase->getAllAnimationStates();
|
Ogre::AnimationStateSet *aset = objlist.mSkelBase->getAllAnimationStates();
|
||||||
|
@ -125,7 +125,9 @@ void Animation::addObjectList(Ogre::SceneNode *node, const std::string &model, b
|
||||||
Ogre::Skeleton::BoneIterator boneiter = skelinst->getBoneIterator();
|
Ogre::Skeleton::BoneIterator boneiter = skelinst->getBoneIterator();
|
||||||
while(boneiter.hasMoreElements())
|
while(boneiter.hasMoreElements())
|
||||||
boneiter.getNext()->setManuallyControlled(true);
|
boneiter.getNext()->setManuallyControlled(true);
|
||||||
|
}
|
||||||
|
if(objlist.mSkelBase && mSkelBase)
|
||||||
|
{
|
||||||
Ogre::SkeletonInstance *baseinst = mSkelBase->getSkeleton();
|
Ogre::SkeletonInstance *baseinst = mSkelBase->getSkeleton();
|
||||||
if(mSkelBase == objlist.mSkelBase)
|
if(mSkelBase == objlist.mSkelBase)
|
||||||
{
|
{
|
||||||
|
@ -286,6 +288,9 @@ NifOgre::TextKeyMap::const_iterator Animation::findGroupStart(const NifOgre::Tex
|
||||||
|
|
||||||
bool Animation::hasAnimation(const std::string &anim)
|
bool Animation::hasAnimation(const std::string &anim)
|
||||||
{
|
{
|
||||||
|
if(!mSkelBase)
|
||||||
|
return false;
|
||||||
|
|
||||||
for(std::vector<ObjectInfo>::const_iterator iter(mObjects.begin());iter != mObjects.end();iter++)
|
for(std::vector<ObjectInfo>::const_iterator iter(mObjects.begin());iter != mObjects.end();iter++)
|
||||||
{
|
{
|
||||||
if(iter->mObjectList.mTextKeys.size() == 0)
|
if(iter->mObjectList.mTextKeys.size() == 0)
|
||||||
|
@ -521,6 +526,9 @@ bool Animation::play(const std::string &groupname, const std::string &start, con
|
||||||
// TODO: parameterize this
|
// TODO: parameterize this
|
||||||
size_t layeridx = 0;
|
size_t layeridx = 0;
|
||||||
|
|
||||||
|
if(!mSkelBase)
|
||||||
|
return false;
|
||||||
|
|
||||||
for(std::vector<ObjectInfo>::iterator iter(mObjects.begin());iter != mObjects.end();iter++)
|
for(std::vector<ObjectInfo>::iterator iter(mObjects.begin());iter != mObjects.end();iter++)
|
||||||
iter->mActiveLayers &= ~(1<<layeridx);
|
iter->mActiveLayers &= ~(1<<layeridx);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue