aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-07-01 02:22:03 +0200
committerShauren <shauren.trinity@gmail.com>2015-07-01 02:22:03 +0200
commit585f978c58648b4da5f55e437719ce2ed6354fe0 (patch)
treeec5c3f3ad6693f040b742eafa630716fa65ec1bc /src/server/game/Entities/Unit
parenteb3aeb8fd1b87c6ff00f4c2278522905e5a3dbd6 (diff)
Core: Started work on 6.2.0.20182
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp17
-rw-r--r--src/server/game/Entities/Unit/Unit.h5
2 files changed, 22 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index e6d69115a13..15ae5f9cdba 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -16312,6 +16312,23 @@ void Unit::Whisper(std::string const& text, Language language, Player* target, b
target->SendDirectMessage(packet.Write());
}
+uint32 Unit::GetVirtualItemId(uint32 slot) const
+{
+ if (slot >= MAX_EQUIPMENT_ITEMS)
+ return 0;
+
+ return GetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + slot * 2);
+}
+
+void Unit::SetVirtualItem(uint32 slot, uint32 itemId, uint16 appearanceModId /*= 0*/)
+{
+ if (slot >= MAX_EQUIPMENT_ITEMS)
+ return;
+
+ SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + slot * 2, itemId);
+ SetUInt16Value(UNIT_VIRTUAL_ITEM_SLOT_ID + slot * 2 + 1, 0, appearanceModId);
+}
+
void Unit::Talk(uint32 textId, ChatMsg msgType, float textRange, WorldObject const* target)
{
if (!sBroadcastTextStore.LookupEntry(textId))
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 538bcea9eba..066996a1bd5 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1276,6 +1276,8 @@ enum PlayerTotemType
SUMMON_TYPE_TOTEM_AIR = 83
};
+#define MAX_EQUIPMENT_ITEMS 3
+
// delay time next attack to prevent client attack animation problems
#define ATTACK_DISPLAY_DELAY 200
#define MAX_PLAYER_STEALTH_DETECT_RANGE 30.0f // max distance for detection targets by player
@@ -2202,6 +2204,9 @@ class Unit : public WorldObject
void TextEmote(uint32 textId, WorldObject const* target = nullptr, bool isBossEmote = false);
void Whisper(uint32 textId, Player* target, bool isBossWhisper = false);
+ uint32 GetVirtualItemId(uint32 slot) const;
+ void SetVirtualItem(uint32 slot, uint32 itemId, uint16 appearanceModId = 0);
+
protected:
explicit Unit (bool isWorldObject);