AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ItemTemplate.h File Reference
#include "SharedDefines.h"
#include "WorldPacket.h"
#include <unordered_map>

Go to the source code of this file.

Classes

struct  _Damage
 
struct  _ItemStat
 
struct  _Spell
 
struct  _Socket
 
struct  ItemTemplate
 
struct  ItemLocale
 
struct  ItemSetNameEntry
 
struct  ItemSetNameLocale
 

Macros

#define MAX_ITEM_MOD   49
 
#define MAX_ITEM_SPELLTRIGGER   7
 
#define MAX_BIND_TYPE   6
 
#define SOCKET_COLOR_ALL   (SOCKET_COLOR_META | SOCKET_COLOR_RED | SOCKET_COLOR_YELLOW | SOCKET_COLOR_BLUE)
 
#define MAX_INVTYPE   29
 
#define MAX_ITEM_CLASS   17
 
#define MAX_ITEM_SUBCLASS_CONSUMABLE   9
 
#define MAX_ITEM_SUBCLASS_CONTAINER   9
 
#define ITEM_SUBCLASS_MASK_WEAPON_RANGED
 
#define MAX_ITEM_SUBCLASS_WEAPON   21
 
#define MAX_ITEM_SUBCLASS_GEM   9
 
#define MAX_ITEM_SUBCLASS_ARMOR   11
 
#define MAX_ITEM_SUBCLASS_REAGENT   1
 
#define MAX_ITEM_SUBCLASS_PROJECTILE   5
 
#define MAX_ITEM_SUBCLASS_TRADE_GOODS   16
 
#define MAX_ITEM_SUBCLASS_GENERIC   1
 
#define MAX_ITEM_SUBCLASS_RECIPE   11
 
#define MAX_ITEM_SUBCLASS_MONEY   1
 
#define MAX_ITEM_SUBCLASS_QUIVER   4
 
#define MAX_ITEM_SUBCLASS_QUEST   1
 
#define MAX_ITEM_SUBCLASS_KEY   2
 
#define MAX_ITEM_SUBCLASS_PERMANENT   1
 
#define MAX_ITEM_SUBCLASS_JUNK   6
 
#define MAX_ITEM_SUBCLASS_GLYPH   12
 
#define MAX_ITEM_PROTO_DAMAGES   2
 
#define MAX_ITEM_PROTO_SOCKETS   3
 
#define MAX_ITEM_PROTO_SPELLS   5
 
#define MAX_ITEM_PROTO_STATS   10
 

Typedefs

typedef std::unordered_map< uint32, ItemTemplateItemTemplateContainer
 

Enumerations

enum  ItemModType {
  ITEM_MOD_MANA = 0 ,
  ITEM_MOD_HEALTH = 1 ,
  ITEM_MOD_AGILITY = 3 ,
  ITEM_MOD_STRENGTH = 4 ,
  ITEM_MOD_INTELLECT = 5 ,
  ITEM_MOD_SPIRIT = 6 ,
  ITEM_MOD_STAMINA = 7 ,
  ITEM_MOD_DEFENSE_SKILL_RATING = 12 ,
  ITEM_MOD_DODGE_RATING = 13 ,
  ITEM_MOD_PARRY_RATING = 14 ,
  ITEM_MOD_BLOCK_RATING = 15 ,
  ITEM_MOD_HIT_MELEE_RATING = 16 ,
  ITEM_MOD_HIT_RANGED_RATING = 17 ,
  ITEM_MOD_HIT_SPELL_RATING = 18 ,
  ITEM_MOD_CRIT_MELEE_RATING = 19 ,
  ITEM_MOD_CRIT_RANGED_RATING = 20 ,
  ITEM_MOD_CRIT_SPELL_RATING = 21 ,
  ITEM_MOD_HIT_TAKEN_MELEE_RATING = 22 ,
  ITEM_MOD_HIT_TAKEN_RANGED_RATING = 23 ,
  ITEM_MOD_HIT_TAKEN_SPELL_RATING = 24 ,
  ITEM_MOD_CRIT_TAKEN_MELEE_RATING = 25 ,
  ITEM_MOD_CRIT_TAKEN_RANGED_RATING = 26 ,
  ITEM_MOD_CRIT_TAKEN_SPELL_RATING = 27 ,
  ITEM_MOD_HASTE_MELEE_RATING = 28 ,
  ITEM_MOD_HASTE_RANGED_RATING = 29 ,
  ITEM_MOD_HASTE_SPELL_RATING = 30 ,
  ITEM_MOD_HIT_RATING = 31 ,
  ITEM_MOD_CRIT_RATING = 32 ,
  ITEM_MOD_HIT_TAKEN_RATING = 33 ,
  ITEM_MOD_CRIT_TAKEN_RATING = 34 ,
  ITEM_MOD_RESILIENCE_RATING = 35 ,
  ITEM_MOD_HASTE_RATING = 36 ,
  ITEM_MOD_EXPERTISE_RATING = 37 ,
  ITEM_MOD_ATTACK_POWER = 38 ,
  ITEM_MOD_RANGED_ATTACK_POWER = 39 ,
  ITEM_MOD_SPELL_HEALING_DONE = 41 ,
  ITEM_MOD_SPELL_DAMAGE_DONE = 42 ,
  ITEM_MOD_MANA_REGENERATION = 43 ,
  ITEM_MOD_ARMOR_PENETRATION_RATING = 44 ,
  ITEM_MOD_SPELL_POWER = 45 ,
  ITEM_MOD_HEALTH_REGEN = 46 ,
  ITEM_MOD_SPELL_PENETRATION = 47 ,
  ITEM_MOD_BLOCK_VALUE = 48
}
 
enum  ItemSpelltriggerType {
  ITEM_SPELLTRIGGER_ON_USE = 0 ,
  ITEM_SPELLTRIGGER_ON_EQUIP = 1 ,
  ITEM_SPELLTRIGGER_CHANCE_ON_HIT = 2 ,
  ITEM_SPELLTRIGGER_SOULSTONE = 4 ,
  ITEM_SPELLTRIGGER_ON_NO_DELAY_USE = 5 ,
  ITEM_SPELLTRIGGER_LEARN_SPELL_ID = 6
}
 
enum  ItemBondingType {
  NO_BIND = 0 ,
  BIND_WHEN_PICKED_UP = 1 ,
  BIND_WHEN_EQUIPPED = 2 ,
  BIND_WHEN_USE = 3 ,
  BIND_QUEST_ITEM = 4 ,
  BIND_QUEST_ITEM1 = 5
}
 
enum  ItemFieldFlags : uint32 {
  ITEM_FIELD_FLAG_SOULBOUND = 0x00000001 ,
  ITEM_FIELD_FLAG_UNK1 = 0x00000002 ,
  ITEM_FIELD_FLAG_UNLOCKED = 0x00000004 ,
  ITEM_FIELD_FLAG_WRAPPED = 0x00000008 ,
  ITEM_FIELD_FLAG_UNK2 = 0x00000010 ,
  ITEM_FIELD_FLAG_UNK3 = 0x00000020 ,
  ITEM_FIELD_FLAG_UNK4 = 0x00000040 ,
  ITEM_FIELD_FLAG_UNK5 = 0x00000080 ,
  ITEM_FIELD_FLAG_BOP_TRADEABLE = 0x00000100 ,
  ITEM_FIELD_FLAG_READABLE = 0x00000200 ,
  ITEM_FIELD_FLAG_UNK6 = 0x00000400 ,
  ITEM_FIELD_FLAG_UNK7 = 0x00000800 ,
  ITEM_FIELD_FLAG_REFUNDABLE = 0x00001000 ,
  ITEM_FIELD_FLAG_UNK8 = 0x00002000 ,
  ITEM_FIELD_FLAG_UNK9 = 0x00004000 ,
  ITEM_FIELD_FLAG_UNK10 = 0x00008000 ,
  ITEM_FIELD_FLAG_UNK11 = 0x00010000 ,
  ITEM_FIELD_FLAG_UNK12 = 0x00020000 ,
  ITEM_FIELD_FLAG_UNK13 = 0x00040000 ,
  ITEM_FIELD_FLAG_UNK14 = 0x00080000 ,
  ITEM_FIELD_FLAG_UNK15 = 0x00100000 ,
  ITEM_FIELD_FLAG_UNK16 = 0x00200000 ,
  ITEM_FIELD_FLAG_UNK17 = 0x00400000 ,
  ITEM_FIELD_FLAG_UNK18 = 0x00800000 ,
  ITEM_FIELD_FLAG_UNK19 = 0x01000000 ,
  ITEM_FIELD_FLAG_UNK20 = 0x02000000 ,
  ITEM_FIELD_FLAG_UNK21 = 0x04000000 ,
  ITEM_FIELD_FLAG_UNK22 = 0x08000000 ,
  ITEM_FIELD_FLAG_UNK23 = 0x10000000 ,
  ITEM_FIELD_FLAG_UNK24 = 0x20000000 ,
  ITEM_FIELD_FLAG_UNK25 = 0x40000000 ,
  ITEM_FIELD_FLAG_UNK26 = 0x80000000 ,
  ITEM_FLAG_MAIL_TEXT_MASK = ITEM_FIELD_FLAG_READABLE | ITEM_FIELD_FLAG_UNK13 | ITEM_FIELD_FLAG_UNK14
}
 
enum  ItemFlags : uint32 {
  ITEM_FLAG_NO_PICKUP = 0x00000001 ,
  ITEM_FLAG_CONJURED = 0x00000002 ,
  ITEM_FLAG_HAS_LOOT = 0x00000004 ,
  ITEM_FLAG_HEROIC_TOOLTIP = 0x00000008 ,
  ITEM_FLAG_DEPRECATED = 0x00000010 ,
  ITEM_FLAG_NO_USER_DESTROY = 0x00000020 ,
  ITEM_FLAG_PLAYERCAST = 0x00000040 ,
  ITEM_FLAG_NO_EQUIP_COOLDOWN = 0x00000080 ,
  ITEM_FLAG_MULTI_LOOT_QUEST = 0x00000100 ,
  ITEM_FLAG_IS_WRAPPER = 0x00000200 ,
  ITEM_FLAG_USES_RESOURCES = 0x00000400 ,
  ITEM_FLAG_MULTI_DROP = 0x00000800 ,
  ITEM_FLAG_ITEM_PURCHASE_RECORD = 0x00001000 ,
  ITEM_FLAG_PETITION = 0x00002000 ,
  ITEM_FLAG_HAS_TEXT = 0x00004000 ,
  ITEM_FLAG_NO_DISENCHANT = 0x00008000 ,
  ITEM_FLAG_REAL_DURATION = 0x00010000 ,
  ITEM_FLAG_NO_CREATOR = 0x00020000 ,
  ITEM_FLAG_IS_PROSPECTABLE = 0x00040000 ,
  ITEM_FLAG_UNIQUE_EQUIPPABLE = 0x00080000 ,
  ITEM_FLAG_IGNORE_FOR_AURAS = 0x00100000 ,
  ITEM_FLAG_IGNORE_DEFAULT_ARENA_RESTRICTIONS = 0x00200000 ,
  ITEM_FLAG_NO_DURABILITY_LOSS = 0x00400000 ,
  ITEM_FLAG_USE_WHEN_SHAPESHIFTED = 0x00800000 ,
  ITEM_FLAG_HAS_QUEST_GLOW = 0x01000000 ,
  ITEM_FLAG_HIDE_UNUSABLE_RECIPE = 0x02000000 ,
  ITEM_FLAG_NOT_USEABLE_IN_ARENA = 0x04000000 ,
  ITEM_FLAG_IS_BOUND_TO_ACCOUNT = 0x08000000 ,
  ITEM_FLAG_NO_REAGENT_COST = 0x10000000 ,
  ITEM_FLAG_IS_MILLABLE = 0x20000000 ,
  ITEM_FLAG_REPORT_TO_GUILD_CHAT = 0x40000000 ,
  ITEM_FLAG_NO_PROGRESSIVE_LOOT = 0x80000000
}
 
enum  ItemFlags2 : uint32 {
  ITEM_FLAG2_FACTION_HORDE = 0x00000001 ,
  ITEM_FLAG2_FACTION_ALLIANCE = 0x00000002 ,
  ITEM_FLAG2_DONT_IGNORE_BUY_PRICE = 0x00000004 ,
  ITEM_FLAG2_CLASSIFY_AS_CASTER = 0x00000008 ,
  ITEM_FLAG2_CLASSIFY_AS_PHYSICAL = 0x00000010 ,
  ITEM_FLAG2_EVERYONE_CAN_ROLL_NEED = 0x00000020 ,
  ITEM_FLAG2_NO_TRADE_BIND_ON_ACQUIRE = 0x00000040 ,
  ITEM_FLAG2_CAN_TRADE_BIND_ON_ACQUIRE = 0x00000080 ,
  ITEM_FLAG2_CAN_ONLY_ROLL_GREED = 0x00000100 ,
  ITEM_FLAG2_CASTER_WEAPON = 0x00000200 ,
  ITEM_FLAG2_DELETE_ON_LOGIN = 0x00000400 ,
  ITEM_FLAG2_INTERNAL_ITEM = 0x00000800 ,
  ITEM_FLAG2_NO_VENDOR_VALUE = 0x00001000 ,
  ITEM_FLAG2_SHOW_BEFORE_DISCOVERED = 0x00002000 ,
  ITEM_FLAG2_OVERRIDE_GOLD_COST = 0x00004000 ,
  ITEM_FLAG2_IGNORE_DEFAULT_RATED_BG_RESTRICTIONS = 0x00008000 ,
  ITEM_FLAG2_NOT_USABLE_IN_RATED_BG = 0x00010000 ,
  ITEM_FLAG2_BNET_ACCOUNT_TRADE_OK = 0x00020000 ,
  ITEM_FLAG2_CONFIRM_BEFORE_USE = 0x00040000 ,
  ITEM_FLAG2_REEVALUATE_BONDING_ON_TRANSFORM = 0x00080000 ,
  ITEM_FLAG2_NO_TRANSFORM_ON_CHARGE_DEPLETION = 0x00100000 ,
  ITEM_FLAG2_NO_ALTER_ITEM_VISUAL = 0x00200000 ,
  ITEM_FLAG2_NO_SOURCE_FOR_ITEM_VISUAL = 0x00400000 ,
  ITEM_FLAG2_IGNORE_QUALITY_FOR_ITEM_VISUAL_SOURCE = 0x00800000 ,
  ITEM_FLAG2_NO_DURABILITY = 0x01000000 ,
  ITEM_FLAG2_ROLE_TANK = 0x02000000 ,
  ITEM_FLAG2_ROLE_HEALER = 0x04000000 ,
  ITEM_FLAG2_ROLE_DAMAGE = 0x08000000 ,
  ITEM_FLAG2_CAN_DROP_IN_CHALLENGE_MODE = 0x10000000 ,
  ITEM_FLAG2_NEVER_STACK_IN_LOOT_UI = 0x20000000 ,
  ITEM_FLAG2_DISENCHANT_TO_LOOT_TABLE = 0x40000000 ,
  ITEM_FLAG2_USED_IN_A_TRADESKILL = 0x80000000
}
 
enum  ItemFlagsCustom : uint32 {
  ITEM_FLAGS_CU_DURATION_REAL_TIME = 0x0001 ,
  ITEM_FLAGS_CU_IGNORE_QUEST_STATUS = 0x0002 ,
  ITEM_FLAGS_CU_FOLLOW_LOOT_RULES = 0x0004
}
 
enum  BAG_FAMILY_MASK {
  BAG_FAMILY_MASK_NONE = 0x00000000 ,
  BAG_FAMILY_MASK_ARROWS = 0x00000001 ,
  BAG_FAMILY_MASK_BULLETS = 0x00000002 ,
  BAG_FAMILY_MASK_SOUL_SHARDS = 0x00000004 ,
  BAG_FAMILY_MASK_LEATHERWORKING_SUPP = 0x00000008 ,
  BAG_FAMILY_MASK_INSCRIPTION_SUPP = 0x00000010 ,
  BAG_FAMILY_MASK_HERBS = 0x00000020 ,
  BAG_FAMILY_MASK_ENCHANTING_SUPP = 0x00000040 ,
  BAG_FAMILY_MASK_ENGINEERING_SUPP = 0x00000080 ,
  BAG_FAMILY_MASK_KEYS = 0x00000100 ,
  BAG_FAMILY_MASK_GEMS = 0x00000200 ,
  BAG_FAMILY_MASK_MINING_SUPP = 0x00000400 ,
  BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT = 0x00000800 ,
  BAG_FAMILY_MASK_VANITY_PETS = 0x00001000 ,
  BAG_FAMILY_MASK_CURRENCY_TOKENS = 0x00002000 ,
  BAG_FAMILY_MASK_QUEST_ITEMS = 0x00004000
}
 
enum  SocketColor {
  SOCKET_COLOR_META = 1 ,
  SOCKET_COLOR_RED = 2 ,
  SOCKET_COLOR_YELLOW = 4 ,
  SOCKET_COLOR_BLUE = 8
}
 
enum  InventoryType {
  INVTYPE_NON_EQUIP = 0 ,
  INVTYPE_HEAD = 1 ,
  INVTYPE_NECK = 2 ,
  INVTYPE_SHOULDERS = 3 ,
  INVTYPE_BODY = 4 ,
  INVTYPE_CHEST = 5 ,
  INVTYPE_WAIST = 6 ,
  INVTYPE_LEGS = 7 ,
  INVTYPE_FEET = 8 ,
  INVTYPE_WRISTS = 9 ,
  INVTYPE_HANDS = 10 ,
  INVTYPE_FINGER = 11 ,
  INVTYPE_TRINKET = 12 ,
  INVTYPE_WEAPON = 13 ,
  INVTYPE_SHIELD = 14 ,
  INVTYPE_RANGED = 15 ,
  INVTYPE_CLOAK = 16 ,
  INVTYPE_2HWEAPON = 17 ,
  INVTYPE_BAG = 18 ,
  INVTYPE_TABARD = 19 ,
  INVTYPE_ROBE = 20 ,
  INVTYPE_WEAPONMAINHAND = 21 ,
  INVTYPE_WEAPONOFFHAND = 22 ,
  INVTYPE_HOLDABLE = 23 ,
  INVTYPE_AMMO = 24 ,
  INVTYPE_THROWN = 25 ,
  INVTYPE_RANGEDRIGHT = 26 ,
  INVTYPE_QUIVER = 27 ,
  INVTYPE_RELIC = 28
}
 
enum  ItemClass {
  ITEM_CLASS_CONSUMABLE = 0 ,
  ITEM_CLASS_CONTAINER = 1 ,
  ITEM_CLASS_WEAPON = 2 ,
  ITEM_CLASS_GEM = 3 ,
  ITEM_CLASS_ARMOR = 4 ,
  ITEM_CLASS_REAGENT = 5 ,
  ITEM_CLASS_PROJECTILE = 6 ,
  ITEM_CLASS_TRADE_GOODS = 7 ,
  ITEM_CLASS_GENERIC = 8 ,
  ITEM_CLASS_RECIPE = 9 ,
  ITEM_CLASS_MONEY = 10 ,
  ITEM_CLASS_QUIVER = 11 ,
  ITEM_CLASS_QUEST = 12 ,
  ITEM_CLASS_KEY = 13 ,
  ITEM_CLASS_PERMANENT = 14 ,
  ITEM_CLASS_MISC = 15 ,
  ITEM_CLASS_GLYPH = 16
}
 
enum  ItemSubclassConsumable {
  ITEM_SUBCLASS_CONSUMABLE = 0 ,
  ITEM_SUBCLASS_POTION = 1 ,
  ITEM_SUBCLASS_ELIXIR = 2 ,
  ITEM_SUBCLASS_FLASK = 3 ,
  ITEM_SUBCLASS_SCROLL = 4 ,
  ITEM_SUBCLASS_FOOD = 5 ,
  ITEM_SUBCLASS_ITEM_ENHANCEMENT = 6 ,
  ITEM_SUBCLASS_BANDAGE = 7 ,
  ITEM_SUBCLASS_CONSUMABLE_OTHER = 8
}
 
enum  ItemSubclassContainer {
  ITEM_SUBCLASS_CONTAINER = 0 ,
  ITEM_SUBCLASS_SOUL_CONTAINER = 1 ,
  ITEM_SUBCLASS_HERB_CONTAINER = 2 ,
  ITEM_SUBCLASS_ENCHANTING_CONTAINER = 3 ,
  ITEM_SUBCLASS_ENGINEERING_CONTAINER = 4 ,
  ITEM_SUBCLASS_GEM_CONTAINER = 5 ,
  ITEM_SUBCLASS_MINING_CONTAINER = 6 ,
  ITEM_SUBCLASS_LEATHERWORKING_CONTAINER = 7 ,
  ITEM_SUBCLASS_INSCRIPTION_CONTAINER = 8
}
 
enum  ItemSubclassWeapon {
  ITEM_SUBCLASS_WEAPON_AXE = 0 ,
  ITEM_SUBCLASS_WEAPON_AXE2 = 1 ,
  ITEM_SUBCLASS_WEAPON_BOW = 2 ,
  ITEM_SUBCLASS_WEAPON_GUN = 3 ,
  ITEM_SUBCLASS_WEAPON_MACE = 4 ,
  ITEM_SUBCLASS_WEAPON_MACE2 = 5 ,
  ITEM_SUBCLASS_WEAPON_POLEARM = 6 ,
  ITEM_SUBCLASS_WEAPON_SWORD = 7 ,
  ITEM_SUBCLASS_WEAPON_SWORD2 = 8 ,
  ITEM_SUBCLASS_WEAPON_obsolete = 9 ,
  ITEM_SUBCLASS_WEAPON_STAFF = 10 ,
  ITEM_SUBCLASS_WEAPON_EXOTIC = 11 ,
  ITEM_SUBCLASS_WEAPON_EXOTIC2 = 12 ,
  ITEM_SUBCLASS_WEAPON_FIST = 13 ,
  ITEM_SUBCLASS_WEAPON_MISC = 14 ,
  ITEM_SUBCLASS_WEAPON_DAGGER = 15 ,
  ITEM_SUBCLASS_WEAPON_THROWN = 16 ,
  ITEM_SUBCLASS_WEAPON_SPEAR = 17 ,
  ITEM_SUBCLASS_WEAPON_CROSSBOW = 18 ,
  ITEM_SUBCLASS_WEAPON_WAND = 19 ,
  ITEM_SUBCLASS_WEAPON_FISHING_POLE = 20
}
 
enum  ItemSubclassGem {
  ITEM_SUBCLASS_GEM_RED = 0 ,
  ITEM_SUBCLASS_GEM_BLUE = 1 ,
  ITEM_SUBCLASS_GEM_YELLOW = 2 ,
  ITEM_SUBCLASS_GEM_PURPLE = 3 ,
  ITEM_SUBCLASS_GEM_GREEN = 4 ,
  ITEM_SUBCLASS_GEM_ORANGE = 5 ,
  ITEM_SUBCLASS_GEM_META = 6 ,
  ITEM_SUBCLASS_GEM_SIMPLE = 7 ,
  ITEM_SUBCLASS_GEM_PRISMATIC = 8
}
 
enum  ItemSubclassArmor {
  ITEM_SUBCLASS_ARMOR_MISC = 0 ,
  ITEM_SUBCLASS_ARMOR_CLOTH = 1 ,
  ITEM_SUBCLASS_ARMOR_LEATHER = 2 ,
  ITEM_SUBCLASS_ARMOR_MAIL = 3 ,
  ITEM_SUBCLASS_ARMOR_PLATE = 4 ,
  ITEM_SUBCLASS_ARMOR_BUCKLER = 5 ,
  ITEM_SUBCLASS_ARMOR_SHIELD = 6 ,
  ITEM_SUBCLASS_ARMOR_LIBRAM = 7 ,
  ITEM_SUBCLASS_ARMOR_IDOL = 8 ,
  ITEM_SUBCLASS_ARMOR_TOTEM = 9 ,
  ITEM_SUBCLASS_ARMOR_SIGIL = 10
}
 
enum  ItemSubclassReagent { ITEM_SUBCLASS_REAGENT = 0 }
 
enum  ItemSubclassProjectile {
  ITEM_SUBCLASS_WAND = 0 ,
  ITEM_SUBCLASS_BOLT = 1 ,
  ITEM_SUBCLASS_ARROW = 2 ,
  ITEM_SUBCLASS_BULLET = 3 ,
  ITEM_SUBCLASS_THROWN = 4
}
 
enum  ItemSubclassTradeGoods {
  ITEM_SUBCLASS_TRADE_GOODS = 0 ,
  ITEM_SUBCLASS_PARTS = 1 ,
  ITEM_SUBCLASS_EXPLOSIVES = 2 ,
  ITEM_SUBCLASS_DEVICES = 3 ,
  ITEM_SUBCLASS_JEWELCRAFTING = 4 ,
  ITEM_SUBCLASS_CLOTH = 5 ,
  ITEM_SUBCLASS_LEATHER = 6 ,
  ITEM_SUBCLASS_METAL_STONE = 7 ,
  ITEM_SUBCLASS_MEAT = 8 ,
  ITEM_SUBCLASS_HERB = 9 ,
  ITEM_SUBCLASS_ELEMENTAL = 10 ,
  ITEM_SUBCLASS_TRADE_GOODS_OTHER = 11 ,
  ITEM_SUBCLASS_ENCHANTING = 12 ,
  ITEM_SUBCLASS_MATERIAL = 13 ,
  ITEM_SUBCLASS_ARMOR_ENCHANTMENT = 14 ,
  ITEM_SUBCLASS_WEAPON_ENCHANTMENT = 15
}
 
enum  ItemSubclassGeneric { ITEM_SUBCLASS_GENERIC = 0 }
 
enum  ItemSubclassRecipe {
  ITEM_SUBCLASS_BOOK = 0 ,
  ITEM_SUBCLASS_LEATHERWORKING_PATTERN = 1 ,
  ITEM_SUBCLASS_TAILORING_PATTERN = 2 ,
  ITEM_SUBCLASS_ENGINEERING_SCHEMATIC = 3 ,
  ITEM_SUBCLASS_BLACKSMITHING = 4 ,
  ITEM_SUBCLASS_COOKING_RECIPE = 5 ,
  ITEM_SUBCLASS_ALCHEMY_RECIPE = 6 ,
  ITEM_SUBCLASS_FIRST_AID_MANUAL = 7 ,
  ITEM_SUBCLASS_ENCHANTING_FORMULA = 8 ,
  ITEM_SUBCLASS_FISHING_MANUAL = 9 ,
  ITEM_SUBCLASS_JEWELCRAFTING_RECIPE = 10
}
 
enum  ItemSubclassMoney { ITEM_SUBCLASS_MONEY = 0 }
 
enum  ItemSubclassQuiver {
  ITEM_SUBCLASS_QUIVER0 = 0 ,
  ITEM_SUBCLASS_QUIVER1 = 1 ,
  ITEM_SUBCLASS_QUIVER = 2 ,
  ITEM_SUBCLASS_AMMO_POUCH = 3
}
 
enum  ItemSubclassQuest { ITEM_SUBCLASS_QUEST = 0 }
 
enum  ItemSubclassKey {
  ITEM_SUBCLASS_KEY = 0 ,
  ITEM_SUBCLASS_LOCKPICK = 1
}
 
enum  ItemSubclassPermanent { ITEM_SUBCLASS_PERMANENT = 0 }
 
enum  ItemSubclassJunk {
  ITEM_SUBCLASS_JUNK = 0 ,
  ITEM_SUBCLASS_JUNK_REAGENT = 1 ,
  ITEM_SUBCLASS_JUNK_PET = 2 ,
  ITEM_SUBCLASS_JUNK_HOLIDAY = 3 ,
  ITEM_SUBCLASS_JUNK_OTHER = 4 ,
  ITEM_SUBCLASS_JUNK_MOUNT = 5
}
 
enum  ItemSubclassGlyph {
  ITEM_SUBCLASS_GLYPH_WARRIOR = 1 ,
  ITEM_SUBCLASS_GLYPH_PALADIN = 2 ,
  ITEM_SUBCLASS_GLYPH_HUNTER = 3 ,
  ITEM_SUBCLASS_GLYPH_ROGUE = 4 ,
  ITEM_SUBCLASS_GLYPH_PRIEST = 5 ,
  ITEM_SUBCLASS_GLYPH_DEATH_KNIGHT = 6 ,
  ITEM_SUBCLASS_GLYPH_SHAMAN = 7 ,
  ITEM_SUBCLASS_GLYPH_MAGE = 8 ,
  ITEM_SUBCLASS_GLYPH_WARLOCK = 9 ,
  ITEM_SUBCLASS_GLYPH_DRUID = 11
}
 

Functions

uint8 ItemSubClassToDurabilityMultiplierId (uint32 ItemClass, uint32 ItemSubClass)
 

Variables

const uint32 MaxItemSubclassValues [MAX_ITEM_CLASS]
 

Macro Definition Documentation

◆ ITEM_SUBCLASS_MASK_WEAPON_RANGED

#define ITEM_SUBCLASS_MASK_WEAPON_RANGED
Value:
(\
@ ITEM_SUBCLASS_WEAPON_CROSSBOW
Definition ItemTemplate.h:362
@ ITEM_SUBCLASS_WEAPON_GUN
Definition ItemTemplate.h:347
@ ITEM_SUBCLASS_WEAPON_BOW
Definition ItemTemplate.h:346
@ ITEM_SUBCLASS_WEAPON_THROWN
Definition ItemTemplate.h:360
373{
383};
384
385#define MAX_ITEM_SUBCLASS_GEM 9
386
388{
400};
401
402#define MAX_ITEM_SUBCLASS_ARMOR 11
403
405{
407};
408
409#define MAX_ITEM_SUBCLASS_REAGENT 1
410
412{
413 ITEM_SUBCLASS_WAND = 0, // ABS
414 ITEM_SUBCLASS_BOLT = 1, // ABS
417 ITEM_SUBCLASS_THROWN = 4 // ABS
418};
419
420#define MAX_ITEM_SUBCLASS_PROJECTILE 5
421
423{
440};
441
442#define MAX_ITEM_SUBCLASS_TRADE_GOODS 16
443
445{
447};
448
449#define MAX_ITEM_SUBCLASS_GENERIC 1
450
452{
464};
465
466#define MAX_ITEM_SUBCLASS_RECIPE 11
467
469{
471};
472
473#define MAX_ITEM_SUBCLASS_MONEY 1
474
476{
477 ITEM_SUBCLASS_QUIVER0 = 0, // ABS
478 ITEM_SUBCLASS_QUIVER1 = 1, // ABS
481};
482
483#define MAX_ITEM_SUBCLASS_QUIVER 4
484
486{
488};
489
490#define MAX_ITEM_SUBCLASS_QUEST 1
491
493{
496};
497
498#define MAX_ITEM_SUBCLASS_KEY 2
499
501{
503};
504
505#define MAX_ITEM_SUBCLASS_PERMANENT 1
506
508{
515};
516
517#define MAX_ITEM_SUBCLASS_JUNK 6
518
520{
531};
532
533#define MAX_ITEM_SUBCLASS_GLYPH 12
534
536{
554};
555
557{
558 switch (ItemClass)
559 {
561 return ItemSubClass;
562 case ITEM_CLASS_ARMOR:
563 return ItemSubClass + 21;
564 default:
565 return 0;
566 }
567}
568
569// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push, N), also any gcc version not support it at some platform
570#if defined(__GNUC__)
571#pragma pack(1)
572#else
573#pragma pack(push, 1)
574#endif
575
576struct _Damage
577{
578 float DamageMin;
579 float DamageMax;
580 uint32 DamageType; // id from Resistances.dbc
581};
582
583struct _ItemStat
584{
587};
588struct _Spell
589{
590 int32 SpellId; // id from Spell.dbc
593 float SpellPPMRate;
595 uint32 SpellCategory; // id from SpellCategory.dbc
597};
598
599struct _Socket
600{
603};
604
605// GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform
606#if defined(__GNUC__)
607#pragma pack()
608#else
609#pragma pack(pop)
610#endif
611
612#define MAX_ITEM_PROTO_DAMAGES 2 // changed in 3.1.0
613#define MAX_ITEM_PROTO_SOCKETS 3
614#define MAX_ITEM_PROTO_SPELLS 5
615#define MAX_ITEM_PROTO_STATS 10
616
617struct ItemTemplate
618{
620 uint32 Class; // id from ItemClass.dbc
621 uint32 SubClass; // id from ItemSubClass.dbc
622 int32 SoundOverrideSubclass; // < 0: id from ItemSubClass.dbc, used to override weapon sound from actual SubClass
623 std::string Name1;
624 uint32 DisplayInfoID; // id from ItemDisplayInfo.dbc
636 uint32 RequiredSkill; // id from SkillLine.dbc
638 uint32 RequiredSpell; // id from Spell.dbc
641 uint32 RequiredReputationFaction; // id from Faction.dbc
643 int32 MaxCount; // <= 0: no limit
644 int32 Stackable; // 0: not allowed, -1: put in player coin info tab and don't limit stacking (so 1 slot)
648 uint32 ScalingStatDistribution; // id from ScalingStatDistribution.dbc
649 uint32 ScalingStatValue; // mask for selecting column in ScalingStatValues.dbc
660 float RangedModRange;
663 std::string Description;
667 uint32 StartQuest; // id from QuestCache.wdb
669 int32 Material; // id from Material.dbc
671 int32 RandomProperty; // id from ItemRandomProperties.dbc
672 int32 RandomSuffix; // id from ItemRandomSuffix.dbc
674 uint32 ItemSet; // id from ItemSet.dbc
676 uint32 Area; // id from AreaTable.dbc
677 uint32 Map; // id from Map.dbc
678 uint32 BagFamily; // bit mask (1 << id from ItemBagFamily.dbc)
679 uint32 TotemCategory; // id from TotemCategory.dbc
681 uint32 socketBonus; // id from SpellItemEnchantment.dbc
682 uint32 GemProperties; // id from GemProperties.dbc
686 uint32 ItemLimitCategory; // id from ItemLimitCategory.dbc
687 uint32 HolidayId; // id from Holidays.dbc
694 WorldPacket queryData; // pussywizard
695
696 // helpers
697 [[nodiscard]] bool HasSignature() const
698 {
699 return GetMaxStackSize() == 1 &&
703 ItemId != 6948; /*Hearthstone*/
704 }
705
706 [[nodiscard]] bool CanChangeEquipStateInCombat() const
707 {
708 switch (InventoryType)
709 {
710 case INVTYPE_RELIC:
711 case INVTYPE_SHIELD:
712 case INVTYPE_HOLDABLE:
713 return true;
714 }
715
716 switch (Class)
717 {
720 return true;
721 }
722
723 return false;
724 }
725
726 [[nodiscard]] bool IsCurrencyToken() const { return BagFamily & BAG_FAMILY_MASK_CURRENCY_TOKENS; }
727
728 [[nodiscard]] uint32 GetMaxStackSize() const
729 {
730 return (Stackable == 2147483647 || Stackable <= 0) ? uint32(0x7FFFFFFF - 1) : uint32(Stackable);
731 }
732
733 [[nodiscard]] float getDPS() const
734 {
735 if (Delay == 0)
736 return 0;
737 float temp = 0;
738 for (auto i : Damage)
739 temp += i.DamageMin + i.DamageMax;
740 return temp * 500 / Delay;
741 }
742
743 [[nodiscard]] int32 getFeralBonus(int32 extraDPS = 0) const
744 {
745 constexpr uint32 feralApEnabledInventoryTypeMaks = 1 << INVTYPE_WEAPON | 1 << INVTYPE_2HWEAPON | 1 << INVTYPE_WEAPONMAINHAND | 1 << INVTYPE_WEAPONOFFHAND;
746
747 // 0x02A5F3 - is mask for Melee weapon from ItemSubClassMask.dbc
748 if (Class == ITEM_CLASS_WEAPON && (1 << InventoryType) & feralApEnabledInventoryTypeMaks)
749 {
750 int32 bonus = int32((extraDPS + getDPS()) * 14.0f) - 767;
751 if (bonus < 0)
752 return 0;
753 return bonus;
754 }
755 return 0;
756 }
757
758 [[nodiscard]] float GetItemLevelIncludingQuality(uint8 pLevel) const
759 {
760 auto itemLevel = (float)ItemLevel;
761 switch (Quality)
762 {
766 itemLevel -= 26.0f;
767 break;
769 itemLevel -= 13.0f;
770 break;
772 itemLevel = pLevel * 2.33f;
773 break;
777 default:
778 break;
779 }
780 return std::max<float>(0.f, itemLevel);
781 }
782
783 [[nodiscard]] uint32 GetSkill() const
784 {
785 const static uint32 item_weapon_skills[MAX_ITEM_SUBCLASS_WEAPON] =
786 {
792 };
793
794 const static uint32 item_armor_skills[MAX_ITEM_SUBCLASS_ARMOR] =
795 {
797 };
798
799 switch (Class)
800 {
803 return 0;
804 else
805 return item_weapon_skills[SubClass];
806
807 case ITEM_CLASS_ARMOR:
809 return 0;
810 else
811 return item_armor_skills[SubClass];
812
813 default:
814 return 0;
815 }
816 }
817
818 [[nodiscard]] bool IsPotion() const { return Class == ITEM_CLASS_CONSUMABLE && SubClass == ITEM_SUBCLASS_POTION; }
819 [[nodiscard]] bool IsWeaponVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT; }
820 [[nodiscard]] bool IsArmorVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_ARMOR_ENCHANTMENT; }
821 [[nodiscard]] bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && HasFlag(ITEM_FLAG_CONJURED); }
822
823 [[nodiscard]] bool HasStat(ItemModType stat) const;
824 [[nodiscard]] bool HasSpellPowerStat() const;
825
826 [[nodiscard]] bool HasFlag(ItemFlags flag) const { return (Flags & flag) != 0; }
827 [[nodiscard]] bool HasFlag2(ItemFlags2 flag) const { return (Flags2 & flag) != 0; }
828 [[nodiscard]] bool HasFlagCu(ItemFlagsCustom flag) const { return (FlagsCu & flag) != 0; }
829
830 void InitializeQueryData();
831};
832
833// Benchmarked: Faster than std::map (insert/find)
834typedef std::unordered_map<uint32, ItemTemplate> ItemTemplateContainer;
835
836struct ItemLocale
837{
838 std::vector<std::string> Name;
839 std::vector<std::string> Description;
840};
841
842struct ItemSetNameEntry
843{
844 std::string name;
846};
847
849{
850 std::vector<std::string> Name;
851};
852
853#endif
Spells
Definition BattlegroundIC.h:712
std::int32_t int32
Definition Define.h:103
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
#define MAX_ITEM_SUBCLASS_MONEY
Definition ItemTemplate.h:474
ItemFlags2
Definition ItemTemplate.h:182
ItemSubclassGlyph
Definition ItemTemplate.h:521
@ ITEM_SUBCLASS_GLYPH_WARLOCK
Definition ItemTemplate.h:530
@ ITEM_SUBCLASS_GLYPH_PRIEST
Definition ItemTemplate.h:526
@ ITEM_SUBCLASS_GLYPH_WARRIOR
Definition ItemTemplate.h:522
@ ITEM_SUBCLASS_GLYPH_ROGUE
Definition ItemTemplate.h:525
@ ITEM_SUBCLASS_GLYPH_HUNTER
Definition ItemTemplate.h:524
@ ITEM_SUBCLASS_GLYPH_SHAMAN
Definition ItemTemplate.h:528
@ ITEM_SUBCLASS_GLYPH_DEATH_KNIGHT
Definition ItemTemplate.h:527
@ ITEM_SUBCLASS_GLYPH_PALADIN
Definition ItemTemplate.h:523
@ ITEM_SUBCLASS_GLYPH_MAGE
Definition ItemTemplate.h:529
@ ITEM_SUBCLASS_GLYPH_DRUID
Definition ItemTemplate.h:531
#define MAX_ITEM_SUBCLASS_RECIPE
Definition ItemTemplate.h:467
#define MAX_ITEM_SUBCLASS_KEY
Definition ItemTemplate.h:499
InventoryType
Definition ItemTemplate.h:255
@ INVTYPE_HOLDABLE
Definition ItemTemplate.h:279
@ INVTYPE_RELIC
Definition ItemTemplate.h:284
@ INVTYPE_WEAPON
Definition ItemTemplate.h:269
@ INVTYPE_WEAPONMAINHAND
Definition ItemTemplate.h:277
@ INVTYPE_WEAPONOFFHAND
Definition ItemTemplate.h:278
@ INVTYPE_2HWEAPON
Definition ItemTemplate.h:273
@ INVTYPE_SHIELD
Definition ItemTemplate.h:270
#define MAX_ITEM_SUBCLASS_GENERIC
Definition ItemTemplate.h:450
std::unordered_map< uint32, ItemTemplate > ItemTemplateContainer
Definition ItemTemplate.h:835
@ BAG_FAMILY_MASK_CURRENCY_TOKENS
Definition ItemTemplate.h:240
ItemSubclassQuiver
Definition ItemTemplate.h:477
@ ITEM_SUBCLASS_QUIVER1
Definition ItemTemplate.h:479
@ ITEM_SUBCLASS_QUIVER0
Definition ItemTemplate.h:478
@ ITEM_SUBCLASS_QUIVER
Definition ItemTemplate.h:480
@ ITEM_SUBCLASS_AMMO_POUCH
Definition ItemTemplate.h:481
ItemFlags
Definition ItemTemplate.h:146
@ ITEM_FLAG_NO_CREATOR
Definition ItemTemplate.h:164
@ ITEM_FLAG_CONJURED
Definition ItemTemplate.h:148
ItemModType
Definition ItemTemplate.h:26
#define MAX_ITEM_SUBCLASS_REAGENT
Definition ItemTemplate.h:410
uint8 ItemSubClassToDurabilityMultiplierId(uint32 ItemClass, uint32 ItemSubClass)
Definition ItemTemplate.h:557
#define MAX_ITEM_CLASS
Definition ItemTemplate.h:310
ItemSubclassArmor
Definition ItemTemplate.h:389
@ ITEM_SUBCLASS_ARMOR_MAIL
Definition ItemTemplate.h:393
@ ITEM_SUBCLASS_ARMOR_BUCKLER
Definition ItemTemplate.h:395
@ ITEM_SUBCLASS_ARMOR_LIBRAM
Definition ItemTemplate.h:397
@ ITEM_SUBCLASS_ARMOR_CLOTH
Definition ItemTemplate.h:391
@ ITEM_SUBCLASS_ARMOR_MISC
Definition ItemTemplate.h:390
@ ITEM_SUBCLASS_ARMOR_LEATHER
Definition ItemTemplate.h:392
@ ITEM_SUBCLASS_ARMOR_SHIELD
Definition ItemTemplate.h:396
@ ITEM_SUBCLASS_ARMOR_SIGIL
Definition ItemTemplate.h:400
@ ITEM_SUBCLASS_ARMOR_PLATE
Definition ItemTemplate.h:394
@ ITEM_SUBCLASS_ARMOR_TOTEM
Definition ItemTemplate.h:399
@ ITEM_SUBCLASS_ARMOR_IDOL
Definition ItemTemplate.h:398
#define MAX_ITEM_SUBCLASS_PERMANENT
Definition ItemTemplate.h:506
ItemSubclassProjectile
Definition ItemTemplate.h:413
@ ITEM_SUBCLASS_ARROW
Definition ItemTemplate.h:416
@ ITEM_SUBCLASS_THROWN
Definition ItemTemplate.h:418
@ ITEM_SUBCLASS_BULLET
Definition ItemTemplate.h:417
@ ITEM_SUBCLASS_BOLT
Definition ItemTemplate.h:415
@ ITEM_SUBCLASS_WAND
Definition ItemTemplate.h:414
ItemSubclassTradeGoods
Definition ItemTemplate.h:424
@ ITEM_SUBCLASS_PARTS
Definition ItemTemplate.h:426
@ ITEM_SUBCLASS_ENCHANTING
Definition ItemTemplate.h:437
@ ITEM_SUBCLASS_TRADE_GOODS
Definition ItemTemplate.h:425
@ ITEM_SUBCLASS_HERB
Definition ItemTemplate.h:434
@ ITEM_SUBCLASS_ARMOR_ENCHANTMENT
Definition ItemTemplate.h:439
@ ITEM_SUBCLASS_EXPLOSIVES
Definition ItemTemplate.h:427
@ ITEM_SUBCLASS_TRADE_GOODS_OTHER
Definition ItemTemplate.h:436
@ ITEM_SUBCLASS_METAL_STONE
Definition ItemTemplate.h:432
@ ITEM_SUBCLASS_JEWELCRAFTING
Definition ItemTemplate.h:429
@ ITEM_SUBCLASS_MATERIAL
Definition ItemTemplate.h:438
@ ITEM_SUBCLASS_LEATHER
Definition ItemTemplate.h:431
@ ITEM_SUBCLASS_CLOTH
Definition ItemTemplate.h:430
@ ITEM_SUBCLASS_DEVICES
Definition ItemTemplate.h:428
@ ITEM_SUBCLASS_MEAT
Definition ItemTemplate.h:433
@ ITEM_SUBCLASS_ELEMENTAL
Definition ItemTemplate.h:435
@ ITEM_SUBCLASS_WEAPON_ENCHANTMENT
Definition ItemTemplate.h:440
#define MAX_ITEM_SUBCLASS_ARMOR
Definition ItemTemplate.h:403
#define MAX_ITEM_SUBCLASS_TRADE_GOODS
Definition ItemTemplate.h:443
ItemSubclassRecipe
Definition ItemTemplate.h:453
@ ITEM_SUBCLASS_BOOK
Definition ItemTemplate.h:454
@ ITEM_SUBCLASS_TAILORING_PATTERN
Definition ItemTemplate.h:456
@ ITEM_SUBCLASS_JEWELCRAFTING_RECIPE
Definition ItemTemplate.h:464
@ ITEM_SUBCLASS_COOKING_RECIPE
Definition ItemTemplate.h:459
@ ITEM_SUBCLASS_ALCHEMY_RECIPE
Definition ItemTemplate.h:460
@ ITEM_SUBCLASS_ENGINEERING_SCHEMATIC
Definition ItemTemplate.h:457
@ ITEM_SUBCLASS_ENCHANTING_FORMULA
Definition ItemTemplate.h:462
@ ITEM_SUBCLASS_LEATHERWORKING_PATTERN
Definition ItemTemplate.h:455
@ ITEM_SUBCLASS_FISHING_MANUAL
Definition ItemTemplate.h:463
@ ITEM_SUBCLASS_FIRST_AID_MANUAL
Definition ItemTemplate.h:461
@ ITEM_SUBCLASS_BLACKSMITHING
Definition ItemTemplate.h:458
#define MAX_ITEM_PROTO_SOCKETS
Definition ItemTemplate.h:614
#define MAX_ITEM_SUBCLASS_JUNK
Definition ItemTemplate.h:518
#define MAX_ITEM_SUBCLASS_GEM
Definition ItemTemplate.h:386
#define MAX_ITEM_PROTO_DAMAGES
Definition ItemTemplate.h:613
#define MAX_ITEM_SUBCLASS_CONTAINER
Definition ItemTemplate.h:340
@ ITEM_SUBCLASS_GEM_BLUE
Definition ItemTemplate.h:376
@ ITEM_SUBCLASS_GEM_META
Definition ItemTemplate.h:381
@ ITEM_SUBCLASS_GEM_PRISMATIC
Definition ItemTemplate.h:383
@ ITEM_SUBCLASS_GEM_YELLOW
Definition ItemTemplate.h:377
@ ITEM_SUBCLASS_GEM_ORANGE
Definition ItemTemplate.h:380
@ ITEM_SUBCLASS_GEM_RED
Definition ItemTemplate.h:375
@ ITEM_SUBCLASS_GEM_GREEN
Definition ItemTemplate.h:379
@ ITEM_SUBCLASS_GEM_SIMPLE
Definition ItemTemplate.h:382
@ ITEM_SUBCLASS_GEM_PURPLE
Definition ItemTemplate.h:378
ItemSubclassMoney
Definition ItemTemplate.h:470
@ ITEM_SUBCLASS_MONEY
Definition ItemTemplate.h:471
ItemSubclassKey
Definition ItemTemplate.h:494
@ ITEM_SUBCLASS_KEY
Definition ItemTemplate.h:495
@ ITEM_SUBCLASS_LOCKPICK
Definition ItemTemplate.h:496
#define MAX_ITEM_PROTO_SPELLS
Definition ItemTemplate.h:615
ItemFlagsCustom
Definition ItemTemplate.h:218
ItemSubclassReagent
Definition ItemTemplate.h:406
@ ITEM_SUBCLASS_REAGENT
Definition ItemTemplate.h:407
ItemClass
Definition ItemTemplate.h:290
@ ITEM_CLASS_TRADE_GOODS
Definition ItemTemplate.h:298
@ ITEM_CLASS_PROJECTILE
Definition ItemTemplate.h:297
@ ITEM_CLASS_ARMOR
Definition ItemTemplate.h:295
@ ITEM_CLASS_QUEST
Definition ItemTemplate.h:303
@ ITEM_CLASS_WEAPON
Definition ItemTemplate.h:293
@ ITEM_CLASS_CONSUMABLE
Definition ItemTemplate.h:291
#define MAX_ITEM_SUBCLASS_CONSUMABLE
Definition ItemTemplate.h:325
ItemSubclassPermanent
Definition ItemTemplate.h:502
@ ITEM_SUBCLASS_PERMANENT
Definition ItemTemplate.h:503
#define MAX_ITEM_SUBCLASS_QUIVER
Definition ItemTemplate.h:484
#define MAX_ITEM_SUBCLASS_PROJECTILE
Definition ItemTemplate.h:421
#define MAX_ITEM_SUBCLASS_QUEST
Definition ItemTemplate.h:491
#define MAX_ITEM_SUBCLASS_WEAPON
Definition ItemTemplate.h:371
ItemSubclassJunk
Definition ItemTemplate.h:509
@ ITEM_SUBCLASS_JUNK
Definition ItemTemplate.h:510
@ ITEM_SUBCLASS_JUNK_HOLIDAY
Definition ItemTemplate.h:513
@ ITEM_SUBCLASS_JUNK_MOUNT
Definition ItemTemplate.h:515
@ ITEM_SUBCLASS_JUNK_PET
Definition ItemTemplate.h:512
@ ITEM_SUBCLASS_JUNK_OTHER
Definition ItemTemplate.h:514
@ ITEM_SUBCLASS_JUNK_REAGENT
Definition ItemTemplate.h:511
@ ITEM_SUBCLASS_POTION
Definition ItemTemplate.h:315
ItemSubclassQuest
Definition ItemTemplate.h:487
@ ITEM_SUBCLASS_QUEST
Definition ItemTemplate.h:488
ItemSubclassGeneric
Definition ItemTemplate.h:446
@ ITEM_SUBCLASS_GENERIC
Definition ItemTemplate.h:447
#define MAX_ITEM_PROTO_STATS
Definition ItemTemplate.h:616
const uint32 MaxItemSubclassValues[MAX_ITEM_CLASS]
Definition ItemTemplate.h:536
#define MAX_ITEM_SUBCLASS_GLYPH
Definition ItemTemplate.h:534
@ ITEM_QUALITY_UNCOMMON
Definition SharedDefines.h:331
@ ITEM_QUALITY_RARE
Definition SharedDefines.h:332
@ ITEM_QUALITY_NORMAL
Definition SharedDefines.h:330
@ ITEM_QUALITY_LEGENDARY
Definition SharedDefines.h:334
@ ITEM_QUALITY_HEIRLOOM
Definition SharedDefines.h:336
@ ITEM_QUALITY_POOR
Definition SharedDefines.h:329
@ ITEM_QUALITY_ARTIFACT
Definition SharedDefines.h:335
@ ITEM_QUALITY_EPIC
Definition SharedDefines.h:333
@ SKILL_BOWS
Definition SharedDefines.h:2873
@ SKILL_MACES
Definition SharedDefines.h:2877
@ SKILL_PLATE_MAIL
Definition SharedDefines.h:2951
@ SKILL_LEATHER
Definition SharedDefines.h:2963
@ SKILL_WANDS
Definition SharedDefines.h:2941
@ SKILL_GUNS
Definition SharedDefines.h:2874
@ SKILL_SHIELD
Definition SharedDefines.h:2965
@ SKILL_CROSSBOWS
Definition SharedDefines.h:2940
@ SKILL_THROWN
Definition SharedDefines.h:2914
@ SKILL_FISHING
Definition SharedDefines.h:2957
@ SKILL_SWORDS
Definition SharedDefines.h:2871
@ SKILL_DAGGERS
Definition SharedDefines.h:2913
@ SKILL_2H_AXES
Definition SharedDefines.h:2912
@ SKILL_CLOTH
Definition SharedDefines.h:2964
@ SKILL_POLEARMS
Definition SharedDefines.h:2942
@ SKILL_2H_SWORDS
Definition SharedDefines.h:2878
@ SKILL_MAIL
Definition SharedDefines.h:2962
@ SKILL_FIST_WEAPONS
Definition SharedDefines.h:2966
@ SKILL_2H_MACES
Definition SharedDefines.h:2906
@ SKILL_AXES
Definition SharedDefines.h:2872
@ SKILL_STAVES
Definition SharedDefines.h:2894
@ SKILL_ASSASSINATION
Definition SharedDefines.h:2946
Definition Socket.h:52
Definition WorldPacket.h:26
Definition ItemTemplate.h:838
std::vector< std::string > Description
Definition ItemTemplate.h:840
std::vector< std::string > Name
Definition ItemTemplate.h:839
Definition ItemTemplate.h:844
uint32 InventoryType
Definition ItemTemplate.h:846
std::string name
Definition ItemTemplate.h:845
Definition ItemTemplate.h:850
std::vector< std::string > Name
Definition ItemTemplate.h:851
Definition ItemTemplate.h:619
int32 RandomProperty
Definition ItemTemplate.h:672
uint32 BuyCount
Definition ItemTemplate.h:629
int32 FrostRes
Definition ItemTemplate.h:656
bool HasFlagCu(ItemFlagsCustom flag) const
Definition ItemTemplate.h:829
ItemFlags2 Flags2
Definition ItemTemplate.h:628
uint32 DisenchantID
Definition ItemTemplate.h:690
uint32 Map
Definition ItemTemplate.h:678
uint32 Block
Definition ItemTemplate.h:674
uint32 Quality
Definition ItemTemplate.h:626
bool CanChangeEquipStateInCombat() const
Definition ItemTemplate.h:707
bool IsPotion() const
Definition ItemTemplate.h:819
uint32 ItemLevel
Definition ItemTemplate.h:635
int32 ArcaneRes
Definition ItemTemplate.h:658
uint32 RequiredCityRank
Definition ItemTemplate.h:641
uint32 RequiredSkill
Definition ItemTemplate.h:637
int32 ShadowRes
Definition ItemTemplate.h:657
uint32 RequiredSpell
Definition ItemTemplate.h:639
int32 MaxCount
Definition ItemTemplate.h:644
uint32 ScalingStatValue
Definition ItemTemplate.h:650
std::string Description
Definition ItemTemplate.h:664
uint32 AllowableClass
Definition ItemTemplate.h:633
uint32 RequiredSkillRank
Definition ItemTemplate.h:638
_Damage Damage[MAX_ITEM_PROTO_DAMAGES]
Definition ItemTemplate.h:651
uint32 RequiredHonorRank
Definition ItemTemplate.h:640
uint32 GetMaxStackSize() const
Definition ItemTemplate.h:729
int32 HolyRes
Definition ItemTemplate.h:653
float RangedModRange
Definition ItemTemplate.h:661
uint32 Sheath
Definition ItemTemplate.h:671
ItemFlagsCustom FlagsCu
Definition ItemTemplate.h:694
float ArmorDamageModifier
Definition ItemTemplate.h:685
bool IsCurrencyToken() const
Definition ItemTemplate.h:727
int32 Material
Definition ItemTemplate.h:670
uint32 Area
Definition ItemTemplate.h:677
bool HasSignature() const
Definition ItemTemplate.h:698
int32 BuyPrice
Definition ItemTemplate.h:630
uint32 socketBonus
Definition ItemTemplate.h:682
uint32 RequiredDisenchantSkill
Definition ItemTemplate.h:684
bool IsArmorVellum() const
Definition ItemTemplate.h:821
uint32 TotemCategory
Definition ItemTemplate.h:680
uint32 MinMoneyLoot
Definition ItemTemplate.h:692
uint32 MaxMoneyLoot
Definition ItemTemplate.h:693
uint32 PageMaterial
Definition ItemTemplate.h:667
uint32 RequiredLevel
Definition ItemTemplate.h:636
uint32 FoodType
Definition ItemTemplate.h:691
std::string Name1
Definition ItemTemplate.h:624
uint32 LockID
Definition ItemTemplate.h:669
uint32 ItemSet
Definition ItemTemplate.h:675
uint32 HolidayId
Definition ItemTemplate.h:688
uint32 GemProperties
Definition ItemTemplate.h:683
bool IsConjuredConsumable() const
Definition ItemTemplate.h:822
bool HasFlag2(ItemFlags2 flag) const
Definition ItemTemplate.h:828
uint32 RequiredReputationRank
Definition ItemTemplate.h:643
WorldPacket queryData
Definition ItemTemplate.h:695
uint32 ContainerSlots
Definition ItemTemplate.h:646
uint32 DisplayInfoID
Definition ItemTemplate.h:625
uint32 AllowableRace
Definition ItemTemplate.h:634
uint32 RequiredReputationFaction
Definition ItemTemplate.h:642
bool HasFlag(ItemFlags flag) const
Definition ItemTemplate.h:827
uint32 Class
Definition ItemTemplate.h:621
uint32 ItemLimitCategory
Definition ItemTemplate.h:687
void InitializeQueryData()
Definition ItemHandler.cpp:406
uint32 PageText
Definition ItemTemplate.h:665
bool HasSpellPowerStat() const
Definition ItemHandler.cpp:360
ItemFlags Flags
Definition ItemTemplate.h:627
uint32 ScalingStatDistribution
Definition ItemTemplate.h:649
int32 NatureRes
Definition ItemTemplate.h:655
_ItemStat ItemStat[MAX_ITEM_PROTO_STATS]
Definition ItemTemplate.h:648
bool HasStat(ItemModType stat) const
Definition ItemHandler.cpp:342
uint32 ScriptId
Definition ItemTemplate.h:689
uint32 MaxDurability
Definition ItemTemplate.h:676
uint32 BagFamily
Definition ItemTemplate.h:679
uint32 InventoryType
Definition ItemTemplate.h:632
uint32 LanguageID
Definition ItemTemplate.h:666
uint32 AmmoType
Definition ItemTemplate.h:660
float GetItemLevelIncludingQuality(uint8 pLevel) const
Definition ItemTemplate.h:759
uint32 Delay
Definition ItemTemplate.h:659
int32 RandomSuffix
Definition ItemTemplate.h:673
uint32 Duration
Definition ItemTemplate.h:686
uint32 SubClass
Definition ItemTemplate.h:622
uint32 Armor
Definition ItemTemplate.h:652
int32 Stackable
Definition ItemTemplate.h:645
float getDPS() const
Definition ItemTemplate.h:734
uint32 StartQuest
Definition ItemTemplate.h:668
int32 SoundOverrideSubclass
Definition ItemTemplate.h:623
int32 getFeralBonus(int32 extraDPS=0) const
Definition ItemTemplate.h:744
bool IsWeaponVellum() const
Definition ItemTemplate.h:820
uint32 StatsCount
Definition ItemTemplate.h:647
int32 FireRes
Definition ItemTemplate.h:654
uint32 ItemId
Definition ItemTemplate.h:620
uint32 Bonding
Definition ItemTemplate.h:663
uint32 SellPrice
Definition ItemTemplate.h:631
uint32 GetSkill() const
Definition ItemTemplate.h:784
Definition ItemTemplate.h:578
float DamageMin
Definition ItemTemplate.h:579
uint32 DamageType
Definition ItemTemplate.h:581
float DamageMax
Definition ItemTemplate.h:580
Definition ItemTemplate.h:585
int32 ItemStatValue
Definition ItemTemplate.h:587
uint32 ItemStatType
Definition ItemTemplate.h:586
Definition ItemTemplate.h:601
uint32 Content
Definition ItemTemplate.h:603
uint32 Color
Definition ItemTemplate.h:602
Definition ItemTemplate.h:590
int32 SpellCharges
Definition ItemTemplate.h:593
uint32 SpellTrigger
Definition ItemTemplate.h:592
float SpellPPMRate
Definition ItemTemplate.h:594
int32 SpellCategoryCooldown
Definition ItemTemplate.h:597
int32 SpellCooldown
Definition ItemTemplate.h:595
uint32 SpellCategory
Definition ItemTemplate.h:596
int32 SpellId
Definition ItemTemplate.h:591

◆ MAX_BIND_TYPE

#define MAX_BIND_TYPE   6

◆ MAX_INVTYPE

#define MAX_INVTYPE   29

◆ MAX_ITEM_CLASS

#define MAX_ITEM_CLASS   17

◆ MAX_ITEM_MOD

#define MAX_ITEM_MOD   49

◆ MAX_ITEM_PROTO_DAMAGES

#define MAX_ITEM_PROTO_DAMAGES   2

◆ MAX_ITEM_PROTO_SOCKETS

#define MAX_ITEM_PROTO_SOCKETS   3

◆ MAX_ITEM_PROTO_SPELLS

#define MAX_ITEM_PROTO_SPELLS   5

◆ MAX_ITEM_PROTO_STATS

#define MAX_ITEM_PROTO_STATS   10

◆ MAX_ITEM_SPELLTRIGGER

#define MAX_ITEM_SPELLTRIGGER   7

◆ MAX_ITEM_SUBCLASS_ARMOR

#define MAX_ITEM_SUBCLASS_ARMOR   11

◆ MAX_ITEM_SUBCLASS_CONSUMABLE

#define MAX_ITEM_SUBCLASS_CONSUMABLE   9

◆ MAX_ITEM_SUBCLASS_CONTAINER

#define MAX_ITEM_SUBCLASS_CONTAINER   9

◆ MAX_ITEM_SUBCLASS_GEM

#define MAX_ITEM_SUBCLASS_GEM   9

◆ MAX_ITEM_SUBCLASS_GENERIC

#define MAX_ITEM_SUBCLASS_GENERIC   1

◆ MAX_ITEM_SUBCLASS_GLYPH

#define MAX_ITEM_SUBCLASS_GLYPH   12

◆ MAX_ITEM_SUBCLASS_JUNK

#define MAX_ITEM_SUBCLASS_JUNK   6

◆ MAX_ITEM_SUBCLASS_KEY

#define MAX_ITEM_SUBCLASS_KEY   2

◆ MAX_ITEM_SUBCLASS_MONEY

#define MAX_ITEM_SUBCLASS_MONEY   1

◆ MAX_ITEM_SUBCLASS_PERMANENT

#define MAX_ITEM_SUBCLASS_PERMANENT   1

◆ MAX_ITEM_SUBCLASS_PROJECTILE

#define MAX_ITEM_SUBCLASS_PROJECTILE   5

◆ MAX_ITEM_SUBCLASS_QUEST

#define MAX_ITEM_SUBCLASS_QUEST   1

◆ MAX_ITEM_SUBCLASS_QUIVER

#define MAX_ITEM_SUBCLASS_QUIVER   4

◆ MAX_ITEM_SUBCLASS_REAGENT

#define MAX_ITEM_SUBCLASS_REAGENT   1

◆ MAX_ITEM_SUBCLASS_RECIPE

#define MAX_ITEM_SUBCLASS_RECIPE   11

◆ MAX_ITEM_SUBCLASS_TRADE_GOODS

#define MAX_ITEM_SUBCLASS_TRADE_GOODS   16

◆ MAX_ITEM_SUBCLASS_WEAPON

#define MAX_ITEM_SUBCLASS_WEAPON   21

◆ SOCKET_COLOR_ALL

Typedef Documentation

◆ ItemTemplateContainer

typedef std::unordered_map<uint32, ItemTemplate> ItemTemplateContainer

Enumeration Type Documentation

◆ BAG_FAMILY_MASK

Enumerator
BAG_FAMILY_MASK_NONE 
BAG_FAMILY_MASK_ARROWS 
BAG_FAMILY_MASK_BULLETS 
BAG_FAMILY_MASK_SOUL_SHARDS 
BAG_FAMILY_MASK_LEATHERWORKING_SUPP 
BAG_FAMILY_MASK_INSCRIPTION_SUPP 
BAG_FAMILY_MASK_HERBS 
BAG_FAMILY_MASK_ENCHANTING_SUPP 
BAG_FAMILY_MASK_ENGINEERING_SUPP 
BAG_FAMILY_MASK_KEYS 
BAG_FAMILY_MASK_GEMS 
BAG_FAMILY_MASK_MINING_SUPP 
BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT 
BAG_FAMILY_MASK_VANITY_PETS 
BAG_FAMILY_MASK_CURRENCY_TOKENS 
BAG_FAMILY_MASK_QUEST_ITEMS 
225{
226 BAG_FAMILY_MASK_NONE = 0x00000000,
227 BAG_FAMILY_MASK_ARROWS = 0x00000001,
228 BAG_FAMILY_MASK_BULLETS = 0x00000002,
229 BAG_FAMILY_MASK_SOUL_SHARDS = 0x00000004,
232 BAG_FAMILY_MASK_HERBS = 0x00000020,
235 BAG_FAMILY_MASK_KEYS = 0x00000100,
236 BAG_FAMILY_MASK_GEMS = 0x00000200,
237 BAG_FAMILY_MASK_MINING_SUPP = 0x00000400,
239 BAG_FAMILY_MASK_VANITY_PETS = 0x00001000,
241 BAG_FAMILY_MASK_QUEST_ITEMS = 0x00004000
242};
@ BAG_FAMILY_MASK_MINING_SUPP
Definition ItemTemplate.h:237
@ BAG_FAMILY_MASK_HERBS
Definition ItemTemplate.h:232
@ BAG_FAMILY_MASK_ENCHANTING_SUPP
Definition ItemTemplate.h:233
@ BAG_FAMILY_MASK_SOUL_SHARDS
Definition ItemTemplate.h:229
@ BAG_FAMILY_MASK_INSCRIPTION_SUPP
Definition ItemTemplate.h:231
@ BAG_FAMILY_MASK_NONE
Definition ItemTemplate.h:226
@ BAG_FAMILY_MASK_GEMS
Definition ItemTemplate.h:236
@ BAG_FAMILY_MASK_VANITY_PETS
Definition ItemTemplate.h:239
@ BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT
Definition ItemTemplate.h:238
@ BAG_FAMILY_MASK_ARROWS
Definition ItemTemplate.h:227
@ BAG_FAMILY_MASK_BULLETS
Definition ItemTemplate.h:228
@ BAG_FAMILY_MASK_QUEST_ITEMS
Definition ItemTemplate.h:241
@ BAG_FAMILY_MASK_KEYS
Definition ItemTemplate.h:235
@ BAG_FAMILY_MASK_ENGINEERING_SUPP
Definition ItemTemplate.h:234
@ BAG_FAMILY_MASK_LEATHERWORKING_SUPP
Definition ItemTemplate.h:230

◆ InventoryType

Enumerator
INVTYPE_NON_EQUIP 
INVTYPE_HEAD 
INVTYPE_NECK 
INVTYPE_SHOULDERS 
INVTYPE_BODY 
INVTYPE_CHEST 
INVTYPE_WAIST 
INVTYPE_LEGS 
INVTYPE_FEET 
INVTYPE_WRISTS 
INVTYPE_HANDS 
INVTYPE_FINGER 
INVTYPE_TRINKET 
INVTYPE_WEAPON 
INVTYPE_SHIELD 
INVTYPE_RANGED 
INVTYPE_CLOAK 
INVTYPE_2HWEAPON 
INVTYPE_BAG 
INVTYPE_TABARD 
INVTYPE_ROBE 
INVTYPE_WEAPONMAINHAND 
INVTYPE_WEAPONOFFHAND 
INVTYPE_HOLDABLE 
INVTYPE_AMMO 
INVTYPE_THROWN 
INVTYPE_RANGEDRIGHT 
INVTYPE_QUIVER 
INVTYPE_RELIC 
255{
257 INVTYPE_HEAD = 1,
258 INVTYPE_NECK = 2,
260 INVTYPE_BODY = 4,
261 INVTYPE_CHEST = 5,
262 INVTYPE_WAIST = 6,
263 INVTYPE_LEGS = 7,
264 INVTYPE_FEET = 8,
265 INVTYPE_WRISTS = 9,
266 INVTYPE_HANDS = 10,
267 INVTYPE_FINGER = 11,
268 INVTYPE_TRINKET = 12,
269 INVTYPE_WEAPON = 13,
270 INVTYPE_SHIELD = 14,
271 INVTYPE_RANGED = 15,
272 INVTYPE_CLOAK = 16,
273 INVTYPE_2HWEAPON = 17,
274 INVTYPE_BAG = 18,
275 INVTYPE_TABARD = 19,
276 INVTYPE_ROBE = 20,
279 INVTYPE_HOLDABLE = 23,
280 INVTYPE_AMMO = 24,
281 INVTYPE_THROWN = 25,
283 INVTYPE_QUIVER = 27,
284 INVTYPE_RELIC = 28
285};
@ INVTYPE_BODY
Definition ItemTemplate.h:260
@ INVTYPE_FINGER
Definition ItemTemplate.h:267
@ INVTYPE_HEAD
Definition ItemTemplate.h:257
@ INVTYPE_CLOAK
Definition ItemTemplate.h:272
@ INVTYPE_ROBE
Definition ItemTemplate.h:276
@ INVTYPE_TRINKET
Definition ItemTemplate.h:268
@ INVTYPE_RANGED
Definition ItemTemplate.h:271
@ INVTYPE_THROWN
Definition ItemTemplate.h:281
@ INVTYPE_WAIST
Definition ItemTemplate.h:262
@ INVTYPE_RANGEDRIGHT
Definition ItemTemplate.h:282
@ INVTYPE_WRISTS
Definition ItemTemplate.h:265
@ INVTYPE_BAG
Definition ItemTemplate.h:274
@ INVTYPE_NECK
Definition ItemTemplate.h:258
@ INVTYPE_SHOULDERS
Definition ItemTemplate.h:259
@ INVTYPE_FEET
Definition ItemTemplate.h:264
@ INVTYPE_NON_EQUIP
Definition ItemTemplate.h:256
@ INVTYPE_AMMO
Definition ItemTemplate.h:280
@ INVTYPE_QUIVER
Definition ItemTemplate.h:283
@ INVTYPE_TABARD
Definition ItemTemplate.h:275
@ INVTYPE_LEGS
Definition ItemTemplate.h:263
@ INVTYPE_CHEST
Definition ItemTemplate.h:261
@ INVTYPE_HANDS
Definition ItemTemplate.h:266

◆ ItemBondingType

Enumerator
NO_BIND 
BIND_WHEN_PICKED_UP 
BIND_WHEN_EQUIPPED 
BIND_WHEN_USE 
BIND_QUEST_ITEM 
BIND_QUEST_ITEM1 
94{
95 NO_BIND = 0,
98 BIND_WHEN_USE = 3,
100 BIND_QUEST_ITEM1 = 5 // not used in game
101};
@ BIND_WHEN_EQUIPPED
Definition ItemTemplate.h:97
@ BIND_WHEN_USE
Definition ItemTemplate.h:98
@ NO_BIND
Definition ItemTemplate.h:95
@ BIND_QUEST_ITEM
Definition ItemTemplate.h:99
@ BIND_WHEN_PICKED_UP
Definition ItemTemplate.h:96
@ BIND_QUEST_ITEM1
Definition ItemTemplate.h:100

◆ ItemClass

enum ItemClass
Enumerator
ITEM_CLASS_CONSUMABLE 
ITEM_CLASS_CONTAINER 
ITEM_CLASS_WEAPON 
ITEM_CLASS_GEM 
ITEM_CLASS_ARMOR 
ITEM_CLASS_REAGENT 
ITEM_CLASS_PROJECTILE 
ITEM_CLASS_TRADE_GOODS 
ITEM_CLASS_GENERIC 
ITEM_CLASS_RECIPE 
ITEM_CLASS_MONEY 
ITEM_CLASS_QUIVER 
ITEM_CLASS_QUEST 
ITEM_CLASS_KEY 
ITEM_CLASS_PERMANENT 
ITEM_CLASS_MISC 
ITEM_CLASS_GLYPH 
290{
294 ITEM_CLASS_GEM = 3,
301 ITEM_CLASS_MONEY = 10,
303 ITEM_CLASS_QUEST = 12,
304 ITEM_CLASS_KEY = 13,
306 ITEM_CLASS_MISC = 15,
308};
@ ITEM_CLASS_QUIVER
Definition ItemTemplate.h:302
@ ITEM_CLASS_GENERIC
Definition ItemTemplate.h:299
@ ITEM_CLASS_RECIPE
Definition ItemTemplate.h:300
@ ITEM_CLASS_KEY
Definition ItemTemplate.h:304
@ ITEM_CLASS_MISC
Definition ItemTemplate.h:306
@ ITEM_CLASS_CONTAINER
Definition ItemTemplate.h:292
@ ITEM_CLASS_REAGENT
Definition ItemTemplate.h:296
@ ITEM_CLASS_MONEY
Definition ItemTemplate.h:301
@ ITEM_CLASS_PERMANENT
Definition ItemTemplate.h:305
@ ITEM_CLASS_GLYPH
Definition ItemTemplate.h:307
@ ITEM_CLASS_GEM
Definition ItemTemplate.h:294

◆ ItemFieldFlags

Enumerator
ITEM_FIELD_FLAG_SOULBOUND 
ITEM_FIELD_FLAG_UNK1 
ITEM_FIELD_FLAG_UNLOCKED 
ITEM_FIELD_FLAG_WRAPPED 
ITEM_FIELD_FLAG_UNK2 
ITEM_FIELD_FLAG_UNK3 
ITEM_FIELD_FLAG_UNK4 
ITEM_FIELD_FLAG_UNK5 
ITEM_FIELD_FLAG_BOP_TRADEABLE 
ITEM_FIELD_FLAG_READABLE 
ITEM_FIELD_FLAG_UNK6 
ITEM_FIELD_FLAG_UNK7 
ITEM_FIELD_FLAG_REFUNDABLE 
ITEM_FIELD_FLAG_UNK8 
ITEM_FIELD_FLAG_UNK9 
ITEM_FIELD_FLAG_UNK10 
ITEM_FIELD_FLAG_UNK11 
ITEM_FIELD_FLAG_UNK12 
ITEM_FIELD_FLAG_UNK13 
ITEM_FIELD_FLAG_UNK14 
ITEM_FIELD_FLAG_UNK15 
ITEM_FIELD_FLAG_UNK16 
ITEM_FIELD_FLAG_UNK17 
ITEM_FIELD_FLAG_UNK18 
ITEM_FIELD_FLAG_UNK19 
ITEM_FIELD_FLAG_UNK20 
ITEM_FIELD_FLAG_UNK21 
ITEM_FIELD_FLAG_UNK22 
ITEM_FIELD_FLAG_UNK23 
ITEM_FIELD_FLAG_UNK24 
ITEM_FIELD_FLAG_UNK25 
ITEM_FIELD_FLAG_UNK26 
ITEM_FLAG_MAIL_TEXT_MASK 
108{
109 ITEM_FIELD_FLAG_SOULBOUND = 0x00000001, // Item is soulbound and cannot be traded <<--
110 ITEM_FIELD_FLAG_UNK1 = 0x00000002, // ?
111 ITEM_FIELD_FLAG_UNLOCKED = 0x00000004, // Item had lock but can be opened now
112 ITEM_FIELD_FLAG_WRAPPED = 0x00000008, // Item is wrapped and contains another item
113 ITEM_FIELD_FLAG_UNK2 = 0x00000010, // ?
114 ITEM_FIELD_FLAG_UNK3 = 0x00000020, // ?
115 ITEM_FIELD_FLAG_UNK4 = 0x00000040, // ?
116 ITEM_FIELD_FLAG_UNK5 = 0x00000080, // ?
117 ITEM_FIELD_FLAG_BOP_TRADEABLE = 0x00000100, // Allows trading soulbound items
118 ITEM_FIELD_FLAG_READABLE = 0x00000200, // Opens text page when right clicked
119 ITEM_FIELD_FLAG_UNK6 = 0x00000400, // ?
120 ITEM_FIELD_FLAG_UNK7 = 0x00000800, // ?
121 ITEM_FIELD_FLAG_REFUNDABLE = 0x00001000, // Item can be returned to vendor for its original cost (extended cost)
122 ITEM_FIELD_FLAG_UNK8 = 0x00002000, // ?
123 ITEM_FIELD_FLAG_UNK9 = 0x00004000, // ?
124 ITEM_FIELD_FLAG_UNK10 = 0x00008000, // ?
125 ITEM_FIELD_FLAG_UNK11 = 0x00010000, // ?
126 ITEM_FIELD_FLAG_UNK12 = 0x00020000, // ?
127 ITEM_FIELD_FLAG_UNK13 = 0x00040000, // ?
128 ITEM_FIELD_FLAG_UNK14 = 0x00080000, // ?
129 ITEM_FIELD_FLAG_UNK15 = 0x00100000, // ?
130 ITEM_FIELD_FLAG_UNK16 = 0x00200000, // ?
131 ITEM_FIELD_FLAG_UNK17 = 0x00400000, // ?
132 ITEM_FIELD_FLAG_UNK18 = 0x00800000, // ?
133 ITEM_FIELD_FLAG_UNK19 = 0x01000000, // ?
134 ITEM_FIELD_FLAG_UNK20 = 0x02000000, // ?
135 ITEM_FIELD_FLAG_UNK21 = 0x04000000, // ?
136 ITEM_FIELD_FLAG_UNK22 = 0x08000000, // ?
137 ITEM_FIELD_FLAG_UNK23 = 0x10000000, // ?
138 ITEM_FIELD_FLAG_UNK24 = 0x20000000, // ?
139 ITEM_FIELD_FLAG_UNK25 = 0x40000000, // ?
140 ITEM_FIELD_FLAG_UNK26 = 0x80000000, // ?
141
143};
@ ITEM_FIELD_FLAG_UNK15
Definition ItemTemplate.h:129
@ ITEM_FIELD_FLAG_UNK26
Definition ItemTemplate.h:140
@ ITEM_FIELD_FLAG_UNK24
Definition ItemTemplate.h:138
@ ITEM_FIELD_FLAG_REFUNDABLE
Definition ItemTemplate.h:121
@ ITEM_FIELD_FLAG_UNLOCKED
Definition ItemTemplate.h:111
@ ITEM_FIELD_FLAG_UNK9
Definition ItemTemplate.h:123
@ ITEM_FLAG_MAIL_TEXT_MASK
Definition ItemTemplate.h:142
@ ITEM_FIELD_FLAG_READABLE
Definition ItemTemplate.h:118
@ ITEM_FIELD_FLAG_UNK21
Definition ItemTemplate.h:135
@ ITEM_FIELD_FLAG_UNK23
Definition ItemTemplate.h:137
@ ITEM_FIELD_FLAG_SOULBOUND
Definition ItemTemplate.h:109
@ ITEM_FIELD_FLAG_UNK4
Definition ItemTemplate.h:115
@ ITEM_FIELD_FLAG_UNK12
Definition ItemTemplate.h:126
@ ITEM_FIELD_FLAG_UNK8
Definition ItemTemplate.h:122
@ ITEM_FIELD_FLAG_WRAPPED
Definition ItemTemplate.h:112
@ ITEM_FIELD_FLAG_UNK18
Definition ItemTemplate.h:132
@ ITEM_FIELD_FLAG_UNK17
Definition ItemTemplate.h:131
@ ITEM_FIELD_FLAG_UNK3
Definition ItemTemplate.h:114
@ ITEM_FIELD_FLAG_UNK14
Definition ItemTemplate.h:128
@ ITEM_FIELD_FLAG_UNK25
Definition ItemTemplate.h:139
@ ITEM_FIELD_FLAG_UNK20
Definition ItemTemplate.h:134
@ ITEM_FIELD_FLAG_UNK7
Definition ItemTemplate.h:120
@ ITEM_FIELD_FLAG_UNK22
Definition ItemTemplate.h:136
@ ITEM_FIELD_FLAG_UNK2
Definition ItemTemplate.h:113
@ ITEM_FIELD_FLAG_UNK13
Definition ItemTemplate.h:127
@ ITEM_FIELD_FLAG_UNK6
Definition ItemTemplate.h:119
@ ITEM_FIELD_FLAG_BOP_TRADEABLE
Definition ItemTemplate.h:117
@ ITEM_FIELD_FLAG_UNK5
Definition ItemTemplate.h:116
@ ITEM_FIELD_FLAG_UNK19
Definition ItemTemplate.h:133
@ ITEM_FIELD_FLAG_UNK16
Definition ItemTemplate.h:130
@ ITEM_FIELD_FLAG_UNK1
Definition ItemTemplate.h:110
@ ITEM_FIELD_FLAG_UNK10
Definition ItemTemplate.h:124
@ ITEM_FIELD_FLAG_UNK11
Definition ItemTemplate.h:125

◆ ItemFlags

enum ItemFlags : uint32
Enumerator
ITEM_FLAG_NO_PICKUP 
ITEM_FLAG_CONJURED 
ITEM_FLAG_HAS_LOOT 
ITEM_FLAG_HEROIC_TOOLTIP 
ITEM_FLAG_DEPRECATED 
ITEM_FLAG_NO_USER_DESTROY 
ITEM_FLAG_PLAYERCAST 
ITEM_FLAG_NO_EQUIP_COOLDOWN 
ITEM_FLAG_MULTI_LOOT_QUEST 
ITEM_FLAG_IS_WRAPPER 
ITEM_FLAG_USES_RESOURCES 
ITEM_FLAG_MULTI_DROP 
ITEM_FLAG_ITEM_PURCHASE_RECORD 
ITEM_FLAG_PETITION 
ITEM_FLAG_HAS_TEXT 
ITEM_FLAG_NO_DISENCHANT 
ITEM_FLAG_REAL_DURATION 
ITEM_FLAG_NO_CREATOR 
ITEM_FLAG_IS_PROSPECTABLE 
ITEM_FLAG_UNIQUE_EQUIPPABLE 
ITEM_FLAG_IGNORE_FOR_AURAS 
ITEM_FLAG_IGNORE_DEFAULT_ARENA_RESTRICTIONS 
ITEM_FLAG_NO_DURABILITY_LOSS 
ITEM_FLAG_USE_WHEN_SHAPESHIFTED 
ITEM_FLAG_HAS_QUEST_GLOW 
ITEM_FLAG_HIDE_UNUSABLE_RECIPE 
ITEM_FLAG_NOT_USEABLE_IN_ARENA 
ITEM_FLAG_IS_BOUND_TO_ACCOUNT 
ITEM_FLAG_NO_REAGENT_COST 
ITEM_FLAG_IS_MILLABLE 
ITEM_FLAG_REPORT_TO_GUILD_CHAT 
ITEM_FLAG_NO_PROGRESSIVE_LOOT 
146{
147 ITEM_FLAG_NO_PICKUP = 0x00000001,
148 ITEM_FLAG_CONJURED = 0x00000002, // Conjured item
149 ITEM_FLAG_HAS_LOOT = 0x00000004, // Item can be right clicked to open for loot
150 ITEM_FLAG_HEROIC_TOOLTIP = 0x00000008, // Makes green "Heroic" text appear on item
151 ITEM_FLAG_DEPRECATED = 0x00000010, // Cannot equip or use
152 ITEM_FLAG_NO_USER_DESTROY = 0x00000020, // Item can not be destroyed, except by using spell (item can be reagent for spell)
153 ITEM_FLAG_PLAYERCAST = 0x00000040, // Item's spells are castable by players
154 ITEM_FLAG_NO_EQUIP_COOLDOWN = 0x00000080, // No default 30 seconds cooldown when equipped
155 ITEM_FLAG_MULTI_LOOT_QUEST = 0x00000100, // NYI
156 ITEM_FLAG_IS_WRAPPER = 0x00000200, // Item can wrap other items
157 ITEM_FLAG_USES_RESOURCES = 0x00000400, // NYI
158 ITEM_FLAG_MULTI_DROP = 0x00000800, // Looting this item does not remove it from available loot
159 ITEM_FLAG_ITEM_PURCHASE_RECORD = 0x00001000, // Item can be returned to vendor for its original cost (extended cost)
160 ITEM_FLAG_PETITION = 0x00002000, // Item is guild or arena charter
161 ITEM_FLAG_HAS_TEXT = 0x00004000, // Only readable items have this (but not all)
162 ITEM_FLAG_NO_DISENCHANT = 0x00008000, // NYI
163 ITEM_FLAG_REAL_DURATION = 0x00010000, // NYI
164 ITEM_FLAG_NO_CREATOR = 0x00020000,
165 ITEM_FLAG_IS_PROSPECTABLE = 0x00040000, // Item can be prospected
166 ITEM_FLAG_UNIQUE_EQUIPPABLE = 0x00080000, // You can only equip one of these
167 ITEM_FLAG_IGNORE_FOR_AURAS = 0x00100000, // NYI
168 ITEM_FLAG_IGNORE_DEFAULT_ARENA_RESTRICTIONS = 0x00200000, // Item can be used during arena match
169 ITEM_FLAG_NO_DURABILITY_LOSS = 0x00400000, // Some Thrown weapons have it (and only Thrown) but not all
170 ITEM_FLAG_USE_WHEN_SHAPESHIFTED = 0x00800000, // Item can be used in shapeshift forms
171 ITEM_FLAG_HAS_QUEST_GLOW = 0x01000000, // NYI
172 ITEM_FLAG_HIDE_UNUSABLE_RECIPE = 0x02000000, // Profession recipes: can only be looted if you meet requirements and don't already know it
173 ITEM_FLAG_NOT_USEABLE_IN_ARENA = 0x04000000, // Item cannot be used in arena
174 ITEM_FLAG_IS_BOUND_TO_ACCOUNT = 0x08000000, // Item binds to account and can be sent only to your own characters
175 ITEM_FLAG_NO_REAGENT_COST = 0x10000000, // Spell is cast ignoring reagents
176 ITEM_FLAG_IS_MILLABLE = 0x20000000, // Item can be milled
177 ITEM_FLAG_REPORT_TO_GUILD_CHAT = 0x40000000, // NYI
178 ITEM_FLAG_NO_PROGRESSIVE_LOOT = 0x80000000 // NYI
179};
@ ITEM_FLAG_NO_PICKUP
Definition ItemTemplate.h:147
@ ITEM_FLAG_NO_DURABILITY_LOSS
Definition ItemTemplate.h:169
@ ITEM_FLAG_IS_MILLABLE
Definition ItemTemplate.h:176
@ ITEM_FLAG_REAL_DURATION
Definition ItemTemplate.h:163
@ ITEM_FLAG_NO_REAGENT_COST
Definition ItemTemplate.h:175
@ ITEM_FLAG_IS_WRAPPER
Definition ItemTemplate.h:156
@ ITEM_FLAG_IS_PROSPECTABLE
Definition ItemTemplate.h:165
@ ITEM_FLAG_IGNORE_DEFAULT_ARENA_RESTRICTIONS
Definition ItemTemplate.h:168
@ ITEM_FLAG_USE_WHEN_SHAPESHIFTED
Definition ItemTemplate.h:170
@ ITEM_FLAG_HIDE_UNUSABLE_RECIPE
Definition ItemTemplate.h:172
@ ITEM_FLAG_PETITION
Definition ItemTemplate.h:160
@ ITEM_FLAG_NO_USER_DESTROY
Definition ItemTemplate.h:152
@ ITEM_FLAG_HAS_LOOT
Definition ItemTemplate.h:149
@ ITEM_FLAG_NO_DISENCHANT
Definition ItemTemplate.h:162
@ ITEM_FLAG_NO_EQUIP_COOLDOWN
Definition ItemTemplate.h:154
@ ITEM_FLAG_UNIQUE_EQUIPPABLE
Definition ItemTemplate.h:166
@ ITEM_FLAG_REPORT_TO_GUILD_CHAT
Definition ItemTemplate.h:177
@ ITEM_FLAG_NO_PROGRESSIVE_LOOT
Definition ItemTemplate.h:178
@ ITEM_FLAG_ITEM_PURCHASE_RECORD
Definition ItemTemplate.h:159
@ ITEM_FLAG_DEPRECATED
Definition ItemTemplate.h:151
@ ITEM_FLAG_HEROIC_TOOLTIP
Definition ItemTemplate.h:150
@ ITEM_FLAG_USES_RESOURCES
Definition ItemTemplate.h:157
@ ITEM_FLAG_PLAYERCAST
Definition ItemTemplate.h:153
@ ITEM_FLAG_MULTI_DROP
Definition ItemTemplate.h:158
@ ITEM_FLAG_MULTI_LOOT_QUEST
Definition ItemTemplate.h:155
@ ITEM_FLAG_IGNORE_FOR_AURAS
Definition ItemTemplate.h:167
@ ITEM_FLAG_NOT_USEABLE_IN_ARENA
Definition ItemTemplate.h:173
@ ITEM_FLAG_IS_BOUND_TO_ACCOUNT
Definition ItemTemplate.h:174
@ ITEM_FLAG_HAS_QUEST_GLOW
Definition ItemTemplate.h:171
@ ITEM_FLAG_HAS_TEXT
Definition ItemTemplate.h:161

◆ ItemFlags2

Enumerator
ITEM_FLAG2_FACTION_HORDE 
ITEM_FLAG2_FACTION_ALLIANCE 
ITEM_FLAG2_DONT_IGNORE_BUY_PRICE 
ITEM_FLAG2_CLASSIFY_AS_CASTER 
ITEM_FLAG2_CLASSIFY_AS_PHYSICAL 
ITEM_FLAG2_EVERYONE_CAN_ROLL_NEED 
ITEM_FLAG2_NO_TRADE_BIND_ON_ACQUIRE 
ITEM_FLAG2_CAN_TRADE_BIND_ON_ACQUIRE 
ITEM_FLAG2_CAN_ONLY_ROLL_GREED 
ITEM_FLAG2_CASTER_WEAPON 
ITEM_FLAG2_DELETE_ON_LOGIN 
ITEM_FLAG2_INTERNAL_ITEM 
ITEM_FLAG2_NO_VENDOR_VALUE 
ITEM_FLAG2_SHOW_BEFORE_DISCOVERED 
ITEM_FLAG2_OVERRIDE_GOLD_COST 
ITEM_FLAG2_IGNORE_DEFAULT_RATED_BG_RESTRICTIONS 
ITEM_FLAG2_NOT_USABLE_IN_RATED_BG 
ITEM_FLAG2_BNET_ACCOUNT_TRADE_OK 
ITEM_FLAG2_CONFIRM_BEFORE_USE 
ITEM_FLAG2_REEVALUATE_BONDING_ON_TRANSFORM 
ITEM_FLAG2_NO_TRANSFORM_ON_CHARGE_DEPLETION 
ITEM_FLAG2_NO_ALTER_ITEM_VISUAL 
ITEM_FLAG2_NO_SOURCE_FOR_ITEM_VISUAL 
ITEM_FLAG2_IGNORE_QUALITY_FOR_ITEM_VISUAL_SOURCE 
ITEM_FLAG2_NO_DURABILITY 
ITEM_FLAG2_ROLE_TANK 
ITEM_FLAG2_ROLE_HEALER 
ITEM_FLAG2_ROLE_DAMAGE 
ITEM_FLAG2_CAN_DROP_IN_CHALLENGE_MODE 
ITEM_FLAG2_NEVER_STACK_IN_LOOT_UI 
ITEM_FLAG2_DISENCHANT_TO_LOOT_TABLE 
ITEM_FLAG2_USED_IN_A_TRADESKILL 
182{
183 ITEM_FLAG2_FACTION_HORDE = 0x00000001,
184 ITEM_FLAG2_FACTION_ALLIANCE = 0x00000002,
185 ITEM_FLAG2_DONT_IGNORE_BUY_PRICE = 0x00000004, // when item uses extended cost, gold is also required
186 ITEM_FLAG2_CLASSIFY_AS_CASTER = 0x00000008, // NYI
187 ITEM_FLAG2_CLASSIFY_AS_PHYSICAL = 0x00000010, // NYI
188 ITEM_FLAG2_EVERYONE_CAN_ROLL_NEED = 0x00000020, // NYI
189 ITEM_FLAG2_NO_TRADE_BIND_ON_ACQUIRE = 0x00000040, // NYI
190 ITEM_FLAG2_CAN_TRADE_BIND_ON_ACQUIRE = 0x00000080, // NYI
192 ITEM_FLAG2_CASTER_WEAPON = 0x00000200, // NYI
193 ITEM_FLAG2_DELETE_ON_LOGIN = 0x00000400, // NYI
194 ITEM_FLAG2_INTERNAL_ITEM = 0x00000800, // NYI
195 ITEM_FLAG2_NO_VENDOR_VALUE = 0x00001000, // NYI
196 ITEM_FLAG2_SHOW_BEFORE_DISCOVERED = 0x00002000, // NYI
197 ITEM_FLAG2_OVERRIDE_GOLD_COST = 0x00004000, // NYI
199 ITEM_FLAG2_NOT_USABLE_IN_RATED_BG = 0x00010000, // NYI
200 ITEM_FLAG2_BNET_ACCOUNT_TRADE_OK = 0x00020000, // NYI
201 ITEM_FLAG2_CONFIRM_BEFORE_USE = 0x00040000, // NYI
204 ITEM_FLAG2_NO_ALTER_ITEM_VISUAL = 0x00200000, // NYI
205 ITEM_FLAG2_NO_SOURCE_FOR_ITEM_VISUAL = 0x00400000, // NYI
207 ITEM_FLAG2_NO_DURABILITY = 0x01000000, // NYI
208 ITEM_FLAG2_ROLE_TANK = 0x02000000, // NYI
209 ITEM_FLAG2_ROLE_HEALER = 0x04000000, // NYI
210 ITEM_FLAG2_ROLE_DAMAGE = 0x08000000, // NYI
211 ITEM_FLAG2_CAN_DROP_IN_CHALLENGE_MODE = 0x10000000, // NYI
212 ITEM_FLAG2_NEVER_STACK_IN_LOOT_UI = 0x20000000, // NYI
213 ITEM_FLAG2_DISENCHANT_TO_LOOT_TABLE = 0x40000000, // NYI
214 ITEM_FLAG2_USED_IN_A_TRADESKILL = 0x80000000 // NYI
215};
@ ITEM_FLAG2_USED_IN_A_TRADESKILL
Definition ItemTemplate.h:214
@ ITEM_FLAG2_CAN_DROP_IN_CHALLENGE_MODE
Definition ItemTemplate.h:211
@ ITEM_FLAG2_NEVER_STACK_IN_LOOT_UI
Definition ItemTemplate.h:212
@ ITEM_FLAG2_ROLE_HEALER
Definition ItemTemplate.h:209
@ ITEM_FLAG2_ROLE_DAMAGE
Definition ItemTemplate.h:210
@ ITEM_FLAG2_INTERNAL_ITEM
Definition ItemTemplate.h:194
@ ITEM_FLAG2_CLASSIFY_AS_PHYSICAL
Definition ItemTemplate.h:187
@ ITEM_FLAG2_NOT_USABLE_IN_RATED_BG
Definition ItemTemplate.h:199
@ ITEM_FLAG2_EVERYONE_CAN_ROLL_NEED
Definition ItemTemplate.h:188
@ ITEM_FLAG2_NO_SOURCE_FOR_ITEM_VISUAL
Definition ItemTemplate.h:205
@ ITEM_FLAG2_IGNORE_QUALITY_FOR_ITEM_VISUAL_SOURCE
Definition ItemTemplate.h:206
@ ITEM_FLAG2_CLASSIFY_AS_CASTER
Definition ItemTemplate.h:186
@ ITEM_FLAG2_NO_DURABILITY
Definition ItemTemplate.h:207
@ ITEM_FLAG2_NO_TRADE_BIND_ON_ACQUIRE
Definition ItemTemplate.h:189
@ ITEM_FLAG2_REEVALUATE_BONDING_ON_TRANSFORM
Definition ItemTemplate.h:202
@ ITEM_FLAG2_CONFIRM_BEFORE_USE
Definition ItemTemplate.h:201
@ ITEM_FLAG2_NO_VENDOR_VALUE
Definition ItemTemplate.h:195
@ ITEM_FLAG2_DONT_IGNORE_BUY_PRICE
Definition ItemTemplate.h:185
@ ITEM_FLAG2_CAN_TRADE_BIND_ON_ACQUIRE
Definition ItemTemplate.h:190
@ ITEM_FLAG2_NO_ALTER_ITEM_VISUAL
Definition ItemTemplate.h:204
@ ITEM_FLAG2_FACTION_HORDE
Definition ItemTemplate.h:183
@ ITEM_FLAG2_CASTER_WEAPON
Definition ItemTemplate.h:192
@ ITEM_FLAG2_DISENCHANT_TO_LOOT_TABLE
Definition ItemTemplate.h:213
@ ITEM_FLAG2_FACTION_ALLIANCE
Definition ItemTemplate.h:184
@ ITEM_FLAG2_OVERRIDE_GOLD_COST
Definition ItemTemplate.h:197
@ ITEM_FLAG2_BNET_ACCOUNT_TRADE_OK
Definition ItemTemplate.h:200
@ ITEM_FLAG2_CAN_ONLY_ROLL_GREED
Definition ItemTemplate.h:191
@ ITEM_FLAG2_DELETE_ON_LOGIN
Definition ItemTemplate.h:193
@ ITEM_FLAG2_SHOW_BEFORE_DISCOVERED
Definition ItemTemplate.h:196
@ ITEM_FLAG2_NO_TRANSFORM_ON_CHARGE_DEPLETION
Definition ItemTemplate.h:203
@ ITEM_FLAG2_IGNORE_DEFAULT_RATED_BG_RESTRICTIONS
Definition ItemTemplate.h:198
@ ITEM_FLAG2_ROLE_TANK
Definition ItemTemplate.h:208

◆ ItemFlagsCustom

Enumerator
ITEM_FLAGS_CU_DURATION_REAL_TIME 
ITEM_FLAGS_CU_IGNORE_QUEST_STATUS 
ITEM_FLAGS_CU_FOLLOW_LOOT_RULES 
218{
219 ITEM_FLAGS_CU_DURATION_REAL_TIME = 0x0001, // Item duration will tick even if player is offline
220 ITEM_FLAGS_CU_IGNORE_QUEST_STATUS = 0x0002, // No quest status will be checked when this item drops
221 ITEM_FLAGS_CU_FOLLOW_LOOT_RULES = 0x0004, // Item will always follow group/master/need before greed looting rules
222};
@ ITEM_FLAGS_CU_DURATION_REAL_TIME
Definition ItemTemplate.h:219
@ ITEM_FLAGS_CU_FOLLOW_LOOT_RULES
Definition ItemTemplate.h:221
@ ITEM_FLAGS_CU_IGNORE_QUEST_STATUS
Definition ItemTemplate.h:220

◆ ItemModType

Enumerator
ITEM_MOD_MANA 
ITEM_MOD_HEALTH 
ITEM_MOD_AGILITY 
ITEM_MOD_STRENGTH 
ITEM_MOD_INTELLECT 
ITEM_MOD_SPIRIT 
ITEM_MOD_STAMINA 
ITEM_MOD_DEFENSE_SKILL_RATING 
ITEM_MOD_DODGE_RATING 
ITEM_MOD_PARRY_RATING 
ITEM_MOD_BLOCK_RATING 
ITEM_MOD_HIT_MELEE_RATING 
ITEM_MOD_HIT_RANGED_RATING 
ITEM_MOD_HIT_SPELL_RATING 
ITEM_MOD_CRIT_MELEE_RATING 
ITEM_MOD_CRIT_RANGED_RATING 
ITEM_MOD_CRIT_SPELL_RATING 
ITEM_MOD_HIT_TAKEN_MELEE_RATING 
ITEM_MOD_HIT_TAKEN_RANGED_RATING 
ITEM_MOD_HIT_TAKEN_SPELL_RATING 
ITEM_MOD_CRIT_TAKEN_MELEE_RATING 
ITEM_MOD_CRIT_TAKEN_RANGED_RATING 
ITEM_MOD_CRIT_TAKEN_SPELL_RATING 
ITEM_MOD_HASTE_MELEE_RATING 
ITEM_MOD_HASTE_RANGED_RATING 
ITEM_MOD_HASTE_SPELL_RATING 
ITEM_MOD_HIT_RATING 
ITEM_MOD_CRIT_RATING 
ITEM_MOD_HIT_TAKEN_RATING 
ITEM_MOD_CRIT_TAKEN_RATING 
ITEM_MOD_RESILIENCE_RATING 
ITEM_MOD_HASTE_RATING 
ITEM_MOD_EXPERTISE_RATING 
ITEM_MOD_ATTACK_POWER 
ITEM_MOD_RANGED_ATTACK_POWER 
ITEM_MOD_SPELL_HEALING_DONE 
ITEM_MOD_SPELL_DAMAGE_DONE 
ITEM_MOD_MANA_REGENERATION 
ITEM_MOD_ARMOR_PENETRATION_RATING 
ITEM_MOD_SPELL_POWER 
ITEM_MOD_HEALTH_REGEN 
ITEM_MOD_SPELL_PENETRATION 
ITEM_MOD_BLOCK_VALUE 
26{
27 ITEM_MOD_MANA = 0,
62 //ITEM_MOD_FERAL_ATTACK_POWER = 40, not in 3.3
63 ITEM_MOD_SPELL_HEALING_DONE = 41, // deprecated
64 ITEM_MOD_SPELL_DAMAGE_DONE = 42, // deprecated
71};
@ ITEM_MOD_CRIT_TAKEN_RANGED_RATING
Definition ItemTemplate.h:48
@ ITEM_MOD_HIT_MELEE_RATING
Definition ItemTemplate.h:38
@ ITEM_MOD_HIT_TAKEN_MELEE_RATING
Definition ItemTemplate.h:44
@ ITEM_MOD_STAMINA
Definition ItemTemplate.h:33
@ ITEM_MOD_HIT_SPELL_RATING
Definition ItemTemplate.h:40
@ ITEM_MOD_SPELL_PENETRATION
Definition ItemTemplate.h:69
@ ITEM_MOD_PARRY_RATING
Definition ItemTemplate.h:36
@ ITEM_MOD_DEFENSE_SKILL_RATING
Definition ItemTemplate.h:34
@ ITEM_MOD_HASTE_RANGED_RATING
Definition ItemTemplate.h:51
@ ITEM_MOD_CRIT_TAKEN_RATING
Definition ItemTemplate.h:56
@ ITEM_MOD_EXPERTISE_RATING
Definition ItemTemplate.h:59
@ ITEM_MOD_MANA
Definition ItemTemplate.h:27
@ ITEM_MOD_RANGED_ATTACK_POWER
Definition ItemTemplate.h:61
@ ITEM_MOD_HEALTH
Definition ItemTemplate.h:28
@ ITEM_MOD_CRIT_TAKEN_SPELL_RATING
Definition ItemTemplate.h:49
@ ITEM_MOD_HIT_TAKEN_SPELL_RATING
Definition ItemTemplate.h:46
@ ITEM_MOD_SPIRIT
Definition ItemTemplate.h:32
@ ITEM_MOD_SPELL_POWER
Definition ItemTemplate.h:67
@ ITEM_MOD_HASTE_SPELL_RATING
Definition ItemTemplate.h:52
@ ITEM_MOD_ATTACK_POWER
Definition ItemTemplate.h:60
@ ITEM_MOD_HASTE_RATING
Definition ItemTemplate.h:58
@ ITEM_MOD_HIT_RANGED_RATING
Definition ItemTemplate.h:39
@ ITEM_MOD_CRIT_SPELL_RATING
Definition ItemTemplate.h:43
@ ITEM_MOD_BLOCK_VALUE
Definition ItemTemplate.h:70
@ ITEM_MOD_CRIT_RANGED_RATING
Definition ItemTemplate.h:42
@ ITEM_MOD_CRIT_MELEE_RATING
Definition ItemTemplate.h:41
@ ITEM_MOD_STRENGTH
Definition ItemTemplate.h:30
@ ITEM_MOD_HEALTH_REGEN
Definition ItemTemplate.h:68
@ ITEM_MOD_BLOCK_RATING
Definition ItemTemplate.h:37
@ ITEM_MOD_ARMOR_PENETRATION_RATING
Definition ItemTemplate.h:66
@ ITEM_MOD_SPELL_HEALING_DONE
Definition ItemTemplate.h:63
@ ITEM_MOD_CRIT_TAKEN_MELEE_RATING
Definition ItemTemplate.h:47
@ ITEM_MOD_HIT_TAKEN_RATING
Definition ItemTemplate.h:55
@ ITEM_MOD_HASTE_MELEE_RATING
Definition ItemTemplate.h:50
@ ITEM_MOD_MANA_REGENERATION
Definition ItemTemplate.h:65
@ ITEM_MOD_HIT_RATING
Definition ItemTemplate.h:53
@ ITEM_MOD_INTELLECT
Definition ItemTemplate.h:31
@ ITEM_MOD_RESILIENCE_RATING
Definition ItemTemplate.h:57
@ ITEM_MOD_AGILITY
Definition ItemTemplate.h:29
@ ITEM_MOD_DODGE_RATING
Definition ItemTemplate.h:35
@ ITEM_MOD_CRIT_RATING
Definition ItemTemplate.h:54
@ ITEM_MOD_SPELL_DAMAGE_DONE
Definition ItemTemplate.h:64
@ ITEM_MOD_HIT_TAKEN_RANGED_RATING
Definition ItemTemplate.h:45

◆ ItemSpelltriggerType

Enumerator
ITEM_SPELLTRIGGER_ON_USE 
ITEM_SPELLTRIGGER_ON_EQUIP 
ITEM_SPELLTRIGGER_CHANCE_ON_HIT 
ITEM_SPELLTRIGGER_SOULSTONE 
ITEM_SPELLTRIGGER_ON_NO_DELAY_USE 
ITEM_SPELLTRIGGER_LEARN_SPELL_ID 
76{
77 ITEM_SPELLTRIGGER_ON_USE = 0, // use after equip cooldown
81 /*
82 * ItemSpelltriggerType 5 might have changed on 2.4.3/3.0.3: Such auras
83 * will be applied on item pickup and removed on item loss - maybe on the
84 * other hand the item is destroyed if the aura is removed ("removed on
85 * death" of spell 57348 makes me think so)
86 */
87 ITEM_SPELLTRIGGER_ON_NO_DELAY_USE = 5, // no equip cooldown
88 ITEM_SPELLTRIGGER_LEARN_SPELL_ID = 6 // used in item_template.spell_2 with spell_id with SPELL_GENERIC_LEARN in spell_1
89};
@ ITEM_SPELLTRIGGER_LEARN_SPELL_ID
Definition ItemTemplate.h:88
@ ITEM_SPELLTRIGGER_SOULSTONE
Definition ItemTemplate.h:80
@ ITEM_SPELLTRIGGER_ON_USE
Definition ItemTemplate.h:77
@ ITEM_SPELLTRIGGER_CHANCE_ON_HIT
Definition ItemTemplate.h:79
@ ITEM_SPELLTRIGGER_ON_NO_DELAY_USE
Definition ItemTemplate.h:87
@ ITEM_SPELLTRIGGER_ON_EQUIP
Definition ItemTemplate.h:78

◆ ItemSubclassArmor

Enumerator
ITEM_SUBCLASS_ARMOR_MISC 
ITEM_SUBCLASS_ARMOR_CLOTH 
ITEM_SUBCLASS_ARMOR_LEATHER 
ITEM_SUBCLASS_ARMOR_MAIL 
ITEM_SUBCLASS_ARMOR_PLATE 
ITEM_SUBCLASS_ARMOR_BUCKLER 
ITEM_SUBCLASS_ARMOR_SHIELD 
ITEM_SUBCLASS_ARMOR_LIBRAM 
ITEM_SUBCLASS_ARMOR_IDOL 
ITEM_SUBCLASS_ARMOR_TOTEM 
ITEM_SUBCLASS_ARMOR_SIGIL 

◆ ItemSubclassConsumable

Enumerator
ITEM_SUBCLASS_CONSUMABLE 
ITEM_SUBCLASS_POTION 
ITEM_SUBCLASS_ELIXIR 
ITEM_SUBCLASS_FLASK 
ITEM_SUBCLASS_SCROLL 
ITEM_SUBCLASS_FOOD 
ITEM_SUBCLASS_ITEM_ENHANCEMENT 
ITEM_SUBCLASS_BANDAGE 
ITEM_SUBCLASS_CONSUMABLE_OTHER 
313{
323};
@ ITEM_SUBCLASS_CONSUMABLE_OTHER
Definition ItemTemplate.h:322
@ ITEM_SUBCLASS_FOOD
Definition ItemTemplate.h:319
@ ITEM_SUBCLASS_SCROLL
Definition ItemTemplate.h:318
@ ITEM_SUBCLASS_FLASK
Definition ItemTemplate.h:317
@ ITEM_SUBCLASS_CONSUMABLE
Definition ItemTemplate.h:314
@ ITEM_SUBCLASS_ELIXIR
Definition ItemTemplate.h:316
@ ITEM_SUBCLASS_BANDAGE
Definition ItemTemplate.h:321
@ ITEM_SUBCLASS_ITEM_ENHANCEMENT
Definition ItemTemplate.h:320

◆ ItemSubclassContainer

Enumerator
ITEM_SUBCLASS_CONTAINER 
ITEM_SUBCLASS_SOUL_CONTAINER 
ITEM_SUBCLASS_HERB_CONTAINER 
ITEM_SUBCLASS_ENCHANTING_CONTAINER 
ITEM_SUBCLASS_ENGINEERING_CONTAINER 
ITEM_SUBCLASS_GEM_CONTAINER 
ITEM_SUBCLASS_MINING_CONTAINER 
ITEM_SUBCLASS_LEATHERWORKING_CONTAINER 
ITEM_SUBCLASS_INSCRIPTION_CONTAINER 
328{
338};
@ ITEM_SUBCLASS_CONTAINER
Definition ItemTemplate.h:329
@ ITEM_SUBCLASS_INSCRIPTION_CONTAINER
Definition ItemTemplate.h:337
@ ITEM_SUBCLASS_LEATHERWORKING_CONTAINER
Definition ItemTemplate.h:336
@ ITEM_SUBCLASS_GEM_CONTAINER
Definition ItemTemplate.h:334
@ ITEM_SUBCLASS_SOUL_CONTAINER
Definition ItemTemplate.h:330
@ ITEM_SUBCLASS_ENCHANTING_CONTAINER
Definition ItemTemplate.h:332
@ ITEM_SUBCLASS_MINING_CONTAINER
Definition ItemTemplate.h:335
@ ITEM_SUBCLASS_HERB_CONTAINER
Definition ItemTemplate.h:331
@ ITEM_SUBCLASS_ENGINEERING_CONTAINER
Definition ItemTemplate.h:333

◆ ItemSubclassGem

Enumerator
ITEM_SUBCLASS_GEM_RED 
ITEM_SUBCLASS_GEM_BLUE 
ITEM_SUBCLASS_GEM_YELLOW 
ITEM_SUBCLASS_GEM_PURPLE 
ITEM_SUBCLASS_GEM_GREEN 
ITEM_SUBCLASS_GEM_ORANGE 
ITEM_SUBCLASS_GEM_META 
ITEM_SUBCLASS_GEM_SIMPLE 
ITEM_SUBCLASS_GEM_PRISMATIC 

◆ ItemSubclassGeneric

Enumerator
ITEM_SUBCLASS_GENERIC 
446{
448};

◆ ItemSubclassGlyph

Enumerator
ITEM_SUBCLASS_GLYPH_WARRIOR 
ITEM_SUBCLASS_GLYPH_PALADIN 
ITEM_SUBCLASS_GLYPH_HUNTER 
ITEM_SUBCLASS_GLYPH_ROGUE 
ITEM_SUBCLASS_GLYPH_PRIEST 
ITEM_SUBCLASS_GLYPH_DEATH_KNIGHT 
ITEM_SUBCLASS_GLYPH_SHAMAN 
ITEM_SUBCLASS_GLYPH_MAGE 
ITEM_SUBCLASS_GLYPH_WARLOCK 
ITEM_SUBCLASS_GLYPH_DRUID 

◆ ItemSubclassJunk

Enumerator
ITEM_SUBCLASS_JUNK 
ITEM_SUBCLASS_JUNK_REAGENT 
ITEM_SUBCLASS_JUNK_PET 
ITEM_SUBCLASS_JUNK_HOLIDAY 
ITEM_SUBCLASS_JUNK_OTHER 
ITEM_SUBCLASS_JUNK_MOUNT 

◆ ItemSubclassKey

Enumerator
ITEM_SUBCLASS_KEY 
ITEM_SUBCLASS_LOCKPICK 
494{
497};

◆ ItemSubclassMoney

Enumerator
ITEM_SUBCLASS_MONEY 
470{
472};

◆ ItemSubclassPermanent

Enumerator
ITEM_SUBCLASS_PERMANENT 
502{
504};

◆ ItemSubclassProjectile

Enumerator
ITEM_SUBCLASS_WAND 
ITEM_SUBCLASS_BOLT 
ITEM_SUBCLASS_ARROW 
ITEM_SUBCLASS_BULLET 
ITEM_SUBCLASS_THROWN 
413{
414 ITEM_SUBCLASS_WAND = 0, // ABS
415 ITEM_SUBCLASS_BOLT = 1, // ABS
418 ITEM_SUBCLASS_THROWN = 4 // ABS
419};

◆ ItemSubclassQuest

Enumerator
ITEM_SUBCLASS_QUEST 
487{
489};

◆ ItemSubclassQuiver

Enumerator
ITEM_SUBCLASS_QUIVER0 
ITEM_SUBCLASS_QUIVER1 
ITEM_SUBCLASS_QUIVER 
ITEM_SUBCLASS_AMMO_POUCH 
477{
478 ITEM_SUBCLASS_QUIVER0 = 0, // ABS
479 ITEM_SUBCLASS_QUIVER1 = 1, // ABS
482};

◆ ItemSubclassReagent

Enumerator
ITEM_SUBCLASS_REAGENT 
406{
408};

◆ ItemSubclassRecipe

Enumerator
ITEM_SUBCLASS_BOOK 
ITEM_SUBCLASS_LEATHERWORKING_PATTERN 
ITEM_SUBCLASS_TAILORING_PATTERN 
ITEM_SUBCLASS_ENGINEERING_SCHEMATIC 
ITEM_SUBCLASS_BLACKSMITHING 
ITEM_SUBCLASS_COOKING_RECIPE 
ITEM_SUBCLASS_ALCHEMY_RECIPE 
ITEM_SUBCLASS_FIRST_AID_MANUAL 
ITEM_SUBCLASS_ENCHANTING_FORMULA 
ITEM_SUBCLASS_FISHING_MANUAL 
ITEM_SUBCLASS_JEWELCRAFTING_RECIPE 

◆ ItemSubclassTradeGoods

Enumerator
ITEM_SUBCLASS_TRADE_GOODS 
ITEM_SUBCLASS_PARTS 
ITEM_SUBCLASS_EXPLOSIVES 
ITEM_SUBCLASS_DEVICES 
ITEM_SUBCLASS_JEWELCRAFTING 
ITEM_SUBCLASS_CLOTH 
ITEM_SUBCLASS_LEATHER 
ITEM_SUBCLASS_METAL_STONE 
ITEM_SUBCLASS_MEAT 
ITEM_SUBCLASS_HERB 
ITEM_SUBCLASS_ELEMENTAL 
ITEM_SUBCLASS_TRADE_GOODS_OTHER 
ITEM_SUBCLASS_ENCHANTING 
ITEM_SUBCLASS_MATERIAL 
ITEM_SUBCLASS_ARMOR_ENCHANTMENT 
ITEM_SUBCLASS_WEAPON_ENCHANTMENT 

◆ ItemSubclassWeapon

Enumerator
ITEM_SUBCLASS_WEAPON_AXE 
ITEM_SUBCLASS_WEAPON_AXE2 
ITEM_SUBCLASS_WEAPON_BOW 
ITEM_SUBCLASS_WEAPON_GUN 
ITEM_SUBCLASS_WEAPON_MACE 
ITEM_SUBCLASS_WEAPON_MACE2 
ITEM_SUBCLASS_WEAPON_POLEARM 
ITEM_SUBCLASS_WEAPON_SWORD 
ITEM_SUBCLASS_WEAPON_SWORD2 
ITEM_SUBCLASS_WEAPON_obsolete 
ITEM_SUBCLASS_WEAPON_STAFF 
ITEM_SUBCLASS_WEAPON_EXOTIC 
ITEM_SUBCLASS_WEAPON_EXOTIC2 
ITEM_SUBCLASS_WEAPON_FIST 
ITEM_SUBCLASS_WEAPON_MISC 
ITEM_SUBCLASS_WEAPON_DAGGER 
ITEM_SUBCLASS_WEAPON_THROWN 
ITEM_SUBCLASS_WEAPON_SPEAR 
ITEM_SUBCLASS_WEAPON_CROSSBOW 
ITEM_SUBCLASS_WEAPON_WAND 
ITEM_SUBCLASS_WEAPON_FISHING_POLE 
343{
365};
@ ITEM_SUBCLASS_WEAPON_AXE2
Definition ItemTemplate.h:345
@ ITEM_SUBCLASS_WEAPON_MISC
Definition ItemTemplate.h:358
@ ITEM_SUBCLASS_WEAPON_SPEAR
Definition ItemTemplate.h:361
@ ITEM_SUBCLASS_WEAPON_STAFF
Definition ItemTemplate.h:354
@ ITEM_SUBCLASS_WEAPON_MACE
Definition ItemTemplate.h:348
@ ITEM_SUBCLASS_WEAPON_EXOTIC2
Definition ItemTemplate.h:356
@ ITEM_SUBCLASS_WEAPON_obsolete
Definition ItemTemplate.h:353
@ ITEM_SUBCLASS_WEAPON_FISHING_POLE
Definition ItemTemplate.h:364
@ ITEM_SUBCLASS_WEAPON_MACE2
Definition ItemTemplate.h:349
@ ITEM_SUBCLASS_WEAPON_DAGGER
Definition ItemTemplate.h:359
@ ITEM_SUBCLASS_WEAPON_SWORD
Definition ItemTemplate.h:351
@ ITEM_SUBCLASS_WEAPON_AXE
Definition ItemTemplate.h:344
@ ITEM_SUBCLASS_WEAPON_WAND
Definition ItemTemplate.h:363
@ ITEM_SUBCLASS_WEAPON_EXOTIC
Definition ItemTemplate.h:355
@ ITEM_SUBCLASS_WEAPON_SWORD2
Definition ItemTemplate.h:352
@ ITEM_SUBCLASS_WEAPON_FIST
Definition ItemTemplate.h:357
@ ITEM_SUBCLASS_WEAPON_POLEARM
Definition ItemTemplate.h:350

◆ SocketColor

Enumerator
SOCKET_COLOR_META 
SOCKET_COLOR_RED 
SOCKET_COLOR_YELLOW 
SOCKET_COLOR_BLUE 
245{
250};
@ SOCKET_COLOR_META
Definition ItemTemplate.h:246
@ SOCKET_COLOR_YELLOW
Definition ItemTemplate.h:248
@ SOCKET_COLOR_RED
Definition ItemTemplate.h:247
@ SOCKET_COLOR_BLUE
Definition ItemTemplate.h:249

Function Documentation

◆ ItemSubClassToDurabilityMultiplierId()

uint8 ItemSubClassToDurabilityMultiplierId ( uint32  ItemClass,
uint32  ItemSubClass 
)
inline
558{
559 switch (ItemClass)
560 {
562 return ItemSubClass;
563 case ITEM_CLASS_ARMOR:
564 return ItemSubClass + 21;
565 default:
566 return 0;
567 }
568}

References ITEM_CLASS_ARMOR, and ITEM_CLASS_WEAPON.

Referenced by Player::DurabilityRepair(), and WorldSession::HandleSellItemOpcode().

Variable Documentation

◆ MaxItemSubclassValues