aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-12-22 17:55:53 +0100
committerShauren <shauren.trinity@gmail.com>2023-12-22 17:55:53 +0100
commita24e3a9511d8b60baf51a4e81aa3e4731746ffe4 (patch)
tree9f342f6351ec93bae9d510ac182ac451b48feb7c
parentb6a35c79200e0a9bccc10fd3d5ec9bf1d5af6ebe (diff)
Core/Maps: Fixed pathgenerator always returning NAV_GROUND from GetNavTerrain
-rw-r--r--src/server/game/Movement/PathGenerator.cpp21
-rw-r--r--src/server/game/Movement/PathGenerator.h2
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();