mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-20 07:53:51 +00:00
Merge pull request #2728 from akortunov/swimfix
Trace down dead persistent actors underwater
This commit is contained in:
commit
8d02b619fd
1 changed files with 3 additions and 1 deletions
|
@ -1424,7 +1424,9 @@ namespace MWWorld
|
||||||
|
|
||||||
pos.z() += 20; // place slightly above. will snap down to ground with code below
|
pos.z() += 20; // place slightly above. will snap down to ground with code below
|
||||||
|
|
||||||
if (force || !ptr.getClass().isActor() || (!isFlying(ptr) && !isSwimming(ptr) && isActorCollisionEnabled(ptr)))
|
// We still should trace down dead persistent actors - they do not use the "swimdeath" animation.
|
||||||
|
bool swims = ptr.getClass().isActor() && isSwimming(ptr) && !(ptr.getClass().isPersistent(ptr) && ptr.getClass().getCreatureStats(ptr).isDeathAnimationFinished());
|
||||||
|
if (force || !ptr.getClass().isActor() || (!isFlying(ptr) && !swims && isActorCollisionEnabled(ptr)))
|
||||||
{
|
{
|
||||||
osg::Vec3f traced = mPhysics->traceDown(ptr, pos, Constants::CellSizeInUnits);
|
osg::Vec3f traced = mPhysics->traceDown(ptr, pos, Constants::CellSizeInUnits);
|
||||||
if (traced.z() < pos.z())
|
if (traced.z() < pos.z())
|
||||||
|
|
Loading…
Reference in a new issue