From 43ef610fe059c3da4cc1ad2036f83cfa67ce0fee Mon Sep 17 00:00:00 2001 From: Ovah Date: Mon, 1 Jun 2020 15:58:31 +0200 Subject: 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 --- src/server/game/Entities/Creature/Creature.h | 4 ++-- src/server/game/Entities/Unit/Unit.cpp | 2 +- src/server/game/Entities/Unit/Unit.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/server/game/Entities') diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index a33a09b227c..3332189a1e2 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -98,8 +98,8 @@ class TC_GAME_API Creature : public Unit, public GridObject, 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 6f7f13ef7c8..37783c46ac6 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13090,7 +13090,7 @@ bool Unit::SetWalk(bool enable) bool Unit::SetDisableGravity(bool disable, bool /*packetOnly = false*/) { - 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 a90145c139f..ab4d013aafa 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1118,7 +1118,7 @@ class TC_GAME_API Unit : public WorldObject //void SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 type, uint32 MovementFlags, uint32 Time, Player* player = nullptr); void SendMovementFlagUpdate(bool self = false); - 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); } virtual bool SetWalk(bool enable); -- cgit v1.2.3