mirror of
https://github.com/OpenMW/openmw.git
synced 2025-06-19 17:41:33 +00:00
Trace up to waterlevel + halfextent
This commit is contained in:
parent
25d64989b3
commit
99bc4f733f
1 changed files with 2 additions and 2 deletions
|
@ -1329,13 +1329,13 @@ namespace MWPhysics
|
||||||
else if (physicActor->getCollisionMode())
|
else if (physicActor->getCollisionMode())
|
||||||
{
|
{
|
||||||
const osg::Vec3f actorPosition = physicActor->getPosition();
|
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;
|
ActorTracer tracer;
|
||||||
tracer.doTrace(physicActor->getCollisionObject(), actorPosition, destinationPosition, mCollisionWorld);
|
tracer.doTrace(physicActor->getCollisionObject(), actorPosition, destinationPosition, mCollisionWorld);
|
||||||
if (tracer.mFraction >= 1.0f)
|
if (tracer.mFraction >= 1.0f)
|
||||||
{
|
{
|
||||||
waterCollision = true;
|
waterCollision = true;
|
||||||
physicActor->setPosition(destinationPosition);
|
physicActor->setPosition(osg::Vec3f(actorPosition.x(), actorPosition.y(), waterlevel));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue