diff --git a/apps/openmw/mwphysics/actor.cpp b/apps/openmw/mwphysics/actor.cpp index e1efe6d242..dec055d68f 100644 --- a/apps/openmw/mwphysics/actor.cpp +++ b/apps/openmw/mwphysics/actor.cpp @@ -102,11 +102,7 @@ namespace MWPhysics updateScaleUnsafe(); if (!mRotationallyInvariant) - { - const SceneUtil::PositionAttitudeTransform* baseNode = mPtr.getRefData().getBaseNode(); - if (baseNode) - mRotation = baseNode->getAttitude(); - } + mRotation = mPtr.getRefData().getBaseNode()->getAttitude(); addCollisionMask(getCollisionMask()); updateCollisionObjectPositionUnsafe(); diff --git a/apps/openmw/mwphysics/object.cpp b/apps/openmw/mwphysics/object.cpp index 9c97ac7c32..53529ec729 100644 --- a/apps/openmw/mwphysics/object.cpp +++ b/apps/openmw/mwphysics/object.cpp @@ -110,9 +110,6 @@ namespace MWPhysics if (mShapeInstance->mAnimatedShapes.empty()) return false; - if (!mPtr.getRefData().getBaseNode()) - return false; - assert(mShapeInstance->mCollisionShape->isCompound()); btCompoundShape* compound = static_cast(mShapeInstance->mCollisionShape.get()); diff --git a/apps/openmw/mwworld/scene.cpp b/apps/openmw/mwworld/scene.cpp index 72b2dc3022..d8875b513e 100644 --- a/apps/openmw/mwworld/scene.cpp +++ b/apps/openmw/mwworld/scene.cpp @@ -115,7 +115,9 @@ namespace 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( + new SceneUtil::PositionAttitudeTransform); // FIXME remove this when physics code is fixed not to depend + // on basenode setNodeRotation(ptr, rendering, rotation); if (ptr.getClass().useAnim())