From 99bc4f733fac5cda55c1832e17e12627f9a88cea Mon Sep 17 00:00:00 2001 From: Assumeru Date: Wed, 9 Nov 2016 18:03:10 +0100 Subject: [PATCH] Trace up to waterlevel + halfextent --- apps/openmw/mwphysics/physicssystem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwphysics/physicssystem.cpp b/apps/openmw/mwphysics/physicssystem.cpp index cd4484aa1..d854e0aca 100644 --- a/apps/openmw/mwphysics/physicssystem.cpp +++ b/apps/openmw/mwphysics/physicssystem.cpp @@ -1329,13 +1329,13 @@ namespace MWPhysics else if (physicActor->getCollisionMode()) { const osg::Vec3f actorPosition = physicActor->getPosition(); - const osg::Vec3f destinationPosition(actorPosition.x(), actorPosition.y(), waterlevel); + const osg::Vec3f destinationPosition(actorPosition.x(), actorPosition.y(), waterlevel + physicActor->getHalfExtents().z()); ActorTracer tracer; tracer.doTrace(physicActor->getCollisionObject(), actorPosition, destinationPosition, mCollisionWorld); if (tracer.mFraction >= 1.0f) { waterCollision = true; - physicActor->setPosition(destinationPosition); + physicActor->setPosition(osg::Vec3f(actorPosition.x(), actorPosition.y(), waterlevel)); } else {