diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-10-26 09:55:02 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-10-26 09:55:02 +0100 |
| commit | dc8c29cefed6bafbd7a7a008a20829fc3d70aff7 (patch) | |
| tree | 63cd0c55250b6da5862bd4ac087fa1188b6a2800 /src | |
| parent | c3d3fb1eb3abfe0a2d396e446486628059f3e62f (diff) | |
Revert "Core/Entities: move IsInAir tolerances to a default parameter, and reduce it to 0.1"
This reverts commit c3d3fb1eb3abfe0a2d396e446486628059f3e62f.
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index a7d69ecaa74..0824a95f3c2 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2644,7 +2644,7 @@ 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()); + bool isInAir = IsInAir(*this, GetFloorZ() + GROUND_HEIGHT_TOLERANCE) || IsInAir(*this, GetFloorZ() - GROUND_HEIGHT_TOLERANCE); if (GetMovementTemplate().IsFlightAllowed() && isInAir && !IsFalling()) { diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ab168c7dddc..4d118525e77 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -3164,19 +3164,19 @@ bool Unit::IsUnderWater() const return GetLiquidStatus() & LIQUID_MAP_UNDER_WATER; } -bool Unit::IsInAir(Position const destination, float destinationFloor, bool honorHover/* = true*/, float tolerance/* = 0.1f*/) const +bool Unit::IsInAir(Position const destination, float destinationFloor, bool honorHover/* = true*/) const { float z = destination.GetPositionZ(); - if (z < destinationFloor - tolerance) // if really bellow ground, in air (caves,...) + if (z < destinationFloor - 0.5f) // if really bellow ground, in air (caves,...) return true; float hoverHeight = GetHoverOffset(); // height if currently hovering if (GetTypeId() == TYPEID_UNIT) { hoverHeight = ToCreature()->CanHover() ? GetFloatValue(UNIT_FIELD_HOVERHEIGHT) : 0.f; // height if could hover } z = destination.GetPositionZ() - (honorHover ? hoverHeight : 0.f); - if (z <= destinationFloor + tolerance) // if is bellow ground or slightly above it, not in air - should hover too + if (z <= destinationFloor + 0.5f) // if is bellow ground or slightly above it, not in air - should hover too return false; - return std::fabs(z - destinationFloor) > tolerance; // if the difference is higher than tolerance level, in air (todo: this should most likely take into account unit's "size") + return std::fabs(z - destinationFloor) > 0.5f; // if the difference is higher than tolerance level, in air (todo: this should most likely take into account unit's "size") } void Unit::ProcessPositionDataChanged(PositionFullTerrainStatus const& data) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 3dceeeb1f76..e028ace4720 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1171,7 +1171,7 @@ class TC_GAME_API Unit : public WorldObject bool IsInWater() const; bool IsUnderWater() const; - bool IsInAir(Position const destination, float destinationFloor, bool honorHover = true, float tolerance = 0.1f) 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); |
