From 9e3b427a985aff66f18a5fa05be610cd154b4e5c Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Mon, 8 Jan 2024 22:56:58 +0300 Subject: [PATCH] Unbreak un-paging (#7768) --- apps/openmw/mwworld/scene.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwworld/scene.cpp b/apps/openmw/mwworld/scene.cpp index 72b2dc3022..80f52f2375 100644 --- a/apps/openmw/mwworld/scene.cpp +++ b/apps/openmw/mwworld/scene.cpp @@ -111,11 +111,16 @@ namespace std::string model = getModel(ptr); const auto rotation = makeDirectNodeRotation(ptr); + // Null node meant to distinguish objects that aren't in the scene from paged objects + // TODO: find a more clever way to make paging exclusion more reliable? + static const osg::ref_ptr pagedNode( + new SceneUtil::PositionAttitudeTransform); + ESM::RefNum refnum = ptr.getCellRef().getRefNum(); if (!refnum.hasContentFile() || !std::binary_search(pagedRefs.begin(), pagedRefs.end(), refnum)) ptr.getClass().insertObjectRendering(ptr, model, rendering); else - ptr.getRefData().setBaseNode(nullptr); + ptr.getRefData().setBaseNode(pagedNode); setNodeRotation(ptr, rendering, rotation); if (ptr.getClass().useAnim())