diff options
| author | Ovah <dreadkiller@gmx.de> | 2020-06-01 15:58:31 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-01-06 19:46:41 +0100 |
| commit | 294657f7dd4d2db1ca6dcf66f0b0895c6ba92949 (patch) | |
| tree | 398d4fa0bbbd1c62bcc02df6fa3366b09186eadf /src/server/game/Entities | |
| parent | 5af8373cce498c14c7ee42066efde30c41a3e934 (diff) | |
Core/Units: flight and hover checks will now consider movement template data as well as manually set flight states
- manually set flight states via auras and scripts will no longer be ignored
- restored movement template consideration when generating pathings
- renamed IsLevitating to IsGravityDisabled to reflect the referenced movement flag's name
(cherry picked from commit 43ef610fe059c3da4cc1ad2036f83cfa67ce0fee)
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.h | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index d6a28371954..7e1d4ac0b8d 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -112,8 +112,8 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma CreatureMovementData const& GetMovementTemplate() const; bool CanWalk() const { return GetMovementTemplate().IsGroundAllowed(); } bool CanSwim() const override { return GetMovementTemplate().IsSwimAllowed() || IsPet(); } - bool CanFly() const override { return GetMovementTemplate().IsFlightAllowed(); } - bool CanHover() const { return GetMovementTemplate().Ground == CreatureGroundMovementType::Hover; } + bool CanFly() const override { return GetMovementTemplate().IsFlightAllowed() || IsFlying(); } + bool CanHover() const { return GetMovementTemplate().Ground == CreatureGroundMovementType::Hover || IsHovering(); } MovementGeneratorType GetDefaultMovementType() const override { return m_defaultMovementType; } void SetDefaultMovementType(MovementGeneratorType mgt) { m_defaultMovementType = mgt; } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 7a88dd39fcb..ce14d9385da 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12410,7 +12410,7 @@ bool Unit::SetWalk(bool enable) bool Unit::SetDisableGravity(bool disable) { - if (disable == IsLevitating()) + if (disable == IsGravityDisabled()) return false; if (disable) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 63334d331f5..a3446114b44 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1202,7 +1202,7 @@ class TC_GAME_API Unit : public WorldObject void SetPlayHoverAnim(bool enable); void SetHoverHeight(float hoverHeight) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::HoverHeight), hoverHeight); } - bool IsLevitating() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY); } + bool IsGravityDisabled() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY); } bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_WALKING); } bool IsHovering() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_HOVER); } bool SetWalk(bool enable); |
