1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-06-28 01:41:35 +00:00

Connect particle systems to the particle node, not the emitter node

This commit is contained in:
scrawl 2013-12-26 19:49:11 +01:00
parent eab2c89346
commit 9877db413c

View file

@ -885,6 +885,10 @@ class NIFObjectLoader
sceneNode->attachObject(partsys); sceneNode->attachObject(partsys);
int trgtid = NIFSkeletonLoader::lookupOgreBoneHandle(name, partnode->recIndex);
Ogre::Bone *trgtbone = scene->mSkelBase->getSkeleton()->getBone(trgtid);
trgtbone->getUserObjectBindings().setUserAny(Ogre::Any(static_cast<Ogre::MovableObject*>(partsys)));
Nif::ControllerPtr ctrl = partnode->controller; Nif::ControllerPtr ctrl = partnode->controller;
while(!ctrl.empty()) while(!ctrl.empty())
{ {
@ -897,7 +901,6 @@ class NIFObjectLoader
int trgtid = NIFSkeletonLoader::lookupOgreBoneHandle(name, partctrl->emitter->recIndex); int trgtid = NIFSkeletonLoader::lookupOgreBoneHandle(name, partctrl->emitter->recIndex);
Ogre::Bone *trgtbone = scene->mSkelBase->getSkeleton()->getBone(trgtid); Ogre::Bone *trgtbone = scene->mSkelBase->getSkeleton()->getBone(trgtid);
createParticleEmitterAffectors(partsys, partctrl, trgtbone, scene->mSkelBase->getName()); createParticleEmitterAffectors(partsys, partctrl, trgtbone, scene->mSkelBase->getName());
trgtbone->getUserObjectBindings().setUserAny(Ogre::Any(static_cast<Ogre::MovableObject*>(partsys)));
} }
Ogre::ControllerValueRealPtr srcval((partflags&Nif::NiNode::ParticleFlag_AutoPlay) ? Ogre::ControllerValueRealPtr srcval((partflags&Nif::NiNode::ParticleFlag_AutoPlay) ?