Core/Maps: Corrected GetWaterOrGroundLevel

Port From (https://github.com/TrinityCore/TrinityCore/commit/2f27e41c3d9b20e59b1ee5c4de38a0c937e5a126)
This commit is contained in:
hondacrx
2020-07-23 18:27:14 -04:00
parent 941bf02e31
commit f2e69a7757
+10 -2
View File
@@ -1754,7 +1754,15 @@ namespace Game.Maps
LiquidData liquid_status;
ZLiquidStatus res = GetLiquidStatus(phaseShift, x, y, ground_z, MapConst.MapAllLiquidTypes, out liquid_status);
return res != ZLiquidStatus.NoWater ? liquid_status.level : ground_z;
switch (res)
{
case ZLiquidStatus.AboveWater:
return Math.Max(liquid_status.level, ground_z);
case ZLiquidStatus.NoWater:
return ground_z;
default:
return liquid_status.level;
}
}
return MapConst.VMAPInvalidHeightValue;
@@ -2218,7 +2226,7 @@ namespace Game.Maps
public float GetHeight(PhaseShift phaseShift, float x, float y, float z, bool vmap = true, float maxSearchDist = MapConst.DefaultHeightSearch)
{
return Math.Max(GetStaticHeight(phaseShift, x, y, z, vmap, maxSearchDist), _dynamicTree.GetHeight(x, y, z, maxSearchDist, phaseShift));
return Math.Max(GetStaticHeight(phaseShift, x, y, z, vmap, maxSearchDist), GetGameObjectFloor(phaseShift, x, y, z, maxSearchDist));
}
public bool IsInWater(PhaseShift phaseShift, float x, float y, float pZ)