An actor needs not be in active cell. As such we can't use

PhysicsSystem::getActor() to determine that a ptr is not actor.
pull/593/head
fredzio 4 years ago
parent 50db75bd13
commit 36bb2d5f15

@ -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());
}

Loading…
Cancel
Save