1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-01 02:15:32 +00:00

Start trace from collision object origin

This commit is contained in:
Assumeru 2016-11-10 15:38:14 +01:00
parent 99bc4f733f
commit 05cc258ed3

View file

@ -1328,10 +1328,12 @@ namespace MWPhysics
waterCollision = true; waterCollision = true;
else if (physicActor->getCollisionMode()) else if (physicActor->getCollisionMode())
{ {
const float halfZ = physicActor->getHalfExtents().z();
const osg::Vec3f actorPosition = physicActor->getPosition(); const osg::Vec3f actorPosition = physicActor->getPosition();
const osg::Vec3f destinationPosition(actorPosition.x(), actorPosition.y(), waterlevel + physicActor->getHalfExtents().z()); const osg::Vec3f startingPosition(actorPosition.x(), actorPosition.y(), actorPosition.z() + halfZ);
const osg::Vec3f destinationPosition(actorPosition.x(), actorPosition.y(), waterlevel + halfZ);
ActorTracer tracer; ActorTracer tracer;
tracer.doTrace(physicActor->getCollisionObject(), actorPosition, destinationPosition, mCollisionWorld); tracer.doTrace(physicActor->getCollisionObject(), startingPosition, destinationPosition, mCollisionWorld);
if (tracer.mFraction >= 1.0f) if (tracer.mFraction >= 1.0f)
{ {
waterCollision = true; waterCollision = true;