diff --git a/apps/openmw/mwrender/animation.cpp b/apps/openmw/mwrender/animation.cpp index 36feeb7be..4f4a49f49 100644 --- a/apps/openmw/mwrender/animation.cpp +++ b/apps/openmw/mwrender/animation.cpp @@ -1457,6 +1457,9 @@ namespace MWRender PartHolder::~PartHolder() { + if (mNode.get() && !mNode->getNumParents()) + std::cerr << "Warning: part has no parents " << std::endl; + if (mNode.get() && mNode->getNumParents()) { if (mNode->getNumParents() > 1) diff --git a/apps/openmw/mwrender/npcanimation.cpp b/apps/openmw/mwrender/npcanimation.cpp index eee23aa31..99106c920 100644 --- a/apps/openmw/mwrender/npcanimation.cpp +++ b/apps/openmw/mwrender/npcanimation.cpp @@ -422,6 +422,8 @@ int NpcAnimation::getSlot(const osg::NodePath &path) const void NpcAnimation::updateNpcBase() { clearAnimSources(); + for(size_t i = 0;i < ESM::PRT_Count;i++) + removeIndividualPart((ESM::PartReferenceType)i); const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore(); const ESM::Race *race = store.get().find(mNpc->mRace); @@ -501,8 +503,6 @@ void NpcAnimation::updateNpcBase() } } - for(size_t i = 0;i < ESM::PRT_Count;i++) - removeIndividualPart((ESM::PartReferenceType)i); updateParts(); mWeaponAnimationTime->updateStartTime();