From 36bb2d5f1556b2a367671e6bdb45b0b25c1dcca3 Mon Sep 17 00:00:00 2001 From: fredzio Date: Sun, 18 Apr 2021 08:45:43 +0200 Subject: [PATCH] An actor needs not be in active cell. As such we can't use PhysicsSystem::getActor() to determine that a ptr is not actor. --- apps/openmw/mwworld/worldimp.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 497fd653a8..b991c1a035 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1258,10 +1258,9 @@ namespace MWWorld auto* actor = mPhysics->getActor(ptr); osg::Vec3f newpos = ptr.getRefData().getPosition().asVec3() + vec; if (actor) - { actor->adjustPosition(vec); + if (ptr.getClass().isActor()) return moveObject(ptr, newpos.x(), newpos.y(), newpos.z(), false, moveToActive && ptr != getPlayerPtr()); - } return moveObject(ptr, newpos.x(), newpos.y(), newpos.z()); }