diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-12-22 17:55:53 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-12-22 17:55:53 +0100 |
commit | a24e3a9511d8b60baf51a4e81aa3e4731746ffe4 (patch) | |
tree | 9f342f6351ec93bae9d510ac182ac451b48feb7c | |
parent | b6a35c79200e0a9bccc10fd3d5ec9bf1d5af6ebe (diff) |
Core/Maps: Fixed pathgenerator always returning NAV_GROUND from GetNavTerrain
-rw-r--r-- | src/server/game/Movement/PathGenerator.cpp | 21 | ||||
-rw-r--r-- | src/server/game/Movement/PathGenerator.h | 2 |
2 files changed, 9 insertions, 14 deletions
diff --git a/src/server/game/Movement/PathGenerator.cpp b/src/server/game/Movement/PathGenerator.cpp index aae9b7ea1c7..a5967cf5867 100644 --- a/src/server/game/Movement/PathGenerator.cpp +++ b/src/server/game/Movement/PathGenerator.cpp @@ -697,25 +697,20 @@ void PathGenerator::UpdateFilter() } } -NavTerrainFlag PathGenerator::GetNavTerrain(float x, float y, float z) +NavTerrainFlag PathGenerator::GetNavTerrain(float x, float y, float z) const { LiquidData data; ZLiquidStatus liquidStatus = _source->GetMap()->GetLiquidStatus(_source->GetPhaseShift(), x, y, z, map_liquidHeaderTypeFlags::AllLiquids, &data, _source->GetCollisionHeight()); if (liquidStatus == LIQUID_MAP_NO_WATER) return NAV_GROUND; - data.type_flags &= map_liquidHeaderTypeFlags::DarkWater; - switch (data.type_flags) - { - case map_liquidHeaderTypeFlags::Water: - case map_liquidHeaderTypeFlags::Ocean: - return NAV_WATER; - case map_liquidHeaderTypeFlags::Magma: - case map_liquidHeaderTypeFlags::Slime: - return NAV_MAGMA_SLIME; - default: - return NAV_GROUND; - } + if (data.type_flags.HasFlag(map_liquidHeaderTypeFlags::Water | map_liquidHeaderTypeFlags::Ocean)) + return NAV_WATER; + + if (data.type_flags.HasFlag(map_liquidHeaderTypeFlags::Magma | map_liquidHeaderTypeFlags::Slime)) + return NAV_MAGMA_SLIME; + + return NAV_GROUND; } bool PathGenerator::HaveTile(const G3D::Vector3& p) const diff --git a/src/server/game/Movement/PathGenerator.h b/src/server/game/Movement/PathGenerator.h index b06573e7253..3d86cd066b8 100644 --- a/src/server/game/Movement/PathGenerator.h +++ b/src/server/game/Movement/PathGenerator.h @@ -132,7 +132,7 @@ class TC_GAME_API PathGenerator void BuildPointPath(float const* startPoint, float const* endPoint); void BuildShortcut(); - NavTerrainFlag GetNavTerrain(float x, float y, float z); + NavTerrainFlag GetNavTerrain(float x, float y, float z) const; void CreateFilter(); void UpdateFilter(); |