From af2f26d04d124395903265c6a1dfb2a14fd4b89f Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 29 May 2015 20:45:27 +0200 Subject: [PATCH] Particle fixes --- apps/openmw/mwmechanics/character.cpp | 8 ++------ apps/openmw/mwrender/animation.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 7588a3287b..9feb831c98 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -1172,14 +1172,10 @@ bool CharacterController::updateWeaponState() effect = store.get().find(effectentry.mEffectID); const ESM::Static* castStatic = MWBase::Environment::get().getWorld()->getStore().get().find ("VFX_Hands"); - if (mAnimation->hasNode("Left Hand")) - mAnimation->addEffect("meshes\\" + castStatic->mModel, -1, false, "Left Hand", effect->mParticle); - else + if (mAnimation->hasNode("Bip01 L Hand")) mAnimation->addEffect("meshes\\" + castStatic->mModel, -1, false, "Bip01 L Hand", effect->mParticle); - if (mAnimation->hasNode("Right Hand")) - mAnimation->addEffect("meshes\\" + castStatic->mModel, -1, false, "Right Hand", effect->mParticle); - else + if (mAnimation->hasNode("Bip01 R Hand")) mAnimation->addEffect("meshes\\" + castStatic->mModel, -1, false, "Bip01 R Hand", effect->mParticle); switch(effectentry.mRange) diff --git a/apps/openmw/mwrender/animation.cpp b/apps/openmw/mwrender/animation.cpp index 91f4f766eb..327f59df8f 100644 --- a/apps/openmw/mwrender/animation.cpp +++ b/apps/openmw/mwrender/animation.cpp @@ -1042,11 +1042,11 @@ namespace MWRender parentNode = mObjectRoot->asGroup(); else { - SceneUtil::FindByNameVisitor visitor(bonename); - mObjectRoot->accept(visitor); - if (!visitor.mFoundNode) + NodeMap::iterator found = mNodeMap.find(Misc::StringUtils::lowerCase(bonename)); + if (found == mNodeMap.end()) throw std::runtime_error("Can't find bone " + bonename); - parentNode = visitor.mFoundNode; + + parentNode = found->second; } osg::ref_ptr node = mResourceSystem->getSceneManager()->createInstance(model, parentNode); params.mObjects = PartHolderPtr(new PartHolder(node));