From 261fbb29e807f856cd51ed87f274f4d30fab3cae Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Fri, 30 Mar 2018 00:29:13 +0200 Subject: [PATCH] Core/Creatures: fixed a issue where creatures that are walking on puddles are considered swimming so their gravity got enabled. --- src/server/game/Entities/Unit/Unit.cpp | 3 ++- src/server/game/Maps/Map.cpp | 10 +--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index b503dff8886..490e64d89d8 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14152,7 +14152,8 @@ bool Unit::SetSwim(bool enable) if (enable) { AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING); - SetDisableGravity(true); + if (IsUnderWater()) + SetDisableGravity(true); } else { diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 72d879b6c1f..3b310a7b5c9 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2338,15 +2338,7 @@ float Map::GetWaterOrGroundLevel(PhaseShift const& phaseShift, float x, float y, LiquidData liquid_status; ZLiquidStatus res = GetLiquidStatus(phaseShift, x, y, ground_z, MAP_ALL_LIQUIDS, &liquid_status); - switch (res) - { - case LIQUID_MAP_ABOVE_WATER: - return std::max(liquid_status.level, ground_z); - case LIQUID_MAP_NO_WATER: - return ground_z; - default: - return liquid_status.level; - } + return res ? liquid_status.level : ground_z; } return VMAP_INVALID_HEIGHT_VALUE;