diff --git a/CHANGELOG.md b/CHANGELOG.md index c22ac65daf..15049ef137 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -202,6 +202,7 @@ Bug #8206: Moving away from storm wind origin should make you faster Bug #8207: Using hand-to-hand while sneaking plays the critical hit sound when the target is not getting hurt Bug #8208: The launcher's view distance option's minimum value isn't capped to Vanilla's minimum + Bug #8231: AGOP doesn't like NiCollisionSwitch Feature #1415: Infinite fall failsafe Feature #2566: Handle NAM9 records for manual cell references Feature #3501: OpenMW-CS: Instance Editing - Shortcuts for axial locking diff --git a/apps/openmw/mwrender/objectpaging.cpp b/apps/openmw/mwrender/objectpaging.cpp index 8040790bd7..134995e559 100644 --- a/apps/openmw/mwrender/objectpaging.cpp +++ b/apps/openmw/mwrender/objectpaging.cpp @@ -133,11 +133,18 @@ namespace MWRender { public: bool mOptimizeBillboards = true; + bool mActiveGrid = false; LODRange mDistances = { 0.f, 0.f }; osg::Vec3f mViewVector; osg::Node::NodeMask mCopyMask = ~0u; mutable std::vector mNodePath; + CopyOp(bool activeGrid, osg::Node::NodeMask copyMask) + : mActiveGrid(activeGrid) + , mCopyMask(copyMask) + { + } + void copy(const osg::Node* toCopy, osg::Group* attachTo) { const osg::Group* groupToCopy = toCopy->asGroup(); @@ -203,7 +210,8 @@ namespace MWRender mNodePath.push_back(node); osg::Node* cloned = static_cast(node->clone(*this)); - cloned->setDataVariance(osg::Object::STATIC); + if (!mActiveGrid) + cloned->setDataVariance(osg::Object::STATIC); cloned->setUserDataContainer(nullptr); cloned->setName(""); @@ -720,8 +728,7 @@ namespace MWRender osg::ref_ptr mergeGroup = new osg::Group; osg::ref_ptr templateRefs = new Resource::TemplateMultiRef; osgUtil::StateToCompile stateToCompile(0, nullptr); - CopyOp copyop; - copyop.mCopyMask = copyMask; + CopyOp copyop(activeGrid, copyMask); for (const auto& pair : nodes) { const osg::Node* cnode = pair.first;