From 85d4043217abc059ab50db63cf1fb28cf11e0eac Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 4 Feb 2024 13:48:05 -0500 Subject: [PATCH] Core/Maps: Fixed pathgenerator always returning NAV_GROUND from GetNavTerrain Port From (https://github.com/TrinityCore/TrinityCore/commit/a24e3a9511d8b60baf51a4e81aa3e4731746ffe4) --- .../Game/Movement/Generators/PathGenerator.cs | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/Source/Game/Movement/Generators/PathGenerator.cs b/Source/Game/Movement/Generators/PathGenerator.cs index 7ad8587cf..80314c7bf 100644 --- a/Source/Game/Movement/Generators/PathGenerator.cs +++ b/Source/Game/Movement/Generators/PathGenerator.cs @@ -893,23 +893,17 @@ namespace Game.Movement NavTerrainFlag GetNavTerrain(float x, float y, float z) { - LiquidData data; - ZLiquidStatus liquidStatus = _source.GetMap().GetLiquidStatus(_source.GetPhaseShift(), x, y, z, LiquidHeaderTypeFlags.AllLiquids, out data, _source.GetCollisionHeight()); + ZLiquidStatus liquidStatus = _source.GetMap().GetLiquidStatus(_source.GetPhaseShift(), x, y, z, LiquidHeaderTypeFlags.AllLiquids, out LiquidData data, _source.GetCollisionHeight()); if (liquidStatus == ZLiquidStatus.NoWater) return NavTerrainFlag.Ground; - data.type_flags &= ~LiquidHeaderTypeFlags.DarkWater; - switch (data.type_flags) - { - case LiquidHeaderTypeFlags.Water: - case LiquidHeaderTypeFlags.Ocean: - return NavTerrainFlag.Water; - case LiquidHeaderTypeFlags.Magma: - case LiquidHeaderTypeFlags.Slime: - return NavTerrainFlag.MagmaSlime; - default: - return NavTerrainFlag.Ground; - } + if (data.type_flags.HasFlag(LiquidHeaderTypeFlags.Water | LiquidHeaderTypeFlags.Ocean)) + return NavTerrainFlag.Water; + + if (data.type_flags.HasFlag(LiquidHeaderTypeFlags.Magma | LiquidHeaderTypeFlags.Slime)) + return NavTerrainFlag.MagmaSlime; + + return NavTerrainFlag.Ground; } bool InRange(Vector3 p1, Vector3 p2, float r, float h)