TrinityCore
Loading...
Searching...
No Matches
ItemTemplate.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef _ITEMPROTOTYPE_H
19#define _ITEMPROTOTYPE_H
20
21#include "Common.h"
22#include "DB2Structure.h"
23#include "Errors.h"
24#include "SharedDefines.h"
25#include <bitset>
26#include <vector>
27
29{
108};
109
124
138
139/* /// @todo: Requiring actual cases in which using (an) item isn't allowed while shapeshifted. Else, this flag would need an implementation.
140 ITEM_FLAG_USE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms */
141
142// ITEM_FIELD_FLAGS
144{
145 ITEM_FIELD_FLAG_SOULBOUND = 0x00000001, // Item is soulbound and cannot be traded <<--
146 ITEM_FIELD_FLAG_TRANSLATED = 0x00000002, // Item text will not read as garbage when player does not know the language
147 ITEM_FIELD_FLAG_UNLOCKED = 0x00000004, // Item had lock but can be opened now
148 ITEM_FIELD_FLAG_WRAPPED = 0x00000008, // Item is wrapped and contains another item
153 ITEM_FIELD_FLAG_BOP_TRADEABLE = 0x00000100, // Allows trading soulbound items
154 ITEM_FIELD_FLAG_READABLE = 0x00000200, // Opens text page when right clicked
157 ITEM_FIELD_FLAG_REFUNDABLE = 0x00001000, // Item can be returned to vendor for its original cost (extended cost)
166 ITEM_FIELD_FLAG_NEW_ITEM = 0x00200000, // Item glows in inventory
167 ITEM_FIELD_FLAG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x00400000, // Won't play azerite powers animation when viewing it
176 ITEM_FIELD_FLAG_UNK26 = 0x80000000
178
180
185
187
189{
191 ITEM_FLAG_CONJURED = 0x00000002, // Conjured item
192 ITEM_FLAG_HAS_LOOT = 0x00000004, // Item can be right clicked to open for loot
193 ITEM_FLAG_HEROIC_TOOLTIP = 0x00000008, // Makes green "Heroic" text appear on item
194 ITEM_FLAG_DEPRECATED = 0x00000010, // Cannot equip or use
195 ITEM_FLAG_NO_USER_DESTROY = 0x00000020, // Item can not be destroyed, except by using spell (item can be reagent for spell)
196 ITEM_FLAG_PLAYERCAST = 0x00000040, // Item's spells are castable by players
197 ITEM_FLAG_NO_EQUIP_COOLDOWN = 0x00000080, // No default 30 seconds cooldown when equipped
198 ITEM_FLAG_LEGACY = 0x00000100, // Effects are disabled
199 ITEM_FLAG_IS_WRAPPER = 0x00000200, // Item can wrap other items
201 ITEM_FLAG_MULTI_DROP = 0x00000800, // Looting this item does not remove it from available loot
202 ITEM_FLAG_ITEM_PURCHASE_RECORD = 0x00001000, // Item can be returned to vendor for its original cost (extended cost)
203 ITEM_FLAG_PETITION = 0x00002000, // Item is guild or arena charter
204 ITEM_FLAG_HAS_TEXT = 0x00004000, // Only readable items have this (but not all)
208 ITEM_FLAG_IS_PROSPECTABLE = 0x00040000, // Item can be prospected
209 ITEM_FLAG_UNIQUE_EQUIPPABLE = 0x00080000, // You can only equip one of these
210 ITEM_FLAG_DISABLE_AUTO_QUOTES = 0x00100000, // Disables quotes around item description in tooltip
211 ITEM_FLAG_IGNORE_DEFAULT_ARENA_RESTRICTIONS = 0x00200000, // Item can be used during arena match
212 ITEM_FLAG_NO_DURABILITY_LOSS = 0x00400000, // Some Thrown weapons have it (and only Thrown) but not all
213 ITEM_FLAG_USE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms
215 ITEM_FLAG_HIDE_UNUSABLE_RECIPE = 0x02000000, // Profession recipes: can only be looted if you meet requirements and don't already know it
216 ITEM_FLAG_NOT_USEABLE_IN_ARENA = 0x04000000, // Item cannot be used in arena
217 ITEM_FLAG_IS_BOUND_TO_ACCOUNT = 0x08000000, // Item binds to account and can be sent only to your own characters
218 ITEM_FLAG_NO_REAGENT_COST = 0x10000000, // Spell is cast ignoring reagents
219 ITEM_FLAG_IS_MILLABLE = 0x20000000, // Item can be milled
223
225{
228 ITEM_FLAG2_DONT_IGNORE_BUY_PRICE = 0x00000004, // when item uses extended cost, gold is also required // deprecated
259
261{
271 ITEM_FLAG3_DISPLAY_AS_HEIRLOOM = 0x00000200, // Item appears as having heirloom quality ingame regardless of its real quality (does not affect stat calculation)
274 ITEM_FLAG3_DONT_DISPLAY_IN_GUILD_NEWS = 0x00001000, // Item is not included in the guild news panel
293 ITEM_FLAG3_NO_VOID_STORAGE = 0x80000000
295
297{
327};
328
330{
332 ITEM_FLAGS_CU_IGNORE_QUEST_STATUS = 0x0002, // No quest status will be checked when this item drops
333 ITEM_FLAGS_CU_FOLLOW_LOOT_RULES = 0x0004 // Item will always follow group/master/need before greed looting rules
335
357
392
393extern int32 const SocketColorToGemTypeMask[31];
394
395#define SOCKET_COLOR_STANDARD (SOCKET_COLOR_RED | SOCKET_COLOR_YELLOW | SOCKET_COLOR_BLUE)
396
435
436#define MAX_INVTYPE 35
437
451
476
477#define MAX_ITEM_CLASS 21
478
494
495#define MAX_ITEM_SUBCLASS_CONSUMABLE 12
496
512
513#define MAX_ITEM_SUBCLASS_CONTAINER 12
514
539
540#define ITEM_SUBCLASS_MASK_WEAPON_RANGED (\
541 (1 << ITEM_SUBCLASS_WEAPON_BOW) | (1 << ITEM_SUBCLASS_WEAPON_GUN) |\
542 (1 << ITEM_SUBCLASS_WEAPON_CROSSBOW))
543
544#define MAX_ITEM_SUBCLASS_WEAPON 21
545
561
562#define MAX_ITEM_SUBCLASS_GEM 12
563
579
580#define MAX_ITEM_SUBCLASS_ARMOR 12
581
588
589#define MAX_ITEM_SUBCLASS_REAGENT 3
590
599
600#define MAX_ITEM_SUBCLASS_PROJECTILE 5
601
625
626#define MAX_ITEM_SUBCLASS_TRADE_GOODS 20
627
646
647#define MAX_ITEM_SUBCLASS_ITEM_ENHANCEMENT 15
648
664
665#define MAX_ITEM_SUBCLASS_RECIPE 12
666
668{
669 ITEM_SUBCLASS_MONEY = 0, // OBSOLETE
670};
671
672#define MAX_ITEM_SUBCLASS_MONEY 1
673
681
682#define MAX_ITEM_SUBCLASS_QUIVER 4
683
685{
687 ITEM_SUBCLASS_QUEST_UNK3 = 3, // 1 item (33604)
688 ITEM_SUBCLASS_QUEST_UNK8 = 8, // 2 items (37445, 49700)
689};
690
691#define MAX_ITEM_SUBCLASS_QUEST 9
692
698
699#define MAX_ITEM_SUBCLASS_KEY 2
700
705
706#define MAX_ITEM_SUBCLASS_PERMANENT 1
707
718
719#define MAX_ITEM_SUBCLASS_MISCELLANEOUS 7
720
736
737#define MAX_ITEM_SUBCLASS_GLYPH 13
738
743
744#define MAX_ITEM_SUBCLASS_BATTLE_PET 1
745
750
751#define MAX_ITEM_SUBCLASS_WOW_TOKEN 1
752
770
771#define MAX_ITEM_SUBCLASS_PROFESSION 14
772
782
783#define MAX_ITEM_SUBCLASS_HOUSING 6
784
809
810#define MAX_ITEM_SUBCLASS_TOTAL 21
811
817
819{
820 ITEM_HEARTHSTONE = 6948, // Hearthstone
821 ITEM_GARRISON_HEARTHSTONE = 110560, // Garrison Hearthstone
822 ITEM_DALARAN_HEARTHSTONE = 140192, // Dalaran Hearthstone
823 ITEM_FLIGHT_MASTER_WHISTLE = 141605, // Flight Master Whistle
824
825 ITEM_RED_RIBBONED_WRAPPING_PAPER = 5042, // Red Ribboned Wrapping Paper
826 ITEM_RED_RIBBONED_GIFT = 5043, // Red Ribboned Gift
827 ITEM_BLUE_RIBBONED_WRAPPING_PAPER = 5048, // Blue Ribboned Wrapping Paper
828 ITEM_BLUE_RIBBONED_GIFT = 5044, // Blue Ribboned Gift
829 ITEM_BLUE_RIBBONED_HOLIDAY_WRAPPING_PAPER = 17303, // Blue Ribboned Wrapping Paper
830 ITEM_BLUE_RIBBONED_HOLIDAY_GIFT = 17302, // Blue Ribboned Holiday Gift
831 ITEM_GREEN_RIBBONED_WRAPPING_PAPER = 17304, // Green Ribboned Wrapping Paper
832 ITEM_GREEN_RIBBONED_HOLIDAY_GIFT = 17305, // Green Ribboned Holiday Gift
833 ITEM_PURPLE_RIBBONED_WRAPPING_PAPER = 17307, // Purple Ribboned Wrapping Paper
834 ITEM_PURPLE_RIBBONED_HOLIDAY_GIFT = 17308, // Purple Ribboned Holiday Gift
835 ITEM_EMPTY_WRAPPER = 21830, // Empty Wrapper
836 ITEM_WRAPPED_GIFT = 21831, // Wrappered Gift
837
838 ITEM_ACCOUNT_BANK_TAB_BAG = 208392, // Account Bank Tab Bag (DNT)
839 ITEM_CHARACTER_BANK_TAB_BAG = 242709, // Character Bank Tab Bag (DNT)
840};
841
842class Player;
844
846{
849
850 uint32 GetId() const { return BasicData->ID; }
851 uint32 GetClass() const { return BasicData->ClassID; }
852 uint32 GetSubClass() const { return BasicData->SubclassID; }
853 ItemSheatheType GetSheatheType() const { return static_cast<ItemSheatheType>(BasicData->SheatheType); }
854 uint32 GetQuality() const { return ExtendedData->OverallQualityID; }
855 uint32 GetOtherFactionItemId() const { return ExtendedData->FactionRelated; }
856 float GetPriceRandomValue() const { return ExtendedData->PriceRandomValue; }
857 float GetPriceVariance() const { return ExtendedData->PriceVariance; }
858 uint32 GetBuyCount() const { return std::max<uint32>(ExtendedData->VendorStackCount, 1u); }
859 uint32 GetBuyPrice() const { return ExtendedData->BuyPrice; }
860 uint32 GetSellPrice() const { return ExtendedData->SellPrice; }
862 int32 GetAllowableClass() const { return ExtendedData->AllowableClass; }
864 uint32 GetBaseItemLevel() const { return ExtendedData->ItemLevel; }
865 int32 GetBaseRequiredLevel() const { return ExtendedData->RequiredLevel; }
866 uint32 GetRequiredSkill() const { return ExtendedData->RequiredSkill; }
867 uint32 GetRequiredSkillRank() const { return ExtendedData->RequiredSkillRank; }
868 uint32 GetRequiredSpell() const { return ExtendedData->RequiredAbility; }
869 uint32 GetRequiredReputationFaction() const { return ExtendedData->MinFactionID; }
870 uint32 GetRequiredReputationRank() const { return ExtendedData->MinReputation; }
871 uint32 GetMaxCount() const { return ExtendedData->MaxCount; }
872 uint32 GetContainerSlots() const { return ExtendedData->ContainerSlots; }
873 int32 GetStatModifierBonusStat(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->StatModifierBonusStat[index]; }
874 int32 GetStatPercentEditor(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->StatPercentEditor[index]; }
875 float GetStatPercentageOfSocket(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->StatPercentageOfSocket[index]; }
876 uint32 GetScalingStatContentTuning() const { return ExtendedData->ContentTuningID; }
880 uint32 GetItemSquishEraId() const { return ExtendedData->ItemSquishEraID; }
881 uint32 GetDamageType() const { return ExtendedData->DamageDamageType; }
882 uint32 GetDelay() const { return ExtendedData->ItemDelay; }
883 float GetRangedModRange() const { return ExtendedData->ItemRange; }
884 ItemBondingType GetBonding() const { return ItemBondingType(ExtendedData->Bonding); }
885 char const* GetName(LocaleConstant locale) const;
886 uint32 GetPageText() const { return ExtendedData->PageID; }
887 uint32 GetStartQuest() const { return ExtendedData->StartQuestID; }
888 uint32 GetLockID() const { return ExtendedData->LockID; }
889 uint32 GetItemSet() const { return ExtendedData->ItemSet; }
890 uint32 GetArea(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_ZONES); return ExtendedData->ZoneBound[index]; }
891 uint32 GetMap() const { return ExtendedData->InstanceBound; }
892 uint32 GetBagFamily() const { return ExtendedData->BagFamily; }
893 uint32 GetTotemCategory() const { return ExtendedData->TotemCategoryID; }
894 SocketColor GetSocketColor(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_SOCKETS); return SocketColor(ExtendedData->SocketType[index]); }
895 uint32 GetSocketBonus() const { return ExtendedData->SocketMatchEnchantmentId; }
896 uint32 GetGemProperties() const { return ExtendedData->GemProperties; }
897 float GetQualityModifier() const { return ExtendedData->QualityModifier; }
898 uint32 GetDuration() const { return ExtendedData->DurationInInventory; }
899 uint32 GetItemLimitCategory() const { return ExtendedData->LimitCategory; }
900 HolidayIds GetHolidayID() const { return HolidayIds(ExtendedData->RequiredHoliday); }
901 float GetDmgVariance() const { return ExtendedData->DmgVariance; }
902 uint8 GetArtifactID() const { return ExtendedData->ArtifactID; }
903 uint8 GetRequiredExpansion() const { return ExtendedData->ExpansionID; }
904
906 std::vector<ItemEffectEntry const*> Effects;
907
908 // extra fields, not part of db2 files
916 std::bitset<MAX_CLASSES * MAX_SPECIALIZATIONS> Specializations[3]; // one set for 1-40 level range and another for 41-109 and one for 110
919
920 // helpers
921 bool CanChangeEquipStateInCombat() const;
922
923 bool IsCurrencyToken() const { return (GetBagFamily() & BAG_FAMILY_MASK_CURRENCY_TOKENS) != 0; }
924
926 {
927 return (ExtendedData->Stackable == 2147483647 || ExtendedData->Stackable <= 0) ? uint32(0x7FFFFFFF - 1) : uint32(ExtendedData->Stackable);
928 }
929
930 uint32 GetSkill() const;
931
932 bool IsPotion() const { return GetClass() == ITEM_CLASS_CONSUMABLE && GetSubClass() == ITEM_SUBCLASS_POTION; }
933 bool IsVellum() const { return HasFlag(ITEM_FLAG3_CAN_STORE_ENCHANTS); }
934 bool IsConjuredConsumable() const { return GetClass() == ITEM_CLASS_CONSUMABLE && HasFlag(ITEM_FLAG_CONJURED); }
935 bool IsCraftingReagent() const { return HasFlag(ITEM_FLAG2_USED_IN_A_TRADESKILL); }
936 bool HasSignature() const;
937
938 bool IsWeapon() const { return GetClass() == ITEM_CLASS_WEAPON; }
939 bool IsArmor() const { return GetClass() == ITEM_CLASS_ARMOR; }
940
941 bool IsRangedWeapon() const
942 {
943 if (!IsWeapon())
944 return false;
945
946 switch (ItemSubclassWeapon(GetSubClass()))
947 {
952 return true;
953 default:
954 break;
955 }
956 return false;
957 }
958
959 inline bool HasFlag(ItemFlags flag) const { return (ExtendedData->Flags[0] & flag) != 0; }
960 inline bool HasFlag(ItemFlags2 flag) const { return (ExtendedData->Flags[1] & flag) != 0; }
961 inline bool HasFlag(ItemFlags3 flag) const { return (ExtendedData->Flags[2] & flag) != 0; }
962 inline bool HasFlag(ItemFlags4 flag) const { return (ExtendedData->Flags[3] & flag) != 0; }
963 inline bool HasFlag(ItemFlagsCustom customFlag) const { return (FlagsCu & customFlag) != 0; }
964
965 char const* GetDefaultLocaleName() const;
966 uint32 GetArmor(uint32 itemLevel) const;
967 float GetDPS(uint32 itemLevel) const;
968 void GetDamage(uint32 itemLevel, float& minDamage, float& maxDamage) const;
969 bool IsUsableByLootSpecialization(Player const* player, bool alwaysAllowBoundToAccount) const;
970 static std::size_t CalculateItemSpecBit(ChrSpecializationEntry const* spec);
971 TransmogOutfitSlotOption GetWeaponTransmogOutfitSlotOption() const;
972};
973
974#endif
LocaleConstant
Definition Common.h:51
TransmogOutfitSlotOption
Definition DBCEnums.h:2622
#define MAX_ITEM_PROTO_SOCKETS
Definition DBCEnums.h:1210
ItemSheatheType
Definition DBCEnums.h:1518
#define MAX_ITEM_PROTO_STATS
Definition DBCEnums.h:1211
#define MAX_ITEM_PROTO_ZONES
Definition DBCEnums.h:1209
#define TC_GAME_API
Definition Define.h:129
uint8_t uint8
Definition Define.h:156
int32_t int32
Definition Define.h:150
uint32_t uint32
Definition Define.h:154
#define DEFINE_ENUM_FLAG(enumType)
Definition EnumFlag.h:26
#define ASSERT
Definition Errors.h:80
#define MAX_ITEM_SUBCLASS_MONEY
ItemSubclassItemEnhancement
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_SHOULDER
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_HEAD
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_CHEST
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_HANDS
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_TWO_HANDED_WEAPON
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_FINGER
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_CLOAK
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_NECK
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_MISC
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_FEET
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_WEAPON
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_SHIELD_OFF_HAND
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_WAIST
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_LEGS
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT_WRIST
ItemClass
@ ITEM_CLASS_QUIVER
@ ITEM_CLASS_RECIPE
@ ITEM_CLASS_PROFESSION
@ ITEM_CLASS_KEY
@ ITEM_CLASS_CONTAINER
@ ITEM_CLASS_TRADE_GOODS
@ ITEM_CLASS_REAGENT
@ ITEM_CLASS_MONEY
@ ITEM_CLASS_BATTLE_PETS
@ ITEM_CLASS_PERMANENT
@ ITEM_CLASS_GLYPH
@ ITEM_CLASS_PROJECTILE
@ ITEM_CLASS_GEM
@ ITEM_CLASS_WOW_TOKEN
@ ITEM_CLASS_ITEM_ENHANCEMENT
@ ITEM_CLASS_ARMOR
@ ITEM_CLASS_HOUSING
@ ITEM_CLASS_QUEST
@ ITEM_CLASS_MISCELLANEOUS
@ ITEM_CLASS_WEAPON
@ ITEM_CLASS_CONSUMABLE
ItemFlags2
@ ITEM_FLAG2_USED_IN_A_TRADESKILL
@ ITEM_FLAG2_CAN_DROP_IN_CHALLENGE_MODE
@ ITEM_FLAG2_NEVER_STACK_IN_LOOT_UI
@ ITEM_FLAG2_ROLE_HEALER
@ ITEM_FLAG2_ROLE_DAMAGE
@ ITEM_FLAG2_INTERNAL_ITEM
@ ITEM_FLAG2_CLASSIFY_AS_PHYSICAL
@ ITEM_FLAG2_NOT_USABLE_IN_RATED_BG
@ ITEM_FLAG2_EVERYONE_CAN_ROLL_NEED
@ ITEM_FLAG2_NO_SOURCE_FOR_ITEM_VISUAL
@ ITEM_FLAG2_IGNORE_QUALITY_FOR_ITEM_VISUAL_SOURCE
@ ITEM_FLAG2_CLASSIFY_AS_CASTER
@ ITEM_FLAG2_NO_DURABILITY
@ ITEM_FLAG2_NO_TRADE_BIND_ON_ACQUIRE
@ ITEM_FLAG2_REEVALUATE_BONDING_ON_TRANSFORM
@ ITEM_FLAG2_CONFIRM_BEFORE_USE
@ ITEM_FLAG2_NO_VENDOR_VALUE
@ ITEM_FLAG2_DONT_IGNORE_BUY_PRICE
@ ITEM_FLAG2_CAN_TRADE_BIND_ON_ACQUIRE
@ ITEM_FLAG2_NO_ALTER_ITEM_VISUAL
@ ITEM_FLAG2_FACTION_HORDE
@ ITEM_FLAG2_CASTER_WEAPON
@ ITEM_FLAG2_DISENCHANT_TO_LOOT_TABLE
@ ITEM_FLAG2_FACTION_ALLIANCE
@ ITEM_FLAG2_OVERRIDE_GOLD_COST
@ ITEM_FLAG2_BNET_ACCOUNT_TRADE_OK
@ ITEM_FLAG2_CAN_ONLY_ROLL_GREED
@ ITEM_FLAG2_DELETE_ON_LOGIN
@ ITEM_FLAG2_SHOW_BEFORE_DISCOVERED
@ ITEM_FLAG2_NO_TRANSFORM_ON_CHARGE_DEPLETION
@ ITEM_FLAG2_IGNORE_DEFAULT_RATED_BG_RESTRICTIONS
@ ITEM_FLAG2_ROLE_TANK
#define MAX_ITEM_SUBCLASS_WOW_TOKEN
ItemSubclassWeapon
@ ITEM_SUBCLASS_WEAPON_MISCELLANEOUS
@ ITEM_SUBCLASS_WEAPON_CROSSBOW
@ ITEM_SUBCLASS_WEAPON_GUN
@ ITEM_SUBCLASS_WEAPON_AXE2
@ ITEM_SUBCLASS_WEAPON_SPEAR
@ ITEM_SUBCLASS_WEAPON_STAFF
@ ITEM_SUBCLASS_WEAPON_MACE
@ ITEM_SUBCLASS_WEAPON_EXOTIC2
@ ITEM_SUBCLASS_WEAPON_WARGLAIVES
@ ITEM_SUBCLASS_WEAPON_FISHING_POLE
@ ITEM_SUBCLASS_WEAPON_MACE2
@ ITEM_SUBCLASS_WEAPON_DAGGER
@ ITEM_SUBCLASS_WEAPON_BOW
@ ITEM_SUBCLASS_WEAPON_SWORD
@ ITEM_SUBCLASS_WEAPON_AXE
@ ITEM_SUBCLASS_WEAPON_FIST_WEAPON
@ ITEM_SUBCLASS_WEAPON_WAND
@ ITEM_SUBCLASS_WEAPON_EXOTIC
@ ITEM_SUBCLASS_WEAPON_THROWN
@ ITEM_SUBCLASS_WEAPON_SWORD2
@ ITEM_SUBCLASS_WEAPON_POLEARM
ItemSubclassGlyph
@ ITEM_SUBCLASS_GLYPH_WARLOCK
@ ITEM_SUBCLASS_GLYPH_PRIEST
@ ITEM_SUBCLASS_GLYPH_WARRIOR
@ ITEM_SUBCLASS_GLYPH_MONK
@ ITEM_SUBCLASS_GLYPH_DEMON_HUNTER
@ ITEM_SUBCLASS_GLYPH_ROGUE
@ ITEM_SUBCLASS_GLYPH_HUNTER
@ ITEM_SUBCLASS_GLYPH_SHAMAN
@ ITEM_SUBCLASS_GLYPH_DEATH_KNIGHT
@ ITEM_SUBCLASS_GLYPH_PALADIN
@ ITEM_SUBCLASS_GLYPH_MAGE
@ ITEM_SUBCLASS_GLYPH_DRUID
#define MAX_ITEM_SUBCLASS_RECIPE
#define MAX_ITEM_SUBCLASS_KEY
#define MAX_ITEM_SUBCLASS_HOUSING
ItemFieldFlags
@ ITEM_FIELD_FLAG_UNK15
@ ITEM_FIELD_FLAG_NEW_ITEM
@ ITEM_FIELD_FLAG_UNK26
@ ITEM_FIELD_FLAG_UNK24
@ ITEM_FIELD_FLAG_REFUNDABLE
@ ITEM_FIELD_FLAG_UNLOCKED
@ ITEM_FIELD_FLAG_UNK9
@ ITEM_FIELD_FLAG_CHILD
@ ITEM_FIELD_FLAG_READABLE
@ ITEM_FIELD_FLAG_TRANSLATED
@ ITEM_FIELD_FLAG_UNK21
@ ITEM_FIELD_FLAG_UNK23
@ ITEM_FIELD_FLAG_SOULBOUND
@ ITEM_FIELD_FLAG_UNK4
@ ITEM_FIELD_FLAG_UNK12
@ ITEM_FIELD_FLAG_AZERITE_EMPOWERED_ITEM_VIEWED
@ ITEM_FIELD_FLAG_UNK8
@ ITEM_FIELD_FLAG_WRAPPED
@ ITEM_FIELD_FLAG_UNK18
@ ITEM_FIELD_FLAG_UNK3
@ ITEM_FIELD_FLAG_UNK25
@ ITEM_FIELD_FLAG_UNK20
@ ITEM_FIELD_FLAG_UNK7
@ ITEM_FIELD_FLAG_UNK22
@ ITEM_FIELD_FLAG_UNK2
@ ITEM_FIELD_FLAG_UNK13
@ ITEM_FIELD_FLAG_UNK6
@ ITEM_FIELD_FLAG_BOP_TRADEABLE
@ ITEM_FIELD_FLAG_UNK5
@ ITEM_FIELD_FLAG_UNK19
@ ITEM_FIELD_FLAG_UNK10
@ ITEM_FIELD_FLAG_UNK11
ItemSubclassHousing
@ ITEM_SUBCLASS_HOUSING_DECOR
@ ITEM_SUBCLASS_HOUSING_ROOM
@ ITEM_SUBCLASS_HOUSING_ROOM_CUSTOMIZATION
@ ITEM_SUBCLASS_HOUSING_SERVICE_ITEM
@ ITEM_SUBCLASS_HOUSING_EXTERIOR_CUSTOMIZATION
@ ITEM_SUBCLASS_HOUSING_DYE
ItemSpelltriggerType
@ ITEM_SPELLTRIGGER_ON_DEATH
@ ITEM_SPELLTRIGGER_ON_PICKUP_FORCED
@ ITEM_SPELLTRIGGER_ON_USE
@ ITEM_SPELLTRIGGER_ON_LOOTED_FORCED
@ ITEM_SPELLTRIGGER_ON_LEARN
@ ITEM_SPELLTRIGGER_ON_LOOTED
@ ITEM_SPELLTRIGGER_ON_PROC
@ ITEM_SPELLTRIGGER_ON_PICKUP
@ ITEM_SPELLTRIGGER_SUMMONED_BY_SPELL
@ ITEM_SPELLTRIGGER_TEACH_MOUNT
@ ITEM_SPELLTRIGGER_ON_EQUIP
BAG_FAMILY_MASK
@ BAG_FAMILY_MASK_MINING_SUPP
@ BAG_FAMILY_MASK_HERBS
@ BAG_FAMILY_MASK_ENCHANTING_SUPP
@ BAG_FAMILY_MASK_SOUL_SHARDS
@ BAG_FAMILY_MASK_CURRENCY_TOKENS
@ BAG_FAMILY_MASK_INSCRIPTION_SUPP
@ BAG_FAMILY_MASK_NONE
@ BAG_FAMILY_MASK_GEMS
@ BAG_FAMILY_MASK_VANITY_PETS
@ BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT
@ BAG_FAMILY_MASK_ARROWS
@ BAG_FAMILY_MASK_BULLETS
@ BAG_FAMILY_MASK_QUEST_ITEMS
@ BAG_FAMILY_MASK_KEYS
@ BAG_FAMILY_MASK_ENGINEERING_SUPP
@ BAG_FAMILY_MASK_COOKING_SUPP
@ BAG_FAMILY_MASK_FISHING_SUPP
@ BAG_FAMILY_MASK_LEATHERWORKING_SUPP
ItemSubclassContainer
@ ITEM_SUBCLASS_CONTAINER
@ ITEM_SUBCLASS_REAGENT_CONTAINER
@ ITEM_SUBCLASS_COOKING_CONTAINER
@ ITEM_SUBCLASS_INSCRIPTION_CONTAINER
@ ITEM_SUBCLASS_LEATHERWORKING_CONTAINER
@ ITEM_SUBCLASS_TACKLE_CONTAINER
@ ITEM_SUBCLASS_GEM_CONTAINER
@ ITEM_SUBCLASS_SOUL_CONTAINER
@ ITEM_SUBCLASS_ENCHANTING_CONTAINER
@ ITEM_SUBCLASS_MINING_CONTAINER
@ ITEM_SUBCLASS_HERB_CONTAINER
@ ITEM_SUBCLASS_ENGINEERING_CONTAINER
ItemSubclassQuiver
@ ITEM_SUBCLASS_QUIVER1
@ ITEM_SUBCLASS_QUIVER0
@ ITEM_SUBCLASS_QUIVER
@ ITEM_SUBCLASS_AMMO_POUCH
ItemFlags
@ ITEM_FLAG_NO_PICKUP
@ ITEM_FLAG_NO_DURABILITY_LOSS
@ ITEM_FLAG_IS_MILLABLE
@ ITEM_FLAG_REAL_DURATION
@ ITEM_FLAG_NO_REAGENT_COST
@ ITEM_FLAG_IS_WRAPPER
@ ITEM_FLAG_LEGACY
@ ITEM_FLAG_IS_PROSPECTABLE
@ ITEM_FLAG_IGNORE_DEFAULT_ARENA_RESTRICTIONS
@ ITEM_FLAG_USE_WHEN_SHAPESHIFTED
@ ITEM_FLAG_DISABLE_AUTO_QUOTES
@ ITEM_FLAG_HIDE_UNUSABLE_RECIPE
@ ITEM_FLAG_PETITION
@ ITEM_FLAG_NO_USER_DESTROY
@ ITEM_FLAG_HAS_LOOT
@ ITEM_FLAG_NO_DISENCHANT
@ ITEM_FLAG_NO_EQUIP_COOLDOWN
@ ITEM_FLAG_UNIQUE_EQUIPPABLE
@ ITEM_FLAG_REPORT_TO_GUILD_CHAT
@ ITEM_FLAG_NO_PROGRESSIVE_LOOT
@ ITEM_FLAG_ITEM_PURCHASE_RECORD
@ ITEM_FLAG_DEPRECATED
@ ITEM_FLAG_HEROIC_TOOLTIP
@ ITEM_FLAG_USES_RESOURCES
@ ITEM_FLAG_PLAYERCAST
@ ITEM_FLAG_MULTI_DROP
@ ITEM_FLAG_NOT_USEABLE_IN_ARENA
@ ITEM_FLAG_NO_CREATOR
@ ITEM_FLAG_IS_BOUND_TO_ACCOUNT
@ ITEM_FLAG_HAS_QUEST_GLOW
@ ITEM_FLAG_CONJURED
@ ITEM_FLAG_HAS_TEXT
ItemFlags3
@ ITEM_FLAG3_DO_NOT_TOAST
@ ITEM_FLAG3_REQUIRES_STACK_CHANGE_LOG
@ ITEM_FLAG3_ALWAYS_FFA_IN_LOOT
@ ITEM_FLAG3_IGNORE_CREATION_CONTEXT_FOR_PROGRESSIVE_WIN_HISTORY
@ ITEM_FLAG3_PUSH_LOOT
@ ITEM_FLAG3_UNUSED_FLAG
@ ITEM_FLAG3_SKIP_USE_CHECK_ON_PICKUP
@ ITEM_FLAG3_HIDE_UPGRADE_LEVELS_IF_NOT_UPGRADED
@ ITEM_FLAG3_DONT_DESTROY_ON_QUEST_ACCEPT
@ ITEM_FLAG3_DONT_DISPLAY_IN_GUILD_NEWS
@ ITEM_FLAG3_SAVE_ON_CONSUME
@ ITEM_FLAG3_PVP_TOURNAMENT_GEAR
@ ITEM_FLAG3_CONTAINER_SAVES_PLAYER_DATA
@ ITEM_FLAG3_CAN_STORE_ENCHANTS
@ ITEM_FLAG3_UPDATE_DOESNT_LEAVE_PROGRESSIVE_WIN_HISTORY
@ ITEM_FLAG3_ITEM_CAN_BE_UPGRADED
@ ITEM_FLAG3_EXPIRE_ON_WEEKLY_RESET
@ ITEM_FLAG3_FORCE_ALL_SPECS_FOR_ITEM_HISTORY
@ ITEM_FLAG3_UPGRADE_FROM_ITEM_OVERRIDES_DROP_UPGRADE
@ ITEM_FLAG3_HIDE_QUEST_ITEM_FROM_OBJECT_TOOLTIP
@ ITEM_FLAG3_DONT_REPORT_LOOT_LOG_TO_PARTY
@ ITEM_FLAG3_IGNORE_ITEM_HISTORY_TRACKER
@ ITEM_FLAG3_UPDATE_INTERACTIONS
@ ITEM_FLAG3_HIDE_NAME_SUFFIX
@ ITEM_FLAG3_DOESNT_SHOW_UP_IN_TRANSMOG_UNTIL_COLLECTED
@ ITEM_FLAG3_ALWAYS_ALLOW_DUAL_WIELD
@ ITEM_FLAG3_IGNORE_ITEM_LEVEL_CAP_IN_PVP
@ ITEM_FLAG3_OBLITERATABLE
@ ITEM_FLAG3_ACTS_AS_TRANSMOG_HIDDEN_VISUAL_OPTION
@ ITEM_FLAG3_NO_VOID_STORAGE
@ ITEM_FLAG3_OBSOLETE
@ ITEM_FLAG3_DISPLAY_AS_HEIRLOOM
ItemSubclassWowToken
@ ITEM_SUBCLASS_WOW_TOKEN
ItemSubclassProfession
@ ITEM_SUBCLASS_PROFESSION_ENCHANTING
@ ITEM_SUBCLASS_PROFESSION_ALCHEMY
@ ITEM_SUBCLASS_PROFESSION_INSCRIPTION
@ ITEM_SUBCLASS_PROFESSION_ENGINEERING
@ ITEM_SUBCLASS_PROFESSION_BLACKSMITHING
@ ITEM_SUBCLASS_PROFESSION_LEATHERWORKING
@ ITEM_SUBCLASS_PROFESSION_JEWELCRAFTING
@ ITEM_SUBCLASS_PROFESSION_ARCHAEOLOGY
@ ITEM_SUBCLASS_PROFESSION_SKINNING
@ ITEM_SUBCLASS_PROFESSION_TAILORING
@ ITEM_SUBCLASS_PROFESSION_FISHING
@ ITEM_SUBCLASS_PROFESSION_HERBALISM
@ ITEM_SUBCLASS_PROFESSION_MINING
@ ITEM_SUBCLASS_PROFESSION_COOKING
ItemModType
@ ITEM_MOD_HOLY_RESISTANCE
@ ITEM_MOD_CR_UNUSED_11
@ ITEM_MOD_CRIT_TAKEN_RANGED_RATING
@ ITEM_MOD_AGI_STR_INT
@ ITEM_MOD_CR_UNUSED_9
@ ITEM_MOD_CORRUPTION_RESISTANCE
@ ITEM_MOD_CR_AVOIDANCE
@ ITEM_MOD_AGI_INT
@ ITEM_MOD_NATURE_RESISTANCE
@ ITEM_MOD_HIT_MELEE_RATING
@ ITEM_MOD_PROFESSION_MULTICRAFT
@ ITEM_MOD_MASTERY_RATING
@ ITEM_MOD_STAMINA
@ ITEM_MOD_HIT_SPELL_RATING
@ ITEM_MOD_CR_STURDINESS
@ ITEM_MOD_SPELL_PENETRATION
@ ITEM_MOD_STR_INT
@ ITEM_MOD_PARRY_RATING
@ ITEM_MOD_DEFENSE_SKILL_RATING
@ ITEM_MOD_MODIFIED_CRAFTING_STAT_2
@ ITEM_MOD_HASTE_RANGED_RATING
@ ITEM_MOD_CRIT_TAKEN_RATING
@ ITEM_MOD_CR_UNUSED_7
@ ITEM_MOD_EXPERTISE_RATING
@ ITEM_MOD_MANA
@ ITEM_MOD_RANGED_ATTACK_POWER
@ ITEM_MOD_HEALTH
@ ITEM_MOD_CR_LIFESTEAL
@ ITEM_MOD_PROFESSION_FINESSE
@ ITEM_MOD_VERSATILITY
@ ITEM_MOD_CRIT_TAKEN_SPELL_RATING
@ ITEM_MOD_SPIRIT
@ ITEM_MOD_FROST_RESISTANCE
@ ITEM_MOD_PROFESSION_INSPIRATION
@ ITEM_MOD_SPELL_POWER
@ ITEM_MOD_SHADOW_RESISTANCE
@ ITEM_MOD_CR_UNUSED_0
@ ITEM_MOD_EXTRA_ARMOR
@ ITEM_MOD_PROFESSION_DEFTNESS
@ ITEM_MOD_HASTE_SPELL_RATING
@ ITEM_MOD_ATTACK_POWER
@ ITEM_MOD_FIRE_RESISTANCE
@ ITEM_MOD_CR_UNUSED_1
@ ITEM_MOD_HASTE_RATING
@ ITEM_MOD_HIT_RANGED_RATING
@ ITEM_MOD_CRIT_SPELL_RATING
@ ITEM_MOD_CR_UNUSED_10
@ ITEM_MOD_BLOCK_VALUE
@ ITEM_MOD_PROFESSION_CRAFTING_SPEED
@ ITEM_MOD_CRIT_RANGED_RATING
@ ITEM_MOD_PROFESSION_INGENUITY
@ ITEM_MOD_CRIT_MELEE_RATING
@ ITEM_MOD_STRENGTH
@ ITEM_MOD_HEALTH_REGEN
@ ITEM_MOD_MODIFIED_CRAFTING_STAT_1
@ ITEM_MOD_PROFESSION_PERCEPTION
@ ITEM_MOD_BLOCK_RATING
@ ITEM_MOD_CR_UNUSED_3
@ ITEM_MOD_PVP_POWER
@ ITEM_MOD_ARMOR_PENETRATION_RATING
@ ITEM_MOD_PROFESSION_RESOURCEFULNESS
@ ITEM_MOD_SPELL_HEALING_DONE
@ ITEM_MOD_HIT_TAKEN_RATING
@ ITEM_MOD_ARCANE_RESISTANCE
@ ITEM_MOD_HASTE_MELEE_RATING
@ ITEM_MOD_CORRUPTION
@ ITEM_MOD_MANA_REGENERATION
@ ITEM_MOD_HIT_RATING
@ ITEM_MOD_INTELLECT
@ ITEM_MOD_RESILIENCE_RATING
@ ITEM_MOD_AGILITY
@ ITEM_MOD_DODGE_RATING
@ ITEM_MOD_CRIT_RATING
@ ITEM_MOD_AGI_STR
@ ITEM_MOD_CR_UNUSED_12
@ ITEM_MOD_CR_UNUSED_27
@ ITEM_MOD_CR_SPEED
@ ITEM_MOD_SPELL_DAMAGE_DONE
#define MAX_ITEM_SUBCLASS_REAGENT
#define MAX_ITEM_SUBCLASS_MISCELLANEOUS
#define MAX_ITEM_CLASS
ItemSubclassArmor
@ ITEM_SUBCLASS_ARMOR_MAIL
@ ITEM_SUBCLASS_ARMOR_LIBRAM
@ ITEM_SUBCLASS_ARMOR_CLOTH
@ ITEM_SUBCLASS_ARMOR_RELIC
@ ITEM_SUBCLASS_ARMOR_LEATHER
@ ITEM_SUBCLASS_ARMOR_SHIELD
@ ITEM_SUBCLASS_ARMOR_SIGIL
@ ITEM_SUBCLASS_ARMOR_PLATE
@ ITEM_SUBCLASS_ARMOR_TOTEM
@ ITEM_SUBCLASS_ARMOR_IDOL
@ ITEM_SUBCLASS_ARMOR_MISCELLANEOUS
@ ITEM_SUBCLASS_ARMOR_COSMETIC
#define MAX_ITEM_SUBCLASS_PERMANENT
ItemSubclassProjectile
@ ITEM_SUBCLASS_ARROW
@ ITEM_SUBCLASS_THROWN
@ ITEM_SUBCLASS_BULLET
@ ITEM_SUBCLASS_BOLT
@ ITEM_SUBCLASS_WAND
ItemZoneFlags
@ ITEM_FIELD_FLAG2_EQUIPPED
ItemSubclassTradeGoods
@ ITEM_SUBCLASS_PARTS
@ ITEM_SUBCLASS_ENCHANTING
@ ITEM_SUBCLASS_TRADE_GOODS
@ ITEM_SUBCLASS_HERB
@ ITEM_SUBCLASS_ENCHANTMENT
@ ITEM_SUBCLASS_EXPLOSIVES
@ ITEM_SUBCLASS_TRADE_GOODS_OTHER
@ ITEM_SUBCLASS_INSCRIPTION
@ ITEM_SUBCLASS_METAL_STONE
@ ITEM_SUBCLASS_JEWELCRAFTING
@ ITEM_SUBCLASS_MATERIAL
@ ITEM_SUBCLASS_FINISHING_REAGENT
@ ITEM_SUBCLASS_OPTIONAL_REAGENT
@ ITEM_SUBCLASS_LEATHER
@ ITEM_SUBCLASS_CLOTH
@ ITEM_SUBCLASS_EXPLOSIVES_DEVICES
@ ITEM_SUBCLASS_DEVICES
@ ITEM_SUBCLASS_MEAT
@ ITEM_SUBCLASS_ELEMENTAL
@ ITEM_SUBCLASS_WEAPON_ENCHANTMENT
#define MAX_ITEM_SUBCLASS_ARMOR
#define MAX_ITEM_SUBCLASS_TRADE_GOODS
ItemFlags4
@ ITEM_FLAG4_SHOWS_GENERATION_WITH_RANDOM_STATS
@ ITEM_FLAG4_DISPLAY_ONLY_ON_DEFINED_RACES
@ ITEM_FLAG4_COSMETIC_ITEM
@ ITEM_FLAG4_REGULATED_COMMODITY
@ ITEM_FLAG4_DISALLOW_WHILE_LEVEL_LINKED
@ ITEM_FLAG4_ACTIVATE_ON_EQUIP_EFFECTS_WHEN_TRANSMOGRIFIED
@ ITEM_FLAG4_RECRAFTABLE
@ ITEM_FLAG4_HIDDEN_IN_REWARD_SUMMARIES
@ ITEM_FLAG4_DONT_REPORT_LOOT_LOG_TO_SELF
@ ITEM_FLAG4_NOT_RESTORABLE
@ ITEM_FLAG4_NO_SPELL_EFFECT_TOOLTIP_PREFIXES
@ ITEM_FLAG4_NPC_ONLY
@ ITEM_FLAG4_NO_SALVAGE
@ ITEM_FLAG4_DISPLAY_REAGENT_QUALITY_AS_CRAFTED_QUALITY
@ ITEM_FLAG4_ALWAYS_SHOW_ITEM_LEVEL_IN_TOOLTIP
@ ITEM_FLAG4_NOT_MULTICRAFTABLE
@ ITEM_FLAG4_HANDLE_ON_USE_EFFECT_IMMEDIATELY
@ ITEM_FLAG4_SCRAPABLE
@ ITEM_FLAG4_SQUISH_USING_ITEM_LEVEL_AS_PLAYER_LEVEL
@ ITEM_FLAG4_DISALLOW_ENCHANT
@ ITEM_FLAG4_CC_TRINKET
@ ITEM_FLAG4_ALWAYS_SHOW_SELL_PRICE_IN_TOOLTIP
@ ITEM_FLAG4_BYPASS_REP_REQUIREMENTS_FOR_TRANSMOG
@ ITEM_FLAG4_IGNORE_COSMETIC_COLLECTION_BEHAVIOR
@ ITEM_FLAG4_GENERATE_LOOT_SPEC_ITEM
@ ITEM_FLAG4_DONT_DISPLAY_AS_CRAFTING_REAGENT
@ ITEM_FLAG4_ENFORCE_TRANSMOG_WITH_CHILD_ITEM
@ ITEM_FLAG4_CREATE_LOOT_IMMEDIATELY
@ ITEM_FLAG4_KEEP_THROUGH_FACTION_CHANGE
ItemSubclassRecipe
@ ITEM_SUBCLASS_BOOK
@ ITEM_SUBCLASS_TAILORING_PATTERN
@ ITEM_SUBCLASS_JEWELCRAFTING_RECIPE
@ ITEM_SUBCLASS_COOKING_RECIPE
@ ITEM_SUBCLASS_ALCHEMY_RECIPE
@ ITEM_SUBCLASS_ENGINEERING_SCHEMATIC
@ ITEM_SUBCLASS_ENCHANTING_FORMULA
@ ITEM_SUBCLASS_INSCRIPTION_TECHNIQUE
@ ITEM_SUBCLASS_LEATHERWORKING_PATTERN
@ ITEM_SUBCLASS_FISHING_MANUAL
@ ITEM_SUBCLASS_FIRST_AID_MANUAL
@ ITEM_SUBCLASS_BLACKSMITHING
ItemLevelConstants
@ MIN_ITEM_LEVEL
@ MAX_ITEM_LEVEL
#define MAX_ITEM_SUBCLASS_GEM
#define MAX_ITEM_SUBCLASS_CONTAINER
SocketColor
@ SOCKET_COLOR_SINGING_WIND
@ SOCKET_COLOR_DOMINATION_UNHOLY
@ SOCKET_COLOR_RELIC_FEL
@ SOCKET_COLOR_FIBER
@ SOCKET_COLOR_RELIC_WIND
@ SOCKET_COLOR_RELIC_FIRE
@ SOCKET_COLOR_TINKER
@ SOCKET_COLOR_DOMINATION_BLOOD
@ SOCKET_COLOR_META
@ SOCKET_COLOR_RELIC_LIFE
@ SOCKET_COLOR_RELIC_ARCANE
@ SOCKET_COLOR_DOMINATION_FROST
@ SOCKET_COLOR_RELIC_SHADOW
@ SOCKET_COLOR_RELIC_FROST
@ SOCKET_COLOR_SINGING_SEA
@ SOCKET_COLOR_PUNCHCARD_YELLOW
@ SOCKET_COLOR_CYPHER
@ SOCKET_COLOR_FRAGRANCE
@ SOCKET_COLOR_RELIC_IRON
@ SOCKET_COLOR_YELLOW
@ SOCKET_COLOR_PRIMORDIAL
@ SOCKET_COLOR_RED
@ SOCKET_COLOR_RELIC_WATER
@ SOCKET_COLOR_SINGING_THUNDER
@ SOCKET_COLOR_PUNCHCARD_BLUE
@ SOCKET_COLOR_RELIC_HOLY
@ SOCKET_COLOR_BLUE
@ SOCKET_COLOR_PUNCHCARD_RED
@ SOCKET_COLOR_HYDRAULIC
@ SOCKET_COLOR_RELIC_BLOOD
@ SOCKET_COLOR_COGWHEEL
ItemSubclassGem
@ ITEM_SUBCLASS_GEM_STRENGTH
@ ITEM_SUBCLASS_GEM_ARTIFACT_RELIC
@ ITEM_SUBCLASS_GEM_MASTERY
@ ITEM_SUBCLASS_GEM_SPIRIT
@ ITEM_SUBCLASS_GEM_HASTE
@ ITEM_SUBCLASS_GEM_MULTIPLE_STATS
@ ITEM_SUBCLASS_GEM_INTELLECT
@ ITEM_SUBCLASS_GEM_CRITICAL_STRIKE
@ ITEM_SUBCLASS_GEM_VERSATILITY
@ ITEM_SUBCLASS_GEM_OTHER
@ ITEM_SUBCLASS_GEM_STAMINA
@ ITEM_SUBCLASS_GEM_AGILITY
ItemSubclassMoney
@ ITEM_SUBCLASS_MONEY
ItemSubclassKey
@ ITEM_SUBCLASS_KEY
@ ITEM_SUBCLASS_LOCKPICK
int32 const SocketColorToGemTypeMask[31]
ItemBondingType
@ BIND_WOW_ACCOUNT
@ BIND_QUEST
@ BIND_ON_USE
@ BIND_UNUSED_2
@ BIND_UNUSED_1
@ BIND_ON_EQUIP
@ BIND_NONE
@ BIND_ON_ACQUIRE
@ BIND_BNET_ACCOUNT
@ BIND_BNET_ACCOUNT_UNTIL_EQUIPPED
ItemSubclassReagent
@ ITEM_SUBCLASS_KEYSTONE
@ ITEM_SUBCLASS_REAGENT
@ ITEM_SUBCLASS_CONTEXT_TOKEN
#define MAX_ITEM_SUBCLASS_CONSUMABLE
ItemSubclassPermanent
@ ITEM_SUBCLASS_PERMANENT
#define MAX_ITEM_SUBCLASS_QUIVER
constexpr std::array< InventoryType, 10 > InventoryTypesEquipable
#define MAX_ITEM_SUBCLASS_BATTLE_PET
#define MAX_ITEM_SUBCLASS_PROJECTILE
#define MAX_ITEM_SUBCLASS_QUEST
#define MAX_ITEM_SUBCLASS_ITEM_ENHANCEMENT
#define MAX_ITEM_SUBCLASS_WEAPON
#define MAX_ITEM_SUBCLASS_PROFESSION
ItemSubclassBattlePet
@ ITEM_SUBCLASS_BATTLE_PET
ItemSubclassJunk
@ ITEM_SUBCLASS_MISCELLANEOUS_JUNK
@ ITEM_SUBCLASS_MISCELLANEOUS_HOLIDAY
@ ITEM_SUBCLASS_MISCELLANEOUS_MOUNT
@ ITEM_SUBCLASS_MISCELLANEOUS_REAGENT
@ ITEM_SUBCLASS_MISCELLANEOUS_COMPANION_PET
@ ITEM_SUBCLASS_MISCELLANEOUS_MOUNT_EQUIPMENT
@ ITEM_SUBCLASS_MISCELLANEOUS_OTHER
ItemSubclassConsumable
@ ITEM_SUBCLASS_VANTUS_RUNE
@ ITEM_SUBCLASS_CONSUMABLE_OTHER
@ ITEM_SUBCLASS_UTILITY_CURIO
@ ITEM_SUBCLASS_FOOD_DRINK
@ ITEM_SUBCLASS_SCROLL
@ ITEM_SUBCLASS_FLASK
@ ITEM_SUBCLASS_POTION
@ ITEM_SUBCLASS_CONSUMABLE
@ ITEM_SUBCLASS_COMBAT_CURIO
@ ITEM_SUBCLASS_ELIXIR
@ ITEM_SUBCLASS_BANDAGE
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT
ItemSubclassQuest
@ ITEM_SUBCLASS_QUEST
@ ITEM_SUBCLASS_QUEST_UNK8
@ ITEM_SUBCLASS_QUEST_UNK3
const uint32 MaxItemSubclassValues[MAX_ITEM_CLASS]
ItemIdConstants
@ ITEM_PURPLE_RIBBONED_WRAPPING_PAPER
@ ITEM_BLUE_RIBBONED_WRAPPING_PAPER
@ ITEM_ACCOUNT_BANK_TAB_BAG
@ ITEM_PURPLE_RIBBONED_HOLIDAY_GIFT
@ ITEM_CHARACTER_BANK_TAB_BAG
@ ITEM_FLIGHT_MASTER_WHISTLE
@ ITEM_BLUE_RIBBONED_GIFT
@ ITEM_EMPTY_WRAPPER
@ ITEM_GREEN_RIBBONED_HOLIDAY_GIFT
@ ITEM_GREEN_RIBBONED_WRAPPING_PAPER
@ ITEM_BLUE_RIBBONED_HOLIDAY_GIFT
@ ITEM_HEARTHSTONE
@ ITEM_DALARAN_HEARTHSTONE
@ ITEM_RED_RIBBONED_WRAPPING_PAPER
@ ITEM_WRAPPED_GIFT
@ ITEM_GARRISON_HEARTHSTONE
@ ITEM_BLUE_RIBBONED_HOLIDAY_WRAPPING_PAPER
@ ITEM_RED_RIBBONED_GIFT
#define MAX_ITEM_SUBCLASS_GLYPH
ItemFlagsCustom
@ ITEM_FLAGS_CU_FOLLOW_LOOT_RULES
@ ITEM_FLAGS_CU_IGNORE_QUEST_STATUS
@ ITEM_FLAGS_CU_UNUSED
InventoryType
@ INVTYPE_BODY
@ INVTYPE_FINGER
@ INVTYPE_HEAD
@ INVTYPE_CLOAK
@ INVTYPE_EQUIPABLE_SPELL_UTILITY
@ INVTYPE_ROBE
@ INVTYPE_HOLDABLE
@ INVTYPE_TRINKET
@ INVTYPE_RELIC
@ INVTYPE_PROFESSION_TOOL
@ INVTYPE_EQUIPABLE_SPELL_OFFENSIVE
@ INVTYPE_RANGED
@ INVTYPE_THROWN
@ INVTYPE_WAIST
@ INVTYPE_RANGEDRIGHT
@ INVTYPE_WRISTS
@ INVTYPE_WEAPON
@ INVTYPE_EQUIPABLE_SPELL_DEFENSIVE
@ INVTYPE_WEAPONMAINHAND
@ INVTYPE_EQUIPABLE_SPELL_MOBILITY
@ INVTYPE_WEAPONOFFHAND
@ INVTYPE_2HWEAPON
@ INVTYPE_BAG
@ INVTYPE_NECK
@ INVTYPE_SHOULDERS
@ INVTYPE_FEET
@ INVTYPE_NON_EQUIP
@ INVTYPE_AMMO
@ INVTYPE_QUIVER
@ INVTYPE_SHIELD
@ INVTYPE_TABARD
@ INVTYPE_LEGS
@ INVTYPE_CHEST
@ INVTYPE_HANDS
@ INVTYPE_PROFESSION_GEAR
HolidayIds
uint8 SheatheType
uint8 SubclassID
uint32 DurationInInventory
uint16 SocketMatchEnchantmentId
int32 ItemLevelOffsetCurveID
std::array< int32, MAX_ITEM_PROTO_FLAGS > Flags
std::array< int32, MAX_ITEM_PROTO_STATS > StatPercentEditor
std::array< uint16, MAX_ITEM_PROTO_ZONES > ZoneBound
int32 PlayerLevelToItemLevelCurveID
Trinity::RaceMask< int64 > AllowableRace
std::array< int32, MAX_ITEM_PROTO_STATS > StatModifierBonusStat
std::array< float, MAX_ITEM_PROTO_STATS > StatPercentageOfSocket
int32 ItemLevelOffsetItemLevel
std::array< uint8, MAX_ITEM_PROTO_SOCKETS > SocketType
bool IsVellum() const
uint32 GetRequiredSkillRank() const
uint32 GetBaseItemLevel() const
uint32 GetArea(uint32 index) const
uint32 GetQuality() const
HolidayIds GetHolidayID() const
float GetQualityModifier() const
int32 GetStatModifierBonusStat(uint32 index) const
bool IsPotion() const
uint32 GetDuration() const
uint32 GetBuyCount() const
int32 GetAllowableClass() const
uint32 GetContainerSlots() const
float GetPriceRandomValue() const
uint32 GetPageText() const
uint32 GetGemProperties() const
uint32 GetId() const
uint32 GetMaxStackSize() const
InventoryType GetInventoryType() const
bool IsRangedWeapon() const
bool IsCurrencyToken() const
SocketColor GetSocketColor(uint32 index) const
float GetDmgVariance() const
uint32 GetBuyPrice() const
ItemSheatheType GetSheatheType() const
bool HasFlag(ItemFlags4 flag) const
ItemBondingType GetBonding() const
uint32 GetItemSet() const
float GetStatPercentageOfSocket(uint32 index) const
uint32 GetScalingStatContentTuning() const
bool HasFlag(ItemFlags3 flag) const
uint32 GetItemLevelOffsetItemLevel() const
uint32 GetStartQuest() const
uint32 MinMoneyLoot
uint8 GetArtifactID() const
uint32 MaxMoneyLoot
uint32 GetMap() const
float GetRangedModRange() const
uint32 GetRequiredReputationFaction() const
ItemEntry const * BasicData
std::vector< ItemEffectEntry const * > Effects
bool IsCraftingReagent() const
bool IsConjuredConsumable() const
uint32 GetItemSquishEraId() const
uint32 GetRequiredReputationRank() const
ItemSparseEntry const * ExtendedData
uint32 GetItemLimitCategory() const
int32 QuestLogItemId
int32 GetBaseRequiredLevel() const
uint32 GetItemLevelOffsetCurveId() const
uint32 RandomBonusListTemplateId
bool HasFlag(ItemFlags flag) const
uint32 GetSubClass() const
uint32 GetSellPrice() const
bool HasFlag(ItemFlagsCustom customFlag) const
uint32 MaxDurability
uint32 GetOtherFactionItemId() const
bool IsArmor() const
Trinity::RaceMask< int64 > GetAllowableRace() const
bool HasFlag(ItemFlags2 flag) const
bool IsWeapon() const
uint32 GetRequiredSpell() const
uint8 GetRequiredExpansion() const
uint32 GetTotemCategory() const
uint32 ItemSpecClassMask
uint32 GetLockID() const
int32 GetStatPercentEditor(uint32 index) const
uint32 GetSocketBonus() const
uint32 GetClass() const
uint32 GetRequiredSkill() const
uint32 GetDamageType() const
float GetPriceVariance() const
uint32 GetMaxCount() const
uint32 GetPlayerLevelToItemLevelCurveId() const
uint32 GetDelay() const
uint32 GetBagFamily() const