diff --git a/apps/openmw/mwrender/objects.cpp b/apps/openmw/mwrender/objects.cpp index 2eb72dfd2a..39e9f56520 100644 --- a/apps/openmw/mwrender/objects.cpp +++ b/apps/openmw/mwrender/objects.cpp @@ -35,12 +35,26 @@ namespace virtual void apply(osg::Node &node) { - if (dynamic_cast(&node) || dynamic_cast(&node)) + if (dynamic_cast(&node)) mToRemove.push_back(&node); traverse(node); } + virtual void apply(osg::Geode& geode) + { + std::vector partsysVector; + for (unsigned int i=0; i(drw)) + partsysVector.push_back(partsys); + } + + for (std::vector::iterator it = partsysVector.begin(); it != partsysVector.end(); ++it) + geode.removeDrawable(*it); + } + void remove() { for (std::vector >::iterator it = mToRemove.begin(); it != mToRemove.end(); ++it)