Core/Maps: Fixed pathgenerator always returning NAV_GROUND from GetNavTerrain

This commit is contained in:
Shauren
2023-12-22 17:55:53 +01:00
parent b6a35c7920
commit a24e3a9511
2 changed files with 9 additions and 14 deletions

View File

@@ -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

View File

@@ -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();