aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-08-30 21:09:46 +0200
committerShauren <shauren.trinity@gmail.com>2014-08-30 21:09:46 +0200
commit02e9405e8eb5ecc1a10cafc32407f4de4ce73b2e (patch)
tree147577c1cbb1e961d77a913e9f264fbe15a44525 /src/server/game/Entities/Unit
parent56e0459b07a1e09b541dd77ce7d357f0905e302e (diff)
Core/Units: Implemented animkit support
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp49
-rw-r--r--src/server/game/Entities/Unit/Unit.h12
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