diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-10-26 09:56:22 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-10-26 09:56:22 +0100 |
| commit | 7c006ed265d0780401db0768ae2c9be85c5f60ce (patch) | |
| tree | 5eb5e298fc49f92af0870c21bc44e58da9b7bc48 | |
| parent | ea6bb10d12279c1cdf6f368e67d085c6e70f5cfd (diff) | |
Revert "Core/Entities: implement IsInAir"
This reverts commit 4c27329beddb2eba59917c735912de3dcea2665b.
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 1 |
3 files changed, 4 insertions, 7 deletions
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); |
