From 7c006ed265d0780401db0768ae2c9be85c5f60ce Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 26 Oct 2025 09:56:22 +0100 Subject: Revert "Core/Entities: implement IsInAir" This reverts commit 4c27329beddb2eba59917c735912de3dcea2665b. --- src/server/game/Entities/Creature/Creature.cpp | 5 ++++- src/server/game/Entities/Unit/Unit.cpp | 5 ----- src/server/game/Entities/Unit/Unit.h | 1 - 3 files changed, 4 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 0cfa85c237b..c91cdd11b51 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2651,7 +2651,10 @@ void Creature::UpdateMovementFlags() return; // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc) - bool isInAir = IsInAir(*this, GetFloorZ() + GROUND_HEIGHT_TOLERANCE) || IsInAir(*this, GetFloorZ() - GROUND_HEIGHT_TOLERANCE); + float ground = GetFloorZ(); + + bool canHover = CanHover(); + bool isInAir = (G3D::fuzzyGt(GetPositionZ(), ground + (canHover ? GetFloatValue(UNIT_FIELD_HOVERHEIGHT) : 0.0f) + GROUND_HEIGHT_TOLERANCE) || G3D::fuzzyLt(GetPositionZ(), ground - GROUND_HEIGHT_TOLERANCE)); // Can be underground too, prevent the falling if (GetMovementTemplate().IsFlightAllowed() && isInAir && !IsFalling()) { diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 213329d3e96..acf02eabc03 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -3164,11 +3164,6 @@ bool Unit::IsUnderWater() const return GetLiquidStatus() & LIQUID_MAP_UNDER_WATER; } -bool Unit::IsInAir(Position const destination, float destinationFloor, bool honorHover/* = true*/) const -{ - return std::fabs(destination.GetPositionZ() - (honorHover ? GetHoverOffset() : 0.f) - destinationFloor) > 0.1f; -} - void Unit::ProcessPositionDataChanged(PositionFullTerrainStatus const& data) { ZLiquidStatus oldLiquidStatus = GetLiquidStatus(); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index e028ace4720..8f4ed233ab0 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1171,7 +1171,6 @@ class TC_GAME_API Unit : public WorldObject bool IsInWater() const; bool IsUnderWater() const; - bool IsInAir(Position const destination, float destinationFloor, bool honorHover = true) const; bool isInAccessiblePlaceFor(Creature const* c) const; void SendHealSpellLog(HealInfo& healInfo, bool critical = false); -- cgit v1.2.3