From e77db9f2ba87a77538e04194614b6e1f96068acb Mon Sep 17 00:00:00 2001 From: Sebastian Fieber Date: Tue, 31 Dec 2024 18:50:02 +0000 Subject: [PATCH] make ActorAnimation::getBoneByName take a searchRoot param --- apps/openmw/mwrender/actoranimation.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwrender/actoranimation.cpp b/apps/openmw/mwrender/actoranimation.cpp index 9d68bf9bbd..f4bafdb48b 100644 --- a/apps/openmw/mwrender/actoranimation.cpp +++ b/apps/openmw/mwrender/actoranimation.cpp @@ -365,10 +365,17 @@ namespace MWRender } mScabbard = attachMesh(scabbardName, boneName); - if (mScabbard && weaponClass == ESM::WeaponType::Ranged) + + if (!mScabbard || !mScabbard->getNode()) + return; + + if (weaponClass == ESM::WeaponType::Ranged) resetControllers(mScabbard->getNode()); - osg::Group* weaponNode = getBoneByName("Bip01 Weapon"); + SceneUtil::FindByNameVisitor findVisitor("Bip01 Weapon"); + mScabbard->getNode()->accept(findVisitor); + osg::Group* weaponNode = findVisitor.mFoundNode; + if (!weaponNode) return;