diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-07-01 02:22:03 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-07-01 02:22:03 +0200 |
| commit | 585f978c58648b4da5f55e437719ce2ed6354fe0 (patch) | |
| tree | ec5c3f3ad6693f040b742eafa630716fa65ec1bc /src/server/game/Entities/Unit | |
| parent | eb3aeb8fd1b87c6ff00f4c2278522905e5a3dbd6 (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.cpp | 17 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 5 |
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); |
