diff options
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 5 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index ecf66509b44..c6c7a1b8eb1 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -162,8 +162,12 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c } if (Unit const* unit = ToUnit()) + { + flags.PlayHoverAnim = unit->IsPlayingHoverAnim(); + if (unit->GetVictim()) flags.CombatVictim = true; + } ByteBuffer buf(0x400, ByteBuffer::Reserve{}); buf << uint8(updateType); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 95f1a2d9de7..837cbc9d15c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -304,7 +304,7 @@ Unit::Unit(bool isWorldObject) : m_charmer(nullptr), m_charmed(nullptr), i_motionMaster(new MotionMaster(this)), m_regenTimer(0), m_vehicle(nullptr), m_vehicleKit(nullptr), m_unitTypeMask(UNIT_MASK_NONE), m_Diminishing(), m_combatManager(this), - m_threatManager(this), m_aiLocked(false), _aiAnimKitId(0), _movementAnimKitId(0), _meleeAnimKitId(0), + m_threatManager(this), m_aiLocked(false), _playHoverAnim(false), _aiAnimKitId(0), _movementAnimKitId(0), _meleeAnimKitId(0), _spellHistory(new SpellHistory(this)) { m_objectType |= TYPEMASK_UNIT; @@ -12849,8 +12849,10 @@ void Unit::UpdateMovementForcesModMagnitude() } } -void Unit::SendSetPlayHoverAnim(bool enable) +void Unit::SetPlayHoverAnim(bool enable) { + _playHoverAnim = enable; + WorldPackets::Misc::SetPlayHoverAnim data; data.UnitGUID = GetGUID(); data.PlayHoverAnim = enable; diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index ce192917292..4bd10311718 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1197,7 +1197,8 @@ class TC_GAME_API Unit : public WorldObject void MonsterMoveWithSpeed(float x, float y, float z, float speed, bool generatePath = false, bool forceDestination = false); - void SendSetPlayHoverAnim(bool enable); + bool IsPlayingHoverAnim() const { return _playHoverAnim; } + 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); } @@ -1992,6 +1993,8 @@ class TC_GAME_API Unit : public WorldObject uint32 _oldFactionId; ///< faction before charm bool _isWalkingBeforeCharm; ///< Are we walking before we were charmed? + bool _playHoverAnim; + uint16 _aiAnimKitId; uint16 _movementAnimKitId; uint16 _meleeAnimKitId; |