From f137b7341f5115172ea045d02624bb43edadc330 Mon Sep 17 00:00:00 2001 From: fredzio Date: Fri, 16 Apr 2021 16:09:15 +0200 Subject: [PATCH] Another fallout from MR 722: objects were treated like actors by accident. Net effect was that calls to Move/MoveWorld didn't update position of collision object. --- apps/openmw/mwworld/worldimp.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 5b9afa4fe2..497fd653a8 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1256,11 +1256,13 @@ namespace MWWorld MWWorld::Ptr World::moveObjectBy(const Ptr& ptr, osg::Vec3f vec, bool moveToActive) { auto* actor = mPhysics->getActor(ptr); - if (actor) - actor->adjustPosition(vec); - osg::Vec3f newpos = ptr.getRefData().getPosition().asVec3() + vec; - return moveObject(ptr, newpos.x(), newpos.y(), newpos.z(), false, moveToActive && ptr != getPlayerPtr()); + if (actor) + { + actor->adjustPosition(vec); + return moveObject(ptr, newpos.x(), newpos.y(), newpos.z(), false, moveToActive && ptr != getPlayerPtr()); + } + return moveObject(ptr, newpos.x(), newpos.y(), newpos.z()); } void World::scaleObject (const Ptr& ptr, float scale)