forked from mirror/openmw-tes3mp
Do not allow to place actors underground via SetPos (bug #3783)
This commit is contained in:
parent
9cee439e37
commit
c908ad2fba
1 changed files with 11 additions and 0 deletions
|
@ -227,6 +227,17 @@ namespace MWScript
|
|||
}
|
||||
else if(axis == "z")
|
||||
{
|
||||
// We should not place actors under ground
|
||||
if (ptr.getClass().isActor())
|
||||
{
|
||||
float terrainHeight = -std::numeric_limits<float>::max();
|
||||
if (ptr.getCell()->isExterior())
|
||||
terrainHeight = MWBase::Environment::get().getWorld()->getTerrainHeightAt(osg::Vec3f(ax, ay, az));
|
||||
|
||||
if (pos < terrainHeight)
|
||||
pos = terrainHeight;
|
||||
}
|
||||
|
||||
updated = MWBase::Environment::get().getWorld()->moveObject(ptr,ax,ay,pos);
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue