diff options
| author | Shauren <shauren.trinity@gmail.com> | 2014-08-30 21:09:46 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2014-08-30 21:09:46 +0200 |
| commit | 02e9405e8eb5ecc1a10cafc32407f4de4ce73b2e (patch) | |
| tree | 147577c1cbb1e961d77a913e9f264fbe15a44525 /src/server/game/Entities/Unit | |
| parent | 56e0459b07a1e09b541dd77ce7d357f0905e302e (diff) | |
Core/Units: Implemented animkit support
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 49 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 12 |
2 files changed, 57 insertions, 4 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 4b8522b7b08..f6615d67c99 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -253,6 +253,10 @@ Unit::Unit(bool isWorldObject) : _oldFactionId = 0; _isWalkingBeforeCharm = false; + + _aiAnimKitId = 0; + _movementAnimKitId = 0; + _meleeAnimKitId = 0; } //////////////////////////////////////////////////////////// @@ -13589,11 +13593,50 @@ void Unit::SendDurabilityLoss(Player* receiver, uint32 percent) receiver->GetSession()->SendPacket(&data); } -void Unit::PlayOneShotAnimKit(uint32 id) +void Unit::SetAIAnimKitId(uint16 animKitId) +{ + if (_aiAnimKitId == animKitId) + return; + + _aiAnimKitId = animKitId; + + WorldPacket data(SMSG_SET_AI_ANIM_KIT, 8 + 2); + data.append(GetPackGUID()); + data << uint16(animKitId); + SendMessageToSet(&data, true); +} + +void Unit::SetMovementAnimKitId(uint16 animKitId) +{ + if (_movementAnimKitId == animKitId) + return; + + _movementAnimKitId = animKitId; + + WorldPacket data(SMSG_SET_MOVEMENT_ANIM_KIT, 8 + 2); + data.append(GetPackGUID()); + data << uint16(animKitId); + SendMessageToSet(&data, true); +} + +void Unit::SetMeleeAnimKitId(uint16 animKitId) +{ + if (_meleeAnimKitId == animKitId) + return; + + _meleeAnimKitId = animKitId; + + WorldPacket data(SMSG_SET_MELEE_ANIM_KIT, 8 + 2); + data.append(GetPackGUID()); + data << uint16(animKitId); + SendMessageToSet(&data, true); +} + +void Unit::PlayOneShotAnimKit(uint16 animKitId) { WorldPacket data(SMSG_PLAY_ONE_SHOT_ANIM_KIT, 7+2); - data.appendPackGUID(GetGUID()); - data << uint16(id); + data.append(GetPackGUID()); + data << uint16(animKitId); SendMessageToSet(&data, true); } diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index b9d3a287456..acf9875ad55 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1464,7 +1464,13 @@ class Unit : public WorldObject MountCapabilityEntry const* GetMountCapability(uint32 mountType) const; void SendDurabilityLoss(Player* receiver, uint32 percent); - void PlayOneShotAnimKit(uint32 id); + uint16 GetAIAnimKitId() const { return _aiAnimKitId; } + void SetAIAnimKitId(uint16 animKitId); + uint16 GetMovementAnimKitId() const { return _movementAnimKitId; } + void SetMovementAnimKitId(uint16 animKitId); + uint16 GetMeleeAnimKitId() const { return _meleeAnimKitId; } + void SetMeleeAnimKitId(uint16 animKitId); + void PlayOneShotAnimKit(uint16 animKitId); uint16 GetMaxSkillValueForLevel(Unit const* target = NULL) const { return (target ? getLevelForTarget(target) : getLevel()) * 5; } void DealDamageMods(Unit* victim, uint32 &damage, uint32* absorb); @@ -2290,6 +2296,10 @@ class Unit : public WorldObject bool _isWalkingBeforeCharm; ///< Are we walking before we were charmed? time_t _lastDamagedTime; // Part of Evade mechanics + + uint16 _aiAnimKitId; + uint16 _movementAnimKitId; + uint16 _meleeAnimKitId; }; namespace Trinity |
