TrinityCore
SpellMgr.h File Reference
#include "Define.h"
#include "DBCEnums.h"
#include "Duration.h"
#include "Errors.h"
#include "FlagsArray.h"
#include "IteratorPair.h"
#include "RaceMask.h"
#include "SharedDefines.h"
#include "SpellDefines.h"
#include <functional>
#include <map>
#include <set>
#include <vector>
#include <unordered_map>
#include <unordered_set>
+ Include dependency graph for SpellMgr.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SpellProcEntry
 
struct  SpellEnchantProcEntry
 
struct  std::hash< SpellGroup >
 
struct  SpellThreatEntry
 
struct  SpellTargetPosition
 
class  PetAura
 
struct  SpellArea
 
struct  SpellChainNode
 
struct  SpellLearnSkillNode
 
struct  SpellLearnSpellNode
 
struct  PetDefaultSpellsEntry
 
struct  SpellInfoLoadHelper
 
class  SpellMgr
 

Macros

#define SPELL_LINKED_MAX_SPELLS   200000
 
#define MELEE_BASED_TRIGGER_MASK
 
#define PROC_ATTR_ALL_ALLOWED
 
#define SPELL_GROUP_DB_RANGE_MIN   1000
 
#define MAX_CREATURE_SPELL_DATA_SLOT   4
 
#define sSpellMgr   SpellMgr::instance()
 

Typedefs

typedef std::unordered_map< uint32, SpellEnchantProcEntrySpellEnchantProcEventMap
 
typedef std::unordered_multimap< uint32, SpellGroupSpellSpellGroupMap
 
typedef std::pair< SpellSpellGroupMap::const_iterator, SpellSpellGroupMap::const_iterator > SpellSpellGroupMapBounds
 
typedef std::unordered_multimap< SpellGroup, int32SpellGroupSpellMap
 
typedef std::pair< SpellGroupSpellMap::const_iterator, SpellGroupSpellMap::const_iterator > SpellGroupSpellMapBounds
 
typedef std::unordered_map< SpellGroup, SpellGroupStackRuleSpellGroupStackMap
 
typedef std::unordered_map< SpellGroup, std::unordered_set< uint32 > > SameEffectStackMap
 
typedef std::unordered_map< uint32, SpellThreatEntrySpellThreatMap
 
typedef std::map< std::pair< uint32, SpellEffIndex >, SpellTargetPositionSpellTargetPositionMap
 
typedef std::map< uint32, PetAuraSpellPetAuraMap
 
typedef std::multimap< uint32, SpellAreaSpellAreaMap
 
typedef std::multimap< uint32, SpellArea const * > SpellAreaForQuestMap
 
typedef std::multimap< uint32, SpellArea const * > SpellAreaForAuraMap
 
typedef std::multimap< uint32, SpellArea const * > SpellAreaForAreaMap
 
typedef std::pair< SpellAreaMap::const_iterator, SpellAreaMap::const_iterator > SpellAreaMapBounds
 
typedef std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
 
typedef std::pair< SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator > SpellAreaForAuraMapBounds
 
typedef std::pair< SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator > SpellAreaForAreaMapBounds
 
typedef std::unordered_map< uint32, SpellChainNodeSpellChainMap
 
typedef std::multimap< uint32, uint32SpellRequiredMap
 
typedef std::pair< SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator > SpellRequiredMapBounds
 
typedef std::multimap< uint32, uint32SpellsRequiringSpellMap
 
typedef std::pair< SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator > SpellsRequiringSpellMapBounds
 
typedef std::unordered_map< uint32, SpellLearnSkillNodeSpellLearnSkillMap
 
typedef std::multimap< uint32, SpellLearnSpellNodeSpellLearnSpellMap
 
typedef std::pair< SpellLearnSpellMap::const_iterator, SpellLearnSpellMap::const_iterator > SpellLearnSpellMapBounds
 
typedef std::multimap< uint32, SkillLineAbilityEntry const * > SkillLineAbilityMap
 
typedef std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
 
typedef std::set< uint32PetFamilySpellsSet
 
typedef std::map< uint32, PetFamilySpellsSetPetFamilySpellsStore
 
typedef std::multimap< uint32, uint32PetLevelupSpellSet
 
typedef std::map< uint32, PetLevelupSpellSetPetLevelupSpellMap
 
typedef std::map< uint32, uint32SpellDifficultySearcherMap
 
typedef std::map< int32, PetDefaultSpellsEntryPetDefaultSpellsMap
 
typedef std::unordered_map< int32, std::vector< int32 > > SpellLinkedMap
 
typedef std::map< std::pair< uint32, uint8 >, uint32SpellTotemModelMap
 

Enumerations

enum  SpellCategories {
  SPELLCATEGORY_HEALTH_MANA_POTIONS = 4, SPELLCATEGORY_DEVOUR_MAGIC = 12, SPELLCATEGORY_JUDGEMENT = 1210, SPELLCATEGORY_FOOD = 11,
  SPELLCATEGORY_DRINK = 59
}
 
enum  SpellFamilyFlag {
  SPELLFAMILYFLAG0_ROGUE_VANISH = 0x00000800, SPELLFAMILYFLAG0_ROGUE_VAN_SPRINT = 0x00000840, SPELLFAMILYFLAG1_ROGUE_SHADOWSTEP = 0x00000200, SPELLFAMILYFLAG0_ROGUE_KICK = 0x00000010,
  SPELLFAMILYFLAG1_ROGUE_DISMANTLE_SMOKE_BOMB = 0x80100000, SPELLFAMILYFLAG_WARRIOR_CHARGE = 0x00000001, SPELLFAMILYFLAG_WARRIOR_SLAM = 0x00200000, SPELLFAMILYFLAG_WARRIOR_EXECUTE = 0x20000000,
  SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW = 0x04000000, SPELLFAMILYFLAG_WARLOCK_LIFETAP = 0x00040000, SPELLFAMILYFLAG2_DRUID_STARFALL = 0x00000100, SPELLFAMILYFLAG1_PALADIN_DIVINESTORM = 0x00020000,
  SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK = 0x80000000, SPELLFAMILYFLAG_SHAMAN_HEALING_STREAM = 0x00002000, SPELLFAMILYFLAG_SHAMAN_MANA_SPRING = 0x00004000, SPELLFAMILYFLAG2_SHAMAN_LAVA_LASH = 0x00000004,
  SPELLFAMILYFLAG_SHAMAN_FIRE_NOVA = 0x28000000, SPELLFAMILYFLAG_DK_DEATH_STRIKE = 0x00000010, SPELLFAMILYFLAG_DK_DEATH_COIL = 0x00002000, SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS = 0x04000000
}
 
enum  SpellLinkedType { SPELL_LINK_CAST = 0, SPELL_LINK_HIT = 1 * 200000, SPELL_LINK_AURA = 2 * 200000, SPELL_LINK_REMOVE = 0 }
 
enum  ProcFlags : uint32 {
  PROC_FLAG_NONE = 0x00000000, PROC_FLAG_HEARTBEAT = 0x00000001, PROC_FLAG_KILL = 0x00000002, PROC_FLAG_DEAL_MELEE_SWING = 0x00000004,
  PROC_FLAG_TAKE_MELEE_SWING = 0x00000008, PROC_FLAG_DEAL_MELEE_ABILITY = 0x00000010, PROC_FLAG_TAKE_MELEE_ABILITY = 0x00000020, PROC_FLAG_DEAL_RANGED_ATTACK = 0x00000040,
  PROC_FLAG_TAKE_RANGED_ATTACK = 0x00000080, PROC_FLAG_DEAL_RANGED_ABILITY = 0x00000100, PROC_FLAG_TAKE_RANGED_ABILITY = 0x00000200, PROC_FLAG_DEAL_HELPFUL_ABILITY = 0x00000400,
  PROC_FLAG_TAKE_HELPFUL_ABILITY = 0x00000800, PROC_FLAG_DEAL_HARMFUL_ABILITY = 0x00001000, PROC_FLAG_TAKE_HARMFUL_ABILITY = 0x00002000, PROC_FLAG_DEAL_HELPFUL_SPELL = 0x00004000,
  PROC_FLAG_TAKE_HELPFUL_SPELL = 0x00008000, PROC_FLAG_DEAL_HARMFUL_SPELL = 0x00010000, PROC_FLAG_TAKE_HARMFUL_SPELL = 0x00020000, PROC_FLAG_DEAL_HARMFUL_PERIODIC = 0x00040000,
  PROC_FLAG_TAKE_HARMFUL_PERIODIC = 0x00080000, PROC_FLAG_TAKE_ANY_DAMAGE = 0x00100000, PROC_FLAG_DEAL_HELPFUL_PERIODIC = 0x00200000, PROC_FLAG_MAIN_HAND_WEAPON_SWING = 0x00400000,
  PROC_FLAG_OFF_HAND_WEAPON_SWING = 0x00800000, PROC_FLAG_DEATH = 0x01000000, PROC_FLAG_JUMP = 0x02000000, PROC_FLAG_PROC_CLONE_SPELL = 0x04000000,
  PROC_FLAG_ENTER_COMBAT = 0x08000000, PROC_FLAG_ENCOUNTER_START = 0x10000000, PROC_FLAG_CAST_ENDED = 0x20000000, PROC_FLAG_LOOTED = 0x40000000,
  PROC_FLAG_TAKE_HELPFUL_PERIODIC = 0x80000000, AUTO_ATTACK_PROC_FLAG_MASK, MELEE_PROC_FLAG_MASK, RANGED_PROC_FLAG_MASK,
  SPELL_PROC_FLAG_MASK, DONE_HIT_PROC_FLAG_MASK, TAKEN_HIT_PROC_FLAG_MASK, REQ_SPELL_PHASE_PROC_FLAG_MASK = SPELL_PROC_FLAG_MASK & DONE_HIT_PROC_FLAG_MASK
}
 
enum  ProcFlags2 : int32 { PROC_FLAG_2_NONE = 0x00000000, PROC_FLAG_2_TARGET_DIES = 0x00000001, PROC_FLAG_2_KNOCKBACK = 0x00000002, PROC_FLAG_2_CAST_SUCCESSFUL = 0x00000004 }
 
enum  ProcFlagsSpellType : uint32 {
  PROC_SPELL_TYPE_NONE = 0x0000000, PROC_SPELL_TYPE_DAMAGE = 0x0000001, PROC_SPELL_TYPE_HEAL = 0x0000002, PROC_SPELL_TYPE_NO_DMG_HEAL = 0x0000004,
  PROC_SPELL_TYPE_MASK_ALL = PROC_SPELL_TYPE_DAMAGE | PROC_SPELL_TYPE_HEAL | PROC_SPELL_TYPE_NO_DMG_HEAL
}
 
enum  ProcFlagsSpellPhase : uint32 {
  PROC_SPELL_PHASE_NONE = 0x0000000, PROC_SPELL_PHASE_CAST = 0x0000001, PROC_SPELL_PHASE_HIT = 0x0000002, PROC_SPELL_PHASE_FINISH = 0x0000004,
  PROC_SPELL_PHASE_MASK_ALL = PROC_SPELL_PHASE_CAST | PROC_SPELL_PHASE_HIT | PROC_SPELL_PHASE_FINISH
}
 
enum  ProcFlagsHit : uint32 {
  PROC_HIT_NONE = 0x0000000, PROC_HIT_NORMAL = 0x0000001, PROC_HIT_CRITICAL = 0x0000002, PROC_HIT_MISS = 0x0000004,
  PROC_HIT_FULL_RESIST = 0x0000008, PROC_HIT_DODGE = 0x0000010, PROC_HIT_PARRY = 0x0000020, PROC_HIT_BLOCK = 0x0000040,
  PROC_HIT_EVADE = 0x0000080, PROC_HIT_IMMUNE = 0x0000100, PROC_HIT_DEFLECT = 0x0000200, PROC_HIT_ABSORB = 0x0000400,
  PROC_HIT_REFLECT = 0x0000800, PROC_HIT_INTERRUPT = 0x0001000, PROC_HIT_FULL_BLOCK = 0x0002000, PROC_HIT_MASK_ALL = 0x0003FFF
}
 
enum  ProcAttributes : uint32 {
  PROC_ATTR_NONE = 0x0000000, PROC_ATTR_REQ_EXP_OR_HONOR = 0x0000001, PROC_ATTR_TRIGGERED_CAN_PROC = 0x0000002, PROC_ATTR_REQ_POWER_COST = 0x0000004,
  PROC_ATTR_REQ_SPELLMOD = 0x0000008, PROC_ATTR_USE_STACKS_FOR_CHARGES = 0x0000010, PROC_ATTR_REDUCE_PROC_60 = 0x0000080, PROC_ATTR_CANT_PROC_FROM_ITEM_CAST = 0x0000100
}
 
enum  EnchantProcAttributes { ENCHANT_PROC_ATTR_WHITE_HIT = 0x0000001, ENCHANT_PROC_ATTR_LIMIT_60 = 0x0000002 }
 
enum  SpellGroup {
  SPELL_GROUP_NONE = 0, SPELL_GROUP_ELIXIR_BATTLE = 1, SPELL_GROUP_ELIXIR_GUARDIAN = 2, SPELL_GROUP_ELIXIR_UNSTABLE = 3,
  SPELL_GROUP_ELIXIR_SHATTRATH = 4, SPELL_GROUP_CORE_RANGE_MAX = 5
}
 
enum  SpellGroupStackRule {
  SPELL_GROUP_STACK_RULE_DEFAULT, SPELL_GROUP_STACK_RULE_EXCLUSIVE, SPELL_GROUP_STACK_RULE_EXCLUSIVE_FROM_SAME_CASTER, SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT,
  SPELL_GROUP_STACK_RULE_EXCLUSIVE_HIGHEST, SPELL_GROUP_STACK_RULE_MAX
}
 
enum  EffectRadiusIndex {
  EFFECT_RADIUS_2_YARDS = 7, EFFECT_RADIUS_5_YARDS = 8, EFFECT_RADIUS_20_YARDS = 9, EFFECT_RADIUS_30_YARDS = 10,
  EFFECT_RADIUS_45_YARDS = 11, EFFECT_RADIUS_100_YARDS = 12, EFFECT_RADIUS_10_YARDS = 13, EFFECT_RADIUS_8_YARDS = 14,
  EFFECT_RADIUS_3_YARDS = 15, EFFECT_RADIUS_1_YARD = 16, EFFECT_RADIUS_13_YARDS = 17, EFFECT_RADIUS_15_YARDS = 18,
  EFFECT_RADIUS_18_YARDS = 19, EFFECT_RADIUS_25_YARDS = 20, EFFECT_RADIUS_35_YARDS = 21, EFFECT_RADIUS_200_YARDS = 22,
  EFFECT_RADIUS_40_YARDS = 23, EFFECT_RADIUS_65_YARDS = 24, EFFECT_RADIUS_70_YARDS = 25, EFFECT_RADIUS_4_YARDS = 26,
  EFFECT_RADIUS_50_YARDS = 27, EFFECT_RADIUS_50000_YARDS = 28, EFFECT_RADIUS_6_YARDS = 29, EFFECT_RADIUS_500_YARDS = 30,
  EFFECT_RADIUS_80_YARDS = 31, EFFECT_RADIUS_12_YARDS = 32, EFFECT_RADIUS_99_YARDS = 33, EFFECT_RADIUS_55_YARDS = 35,
  EFFECT_RADIUS_0_YARDS = 36, EFFECT_RADIUS_7_YARDS = 37, EFFECT_RADIUS_21_YARDS = 38, EFFECT_RADIUS_34_YARDS = 39,
  EFFECT_RADIUS_9_YARDS = 40, EFFECT_RADIUS_150_YARDS = 41, EFFECT_RADIUS_11_YARDS = 42, EFFECT_RADIUS_16_YARDS = 43,
  EFFECT_RADIUS_0_5_YARDS = 44, EFFECT_RADIUS_10_YARDS_2 = 45, EFFECT_RADIUS_5_YARDS_2 = 46, EFFECT_RADIUS_15_YARDS_2 = 47,
  EFFECT_RADIUS_60_YARDS = 48, EFFECT_RADIUS_90_YARDS = 49, EFFECT_RADIUS_15_YARDS_3 = 50, EFFECT_RADIUS_60_YARDS_2 = 51,
  EFFECT_RADIUS_5_YARDS_3 = 52, EFFECT_RADIUS_60_YARDS_3 = 53, EFFECT_RADIUS_50000_YARDS_2 = 54, EFFECT_RADIUS_130_YARDS = 55,
  EFFECT_RADIUS_38_YARDS = 56, EFFECT_RADIUS_45_YARDS_2 = 57, EFFECT_RADIUS_32_YARDS = 59, EFFECT_RADIUS_44_YARDS = 60,
  EFFECT_RADIUS_14_YARDS = 61, EFFECT_RADIUS_47_YARDS = 62, EFFECT_RADIUS_23_YARDS = 63, EFFECT_RADIUS_3_5_YARDS = 64,
  EFFECT_RADIUS_80_YARDS_2 = 65
}
 
enum  SpellAreaFlag { SPELL_AREA_FLAG_AUTOCAST = 0x1, SPELL_AREA_FLAG_AUTOREMOVE = 0x2, SPELL_AREA_FLAG_IGNORE_AUTOCAST_ON_QUEST_STATUS_CHANGE = 0x4 }
 

Functions

 DEFINE_ENUM_FLAG (ProcFlags)
 
 DEFINE_ENUM_FLAG (ProcFlags2)
 
 DEFINE_ENUM_FLAG (ProcFlagsSpellType)
 
 DEFINE_ENUM_FLAG (ProcFlagsSpellPhase)
 
 DEFINE_ENUM_FLAG (ProcFlagsHit)
 
 DEFINE_ENUM_FLAG (ProcAttributes)
 
bool IsPrimaryProfessionSkill (uint32 skill)
 
bool IsWeaponSkill (uint32 skill)
 
bool IsProfessionSkill (uint32 skill)
 
bool IsProfessionOrRidingSkill (uint32 skill)
 
bool IsPartOfSkillLine (uint32 skillId, uint32 spellId)
 

Variables

TC_GAME_API PetFamilySpellsStore sPetFamilySpellsStore
 

Macro Definition Documentation

◆ MAX_CREATURE_SPELL_DATA_SLOT

#define MAX_CREATURE_SPELL_DATA_SLOT   4

◆ MELEE_BASED_TRIGGER_MASK

#define MELEE_BASED_TRIGGER_MASK
Value:
PROC_FLAG_TAKE_MELEE_SWING | \
PROC_FLAG_DEAL_MELEE_ABILITY | \
PROC_FLAG_TAKE_MELEE_ABILITY | \
PROC_FLAG_DEAL_RANGED_ATTACK | \
PROC_FLAG_TAKE_RANGED_ATTACK | \
PROC_FLAG_DEAL_RANGED_ABILITY | \
PROC_FLAG_TAKE_RANGED_ABILITY)
Definition: SpellMgr.h:139

◆ PROC_ATTR_ALL_ALLOWED

#define PROC_ATTR_ALL_ALLOWED
Value:
PROC_ATTR_TRIGGERED_CAN_PROC | \
PROC_ATTR_REQ_POWER_COST | \
PROC_ATTR_REQ_SPELLMOD | \
PROC_ATTR_USE_STACKS_FOR_CHARGES | \
PROC_ATTR_REDUCE_PROC_60)
Definition: SpellMgr.h:295

◆ SPELL_GROUP_DB_RANGE_MIN

#define SPELL_GROUP_DB_RANGE_MIN   1000

◆ SPELL_LINKED_MAX_SPELLS

#define SPELL_LINKED_MAX_SPELLS   200000

◆ sSpellMgr

#define sSpellMgr   SpellMgr::instance()

Typedef Documentation

◆ PetDefaultSpellsMap

◆ PetFamilySpellsSet

typedef std::set<uint32> PetFamilySpellsSet

◆ PetFamilySpellsStore

◆ PetLevelupSpellMap

◆ PetLevelupSpellSet

typedef std::multimap<uint32, uint32> PetLevelupSpellSet

◆ SameEffectStackMap

typedef std::unordered_map<SpellGroup, std::unordered_set<uint32 > > SameEffectStackMap

◆ SkillLineAbilityMap

typedef std::multimap<uint32, SkillLineAbilityEntry const*> SkillLineAbilityMap

◆ SkillLineAbilityMapBounds

typedef std::pair<SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator> SkillLineAbilityMapBounds

◆ SpellAreaForAreaMap

typedef std::multimap<uint32, SpellArea const*> SpellAreaForAreaMap

◆ SpellAreaForAreaMapBounds

typedef std::pair<SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator> SpellAreaForAreaMapBounds

◆ SpellAreaForAuraMap

typedef std::multimap<uint32, SpellArea const*> SpellAreaForAuraMap

◆ SpellAreaForAuraMapBounds

typedef std::pair<SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator> SpellAreaForAuraMapBounds

◆ SpellAreaForQuestMap

typedef std::multimap<uint32, SpellArea const*> SpellAreaForQuestMap

◆ SpellAreaForQuestMapBounds

typedef std::pair<SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator> SpellAreaForQuestMapBounds

◆ SpellAreaMap

typedef std::multimap<uint32, SpellArea> SpellAreaMap

◆ SpellAreaMapBounds

typedef std::pair<SpellAreaMap::const_iterator, SpellAreaMap::const_iterator> SpellAreaMapBounds

◆ SpellChainMap

typedef std::unordered_map<uint32, SpellChainNode> SpellChainMap

◆ SpellDifficultySearcherMap

◆ SpellEnchantProcEventMap

◆ SpellGroupSpellMap

typedef std::unordered_multimap<SpellGroup, int32> SpellGroupSpellMap

◆ SpellGroupSpellMapBounds

typedef std::pair<SpellGroupSpellMap::const_iterator, SpellGroupSpellMap::const_iterator> SpellGroupSpellMapBounds

◆ SpellGroupStackMap

typedef std::unordered_map<SpellGroup, SpellGroupStackRule> SpellGroupStackMap

◆ SpellLearnSkillMap

typedef std::unordered_map<uint32, SpellLearnSkillNode> SpellLearnSkillMap

◆ SpellLearnSpellMap

◆ SpellLearnSpellMapBounds

typedef std::pair<SpellLearnSpellMap::const_iterator, SpellLearnSpellMap::const_iterator> SpellLearnSpellMapBounds

◆ SpellLinkedMap

typedef std::unordered_map<int32, std::vector<int32> > SpellLinkedMap

◆ SpellPetAuraMap

typedef std::map<uint32, PetAura> SpellPetAuraMap

◆ SpellRequiredMap

typedef std::multimap<uint32, uint32> SpellRequiredMap

◆ SpellRequiredMapBounds

typedef std::pair<SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator> SpellRequiredMapBounds

◆ SpellSpellGroupMap

typedef std::unordered_multimap<uint32, SpellGroup> SpellSpellGroupMap

◆ SpellSpellGroupMapBounds

typedef std::pair<SpellSpellGroupMap::const_iterator, SpellSpellGroupMap::const_iterator> SpellSpellGroupMapBounds

◆ SpellsRequiringSpellMap

typedef std::multimap<uint32, uint32> SpellsRequiringSpellMap

◆ SpellsRequiringSpellMapBounds

typedef std::pair<SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator> SpellsRequiringSpellMapBounds

◆ SpellTargetPositionMap

◆ SpellThreatMap

typedef std::unordered_map<uint32, SpellThreatEntry> SpellThreatMap

◆ SpellTotemModelMap

typedef std::map<std::pair<uint32 , uint8 >, uint32 > SpellTotemModelMap

Enumeration Type Documentation

◆ EffectRadiusIndex

Enumerator
EFFECT_RADIUS_2_YARDS 
EFFECT_RADIUS_5_YARDS 
EFFECT_RADIUS_20_YARDS 
EFFECT_RADIUS_30_YARDS 
EFFECT_RADIUS_45_YARDS 
EFFECT_RADIUS_100_YARDS 
EFFECT_RADIUS_10_YARDS 
EFFECT_RADIUS_8_YARDS 
EFFECT_RADIUS_3_YARDS 
EFFECT_RADIUS_1_YARD 
EFFECT_RADIUS_13_YARDS 
EFFECT_RADIUS_15_YARDS 
EFFECT_RADIUS_18_YARDS 
EFFECT_RADIUS_25_YARDS 
EFFECT_RADIUS_35_YARDS 
EFFECT_RADIUS_200_YARDS 
EFFECT_RADIUS_40_YARDS 
EFFECT_RADIUS_65_YARDS 
EFFECT_RADIUS_70_YARDS 
EFFECT_RADIUS_4_YARDS 
EFFECT_RADIUS_50_YARDS 
EFFECT_RADIUS_50000_YARDS 
EFFECT_RADIUS_6_YARDS 
EFFECT_RADIUS_500_YARDS 
EFFECT_RADIUS_80_YARDS 
EFFECT_RADIUS_12_YARDS 
EFFECT_RADIUS_99_YARDS 
EFFECT_RADIUS_55_YARDS 
EFFECT_RADIUS_0_YARDS 
EFFECT_RADIUS_7_YARDS 
EFFECT_RADIUS_21_YARDS 
EFFECT_RADIUS_34_YARDS 
EFFECT_RADIUS_9_YARDS 
EFFECT_RADIUS_150_YARDS 
EFFECT_RADIUS_11_YARDS 
EFFECT_RADIUS_16_YARDS 
EFFECT_RADIUS_0_5_YARDS 
EFFECT_RADIUS_10_YARDS_2 
EFFECT_RADIUS_5_YARDS_2 
EFFECT_RADIUS_15_YARDS_2 
EFFECT_RADIUS_60_YARDS 
EFFECT_RADIUS_90_YARDS 
EFFECT_RADIUS_15_YARDS_3 
EFFECT_RADIUS_60_YARDS_2 
EFFECT_RADIUS_5_YARDS_3 
EFFECT_RADIUS_60_YARDS_3 
EFFECT_RADIUS_50000_YARDS_2 
EFFECT_RADIUS_130_YARDS 
EFFECT_RADIUS_38_YARDS 
EFFECT_RADIUS_45_YARDS_2 
EFFECT_RADIUS_32_YARDS 
EFFECT_RADIUS_44_YARDS 
EFFECT_RADIUS_14_YARDS 
EFFECT_RADIUS_47_YARDS 
EFFECT_RADIUS_23_YARDS 
EFFECT_RADIUS_3_5_YARDS 
EFFECT_RADIUS_80_YARDS_2 
416 {
453  EFFECT_RADIUS_0_5_YARDS = 44, // 0.5 yards
472  EFFECT_RADIUS_3_5_YARDS = 64, // 3.5 yards
474 };
Definition: SpellMgr.h:450
Definition: SpellMgr.h:437
Definition: SpellMgr.h:451
Definition: SpellMgr.h:447
Definition: SpellMgr.h:430
Definition: SpellMgr.h:441
Definition: SpellMgr.h:454
Definition: SpellMgr.h:435
Definition: SpellMgr.h:468
Definition: SpellMgr.h:453
Definition: SpellMgr.h:418
Definition: SpellMgr.h:449
Definition: SpellMgr.h:473
Definition: SpellMgr.h:465
Definition: SpellMgr.h:469
Definition: SpellMgr.h:444
Definition: SpellMgr.h:464
Definition: SpellMgr.h:457
Definition: SpellMgr.h:424
Definition: SpellMgr.h:427
Definition: SpellMgr.h:438
Definition: SpellMgr.h:462
Definition: SpellMgr.h:463
Definition: SpellMgr.h:460
Definition: SpellMgr.h:425
Definition: SpellMgr.h:429
Definition: SpellMgr.h:423
Definition: SpellMgr.h:470
Definition: SpellMgr.h:448
Definition: SpellMgr.h:445
Definition: SpellMgr.h:471
Definition: SpellMgr.h:432
Definition: SpellMgr.h:422
Definition: SpellMgr.h:456
Definition: SpellMgr.h:417
Definition: SpellMgr.h:419
Definition: SpellMgr.h:436
Definition: SpellMgr.h:440
Definition: SpellMgr.h:426
Definition: SpellMgr.h:466
Definition: SpellMgr.h:434
Definition: SpellMgr.h:431
Definition: SpellMgr.h:421
Definition: SpellMgr.h:461
Definition: SpellMgr.h:472
Definition: SpellMgr.h:443
Definition: SpellMgr.h:439
Definition: SpellMgr.h:433
Definition: SpellMgr.h:442
Definition: SpellMgr.h:467
Definition: SpellMgr.h:459
Definition: SpellMgr.h:458
Definition: SpellMgr.h:455
Definition: SpellMgr.h:420
Definition: SpellMgr.h:446
Definition: SpellMgr.h:452
Definition: SpellMgr.h:428

◆ EnchantProcAttributes

Enumerator
ENCHANT_PROC_ATTR_WHITE_HIT 
ENCHANT_PROC_ATTR_LIMIT_60 
332 {
333  ENCHANT_PROC_ATTR_WHITE_HIT = 0x0000001, // enchant shall only proc off white hits (not abilities)
334  ENCHANT_PROC_ATTR_LIMIT_60 = 0x0000002 // enchant effects shall be reduced past lvl 60
335 };
Definition: SpellMgr.h:334
Definition: SpellMgr.h:333

◆ ProcAttributes

Enumerator
PROC_ATTR_NONE 
PROC_ATTR_REQ_EXP_OR_HONOR 
PROC_ATTR_TRIGGERED_CAN_PROC 
PROC_ATTR_REQ_POWER_COST 
PROC_ATTR_REQ_SPELLMOD 
PROC_ATTR_USE_STACKS_FOR_CHARGES 
PROC_ATTR_REDUCE_PROC_60 
PROC_ATTR_CANT_PROC_FROM_ITEM_CAST 
292  : uint32
293 {
294  PROC_ATTR_NONE = 0x0000000,
295  PROC_ATTR_REQ_EXP_OR_HONOR = 0x0000001, // requires proc target to give exp or honor for aura proc
296  PROC_ATTR_TRIGGERED_CAN_PROC = 0x0000002, // aura can proc even with triggered spells
297  PROC_ATTR_REQ_POWER_COST = 0x0000004, // requires triggering spell to have a power cost for aura proc
298  PROC_ATTR_REQ_SPELLMOD = 0x0000008, // requires triggering spell to be affected by proccing aura to drop charges
299  PROC_ATTR_USE_STACKS_FOR_CHARGES = 0x0000010, // consuming proc drops a stack from proccing aura instead of charge
300 
301  PROC_ATTR_REDUCE_PROC_60 = 0x0000080, // aura should have a reduced chance to proc if level of proc Actor > 60
302  PROC_ATTR_CANT_PROC_FROM_ITEM_CAST = 0x0000100, // do not allow aura proc if proc is caused by a spell casted by item
303 };
Definition: SpellMgr.h:297
Definition: SpellMgr.h:294
Definition: SpellMgr.h:301
Definition: SpellMgr.h:296
Definition: SpellMgr.h:299
Definition: SpellMgr.h:298
Definition: SpellMgr.h:295
uint32_t uint32
Definition: Define.h:143
Definition: SpellMgr.h:302

◆ ProcFlags

enum ProcFlags : uint32
Enumerator
PROC_FLAG_NONE 
PROC_FLAG_HEARTBEAT 
PROC_FLAG_KILL 
PROC_FLAG_DEAL_MELEE_SWING 
PROC_FLAG_TAKE_MELEE_SWING 
PROC_FLAG_DEAL_MELEE_ABILITY 
PROC_FLAG_TAKE_MELEE_ABILITY 
PROC_FLAG_DEAL_RANGED_ATTACK 
PROC_FLAG_TAKE_RANGED_ATTACK 
PROC_FLAG_DEAL_RANGED_ABILITY 
PROC_FLAG_TAKE_RANGED_ABILITY 
PROC_FLAG_DEAL_HELPFUL_ABILITY 
PROC_FLAG_TAKE_HELPFUL_ABILITY 
PROC_FLAG_DEAL_HARMFUL_ABILITY 
PROC_FLAG_TAKE_HARMFUL_ABILITY 
PROC_FLAG_DEAL_HELPFUL_SPELL 
PROC_FLAG_TAKE_HELPFUL_SPELL 
PROC_FLAG_DEAL_HARMFUL_SPELL 
PROC_FLAG_TAKE_HARMFUL_SPELL 
PROC_FLAG_DEAL_HARMFUL_PERIODIC 
PROC_FLAG_TAKE_HARMFUL_PERIODIC 
PROC_FLAG_TAKE_ANY_DAMAGE 
PROC_FLAG_DEAL_HELPFUL_PERIODIC 
PROC_FLAG_MAIN_HAND_WEAPON_SWING 
PROC_FLAG_OFF_HAND_WEAPON_SWING 
PROC_FLAG_DEATH 
PROC_FLAG_JUMP 
PROC_FLAG_PROC_CLONE_SPELL 
PROC_FLAG_ENTER_COMBAT 
PROC_FLAG_ENCOUNTER_START 
PROC_FLAG_CAST_ENDED 
PROC_FLAG_LOOTED 
PROC_FLAG_TAKE_HELPFUL_PERIODIC 
AUTO_ATTACK_PROC_FLAG_MASK 
MELEE_PROC_FLAG_MASK 
RANGED_PROC_FLAG_MASK 
SPELL_PROC_FLAG_MASK 
DONE_HIT_PROC_FLAG_MASK 
TAKEN_HIT_PROC_FLAG_MASK 
REQ_SPELL_PHASE_PROC_FLAG_MASK 
132  : uint32
133 {
134  PROC_FLAG_NONE = 0x00000000,
135 
136  PROC_FLAG_HEARTBEAT = 0x00000001, // 00 Killed by agressor - not sure about this flag
137  PROC_FLAG_KILL = 0x00000002, // 01 Kill target (in most cases need XP/Honor reward)
138 
139  PROC_FLAG_DEAL_MELEE_SWING = 0x00000004, // 02 Done melee auto attack
140  PROC_FLAG_TAKE_MELEE_SWING = 0x00000008, // 03 Taken melee auto attack
141 
142  PROC_FLAG_DEAL_MELEE_ABILITY = 0x00000010, // 04 Done attack by Spell that has dmg class melee
143  PROC_FLAG_TAKE_MELEE_ABILITY = 0x00000020, // 05 Taken attack by Spell that has dmg class melee
144 
145  PROC_FLAG_DEAL_RANGED_ATTACK = 0x00000040, // 06 Done ranged auto attack
146  PROC_FLAG_TAKE_RANGED_ATTACK = 0x00000080, // 07 Taken ranged auto attack
147 
148  PROC_FLAG_DEAL_RANGED_ABILITY = 0x00000100, // 08 Done attack by Spell that has dmg class ranged
149  PROC_FLAG_TAKE_RANGED_ABILITY = 0x00000200, // 09 Taken attack by Spell that has dmg class ranged
150 
151  PROC_FLAG_DEAL_HELPFUL_ABILITY = 0x00000400, // 10 Done positive spell that has dmg class none
152  PROC_FLAG_TAKE_HELPFUL_ABILITY = 0x00000800, // 11 Taken positive spell that has dmg class none
153 
154  PROC_FLAG_DEAL_HARMFUL_ABILITY = 0x00001000, // 12 Done negative spell that has dmg class none
155  PROC_FLAG_TAKE_HARMFUL_ABILITY = 0x00002000, // 13 Taken negative spell that has dmg class none
156 
157  PROC_FLAG_DEAL_HELPFUL_SPELL = 0x00004000, // 14 Done positive spell that has dmg class magic
158  PROC_FLAG_TAKE_HELPFUL_SPELL = 0x00008000, // 15 Taken positive spell that has dmg class magic
159 
160  PROC_FLAG_DEAL_HARMFUL_SPELL = 0x00010000, // 16 Done negative spell that has dmg class magic
161  PROC_FLAG_TAKE_HARMFUL_SPELL = 0x00020000, // 17 Taken negative spell that has dmg class magic
162 
163  PROC_FLAG_DEAL_HARMFUL_PERIODIC = 0x00040000, // 18 Successful do periodic (damage)
164  PROC_FLAG_TAKE_HARMFUL_PERIODIC = 0x00080000, // 19 Taken spell periodic (damage)
165 
166  PROC_FLAG_TAKE_ANY_DAMAGE = 0x00100000, // 20 Taken any damage
167 
168  PROC_FLAG_DEAL_HELPFUL_PERIODIC = 0x00200000, // 21 On trap activation (possibly needs name change to ON_GAMEOBJECT_CAST or USE)
169 
170  PROC_FLAG_MAIN_HAND_WEAPON_SWING = 0x00400000, // 22 Done main-hand melee attacks (spell and autoattack)
171  PROC_FLAG_OFF_HAND_WEAPON_SWING = 0x00800000, // 23 Done off-hand melee attacks (spell and autoattack)
172 
173  PROC_FLAG_DEATH = 0x01000000, // 24 Died in any way
174 
175  PROC_FLAG_JUMP = 0x02000000, // 25 Jumped
176 
177  PROC_FLAG_PROC_CLONE_SPELL = 0x04000000, // 26 Proc Clone Spell
178 
179  PROC_FLAG_ENTER_COMBAT = 0x08000000, // 27 Entered combat
180 
181  PROC_FLAG_ENCOUNTER_START = 0x10000000, // 28 Encounter started
182 
183  PROC_FLAG_CAST_ENDED = 0x20000000, // 29 Cast Ended
184 
185  PROC_FLAG_LOOTED = 0x40000000, // 30 Looted (took from loot, not opened loot window)
186 
187  PROC_FLAG_TAKE_HELPFUL_PERIODIC = 0x80000000, // 31 Take Helpful Periodic
188 
189  // flag masks
192 
196 
199 
209 
216 
223 
224  REQ_SPELL_PHASE_PROC_FLAG_MASK = SPELL_PROC_FLAG_MASK & DONE_HIT_PROC_FLAG_MASK
225 };
Definition: SpellMgr.h:197
Definition: SpellMgr.h:139
Definition: SpellMgr.h:163
Definition: SpellMgr.h:170
Definition: SpellMgr.h:224
Definition: SpellMgr.h:173
Definition: SpellMgr.h:151
Definition: SpellMgr.h:187
Definition: SpellMgr.h:175
Definition: SpellMgr.h:152
Definition: SpellMgr.h:193
Definition: SpellMgr.h:177
Definition: SpellMgr.h:140
Definition: SpellMgr.h:143
Definition: SpellMgr.h:164
Definition: SpellMgr.h:148
Definition: SpellMgr.h:217
Definition: SpellMgr.h:185
Definition: SpellMgr.h:183
Definition: SpellMgr.h:210
Definition: SpellMgr.h:181
Definition: SpellMgr.h:179
Definition: SpellMgr.h:134
Definition: SpellMgr.h:158
Definition: SpellMgr.h:157
Definition: SpellMgr.h:166
Definition: SpellMgr.h:154
Definition: SpellMgr.h:149
Definition: SpellMgr.h:190
Definition: SpellMgr.h:136
uint32_t uint32
Definition: Define.h:143
Definition: SpellMgr.h:160
Definition: SpellMgr.h:168
Definition: SpellMgr.h:145
Definition: SpellMgr.h:137
Definition: SpellMgr.h:155
Definition: SpellMgr.h:161
Definition: SpellMgr.h:171
Definition: SpellMgr.h:146
Definition: SpellMgr.h:200
Definition: SpellMgr.h:142

◆ ProcFlags2

enum ProcFlags2 : int32
Enumerator
PROC_FLAG_2_NONE 
PROC_FLAG_2_TARGET_DIES 
PROC_FLAG_2_KNOCKBACK 
PROC_FLAG_2_CAST_SUCCESSFUL 
229  : int32
230 {
231  PROC_FLAG_2_NONE = 0x00000000,
232  PROC_FLAG_2_TARGET_DIES = 0x00000001,
233  PROC_FLAG_2_KNOCKBACK = 0x00000002,
234  PROC_FLAG_2_CAST_SUCCESSFUL = 0x00000004
235 };
Definition: SpellMgr.h:234
Definition: SpellMgr.h:231
Definition: SpellMgr.h:232
int32_t int32
Definition: Define.h:139
Definition: SpellMgr.h:233

◆ ProcFlagsHit

Enumerator
PROC_HIT_NONE 
PROC_HIT_NORMAL 
PROC_HIT_CRITICAL 
PROC_HIT_MISS 
PROC_HIT_FULL_RESIST 
PROC_HIT_DODGE 
PROC_HIT_PARRY 
PROC_HIT_BLOCK 
PROC_HIT_EVADE 
PROC_HIT_IMMUNE 
PROC_HIT_DEFLECT 
PROC_HIT_ABSORB 
PROC_HIT_REFLECT 
PROC_HIT_INTERRUPT 
PROC_HIT_FULL_BLOCK 
PROC_HIT_MASK_ALL 
270  : uint32
271 {
272  PROC_HIT_NONE = 0x0000000, // no value - PROC_HIT_NORMAL | PROC_HIT_CRITICAL for TAKEN proc type, PROC_HIT_NORMAL | PROC_HIT_CRITICAL | PROC_HIT_ABSORB for DONE
273  PROC_HIT_NORMAL = 0x0000001, // non-critical hits
274  PROC_HIT_CRITICAL = 0x0000002,
275  PROC_HIT_MISS = 0x0000004,
276  PROC_HIT_FULL_RESIST = 0x0000008,
277  PROC_HIT_DODGE = 0x0000010,
278  PROC_HIT_PARRY = 0x0000020,
279  PROC_HIT_BLOCK = 0x0000040, // partial or full block
280  PROC_HIT_EVADE = 0x0000080,
281  PROC_HIT_IMMUNE = 0x0000100,
282  PROC_HIT_DEFLECT = 0x0000200,
283  PROC_HIT_ABSORB = 0x0000400, // partial or full absorb
284  PROC_HIT_REFLECT = 0x0000800,
285  PROC_HIT_INTERRUPT = 0x0001000,
286  PROC_HIT_FULL_BLOCK = 0x0002000,
287  PROC_HIT_MASK_ALL = 0x0003FFF
288 };
Definition: SpellMgr.h:287
Definition: SpellMgr.h:272
Definition: SpellMgr.h:274
Definition: SpellMgr.h:286
Definition: SpellMgr.h:283
Definition: SpellMgr.h:275
Definition: SpellMgr.h:276
Definition: SpellMgr.h:282
Definition: SpellMgr.h:285
Definition: SpellMgr.h:278
Definition: SpellMgr.h:273
uint32_t uint32
Definition: Define.h:143
Definition: SpellMgr.h:279
Definition: SpellMgr.h:284
Definition: SpellMgr.h:281
Definition: SpellMgr.h:277
Definition: SpellMgr.h:280

◆ ProcFlagsSpellPhase

Enumerator
PROC_SPELL_PHASE_NONE 
PROC_SPELL_PHASE_CAST 
PROC_SPELL_PHASE_HIT 
PROC_SPELL_PHASE_FINISH 
PROC_SPELL_PHASE_MASK_ALL 
259  : uint32
260 {
261  PROC_SPELL_PHASE_NONE = 0x0000000,
262  PROC_SPELL_PHASE_CAST = 0x0000001,
263  PROC_SPELL_PHASE_HIT = 0x0000002,
264  PROC_SPELL_PHASE_FINISH = 0x0000004,
266 };
Definition: SpellMgr.h:261
Definition: SpellMgr.h:265
Definition: SpellMgr.h:264
uint32_t uint32
Definition: Define.h:143
Definition: SpellMgr.h:263
Definition: SpellMgr.h:262

◆ ProcFlagsSpellType

Enumerator
PROC_SPELL_TYPE_NONE 
PROC_SPELL_TYPE_DAMAGE 
PROC_SPELL_TYPE_HEAL 
PROC_SPELL_TYPE_NO_DMG_HEAL 
PROC_SPELL_TYPE_MASK_ALL 
248  : uint32
249 {
250  PROC_SPELL_TYPE_NONE = 0x0000000,
251  PROC_SPELL_TYPE_DAMAGE = 0x0000001, // damage type of spell
252  PROC_SPELL_TYPE_HEAL = 0x0000002, // heal type of spell
253  PROC_SPELL_TYPE_NO_DMG_HEAL = 0x0000004, // other spells
255 };
Definition: SpellMgr.h:252
Definition: SpellMgr.h:251
Definition: SpellMgr.h:250
Definition: SpellMgr.h:254
uint32_t uint32
Definition: Define.h:143
Definition: SpellMgr.h:253

◆ SpellAreaFlag

Enumerator
SPELL_AREA_FLAG_AUTOCAST 
SPELL_AREA_FLAG_AUTOREMOVE 
SPELL_AREA_FLAG_IGNORE_AUTOCAST_ON_QUEST_STATUS_CHANGE 
525 {
526  SPELL_AREA_FLAG_AUTOCAST = 0x1, // if has autocast, spell is applied on enter
527  SPELL_AREA_FLAG_AUTOREMOVE = 0x2, // if has autoremove, spell is remove automatically inside zone/area (always removed on leaving area or zone)
528  SPELL_AREA_FLAG_IGNORE_AUTOCAST_ON_QUEST_STATUS_CHANGE = 0x4, // if this flag is set then spell will not be applied automatically on quest status change
529 };
Definition: SpellMgr.h:526
Definition: SpellMgr.h:527

◆ SpellCategories

Enumerator
SPELLCATEGORY_HEALTH_MANA_POTIONS 
SPELLCATEGORY_DEVOUR_MAGIC 
SPELLCATEGORY_JUDGEMENT 
SPELLCATEGORY_FOOD 
SPELLCATEGORY_DRINK 
69 {
72  SPELLCATEGORY_JUDGEMENT = 1210, // Judgement (seal trigger)
73  SPELLCATEGORY_FOOD = 11,
75 };
Definition: SpellMgr.h:72
Definition: SpellMgr.h:71
Definition: SpellMgr.h:74
Definition: SpellMgr.h:70
Definition: SpellMgr.h:73

◆ SpellFamilyFlag

Enumerator
SPELLFAMILYFLAG0_ROGUE_VANISH 
SPELLFAMILYFLAG0_ROGUE_VAN_SPRINT 
SPELLFAMILYFLAG1_ROGUE_SHADOWSTEP 
SPELLFAMILYFLAG0_ROGUE_KICK 
SPELLFAMILYFLAG1_ROGUE_DISMANTLE_SMOKE_BOMB 
SPELLFAMILYFLAG_WARRIOR_CHARGE 
SPELLFAMILYFLAG_WARRIOR_SLAM 
SPELLFAMILYFLAG_WARRIOR_EXECUTE 
SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW 
SPELLFAMILYFLAG_WARLOCK_LIFETAP 
SPELLFAMILYFLAG2_DRUID_STARFALL 
SPELLFAMILYFLAG1_PALADIN_DIVINESTORM 
SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK 
SPELLFAMILYFLAG_SHAMAN_HEALING_STREAM 
SPELLFAMILYFLAG_SHAMAN_MANA_SPRING 
SPELLFAMILYFLAG2_SHAMAN_LAVA_LASH 
SPELLFAMILYFLAG_SHAMAN_FIRE_NOVA 
SPELLFAMILYFLAG_DK_DEATH_STRIKE 
SPELLFAMILYFLAG_DK_DEATH_COIL 
SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS 
Todo:
Figure out a more accurate name for the following familyflag(s)
79 {
80  // SPELLFAMILYFLAG = SpellFamilyFlags[0]
81  // SPELLFAMILYFLAG1 = SpellFamilyFlags[1]
82  // SPELLFAMILYFLAG2 = SpellFamilyFlags[2]
83 
84  // Rogue
85  SPELLFAMILYFLAG0_ROGUE_VANISH = 0x00000800,
86  SPELLFAMILYFLAG0_ROGUE_VAN_SPRINT = 0x00000840, // Vanish, Sprint
87  SPELLFAMILYFLAG1_ROGUE_SHADOWSTEP = 0x00000200, // Shadowstep
88  SPELLFAMILYFLAG0_ROGUE_KICK = 0x00000010, // Kick
89  SPELLFAMILYFLAG1_ROGUE_DISMANTLE_SMOKE_BOMB = 0x80100000, // Dismantle, Smoke Bomb
90 
91  // Warrior
92  SPELLFAMILYFLAG_WARRIOR_CHARGE = 0x00000001,
93  SPELLFAMILYFLAG_WARRIOR_SLAM = 0x00200000,
96 
97  // Warlock
99 
100  // Druid
101  SPELLFAMILYFLAG2_DRUID_STARFALL = 0x00000100,
102 
103  // Paladin
105 
106  // Shaman
112 
113  // Deathknight
114  SPELLFAMILYFLAG_DK_DEATH_STRIKE = 0x00000010,
115  SPELLFAMILYFLAG_DK_DEATH_COIL = 0x00002000,
116 
118  SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS = 0x04000000 // Seems to be linked to most totems and some totem effects
119 };
Definition: SpellMgr.h:110
Definition: SpellMgr.h:93
Definition: SpellMgr.h:86
Definition: SpellMgr.h:98
Definition: SpellMgr.h:108
Definition: SpellMgr.h:118
Definition: SpellMgr.h:85
Definition: SpellMgr.h:104
Definition: SpellMgr.h:111
Definition: SpellMgr.h:87
Definition: SpellMgr.h:88
Definition: SpellMgr.h:101
Definition: SpellMgr.h:114
Definition: SpellMgr.h:115
Definition: SpellMgr.h:109
Definition: SpellMgr.h:107
Definition: SpellMgr.h:94
Definition: SpellMgr.h:92

◆ SpellGroup

enum SpellGroup
Enumerator
SPELL_GROUP_NONE 
SPELL_GROUP_ELIXIR_BATTLE 
SPELL_GROUP_ELIXIR_GUARDIAN 
SPELL_GROUP_ELIXIR_UNSTABLE 
SPELL_GROUP_ELIXIR_SHATTRATH 
SPELL_GROUP_CORE_RANGE_MAX 
348 {
349  SPELL_GROUP_NONE = 0,
355 };
Definition: SpellMgr.h:354
Definition: SpellMgr.h:353
Definition: SpellMgr.h:350
Definition: SpellMgr.h:351
Definition: SpellMgr.h:352
Definition: SpellMgr.h:349

◆ SpellGroupStackRule

Enumerator
SPELL_GROUP_STACK_RULE_DEFAULT 
SPELL_GROUP_STACK_RULE_EXCLUSIVE 
SPELL_GROUP_STACK_RULE_EXCLUSIVE_FROM_SAME_CASTER 
SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT 
SPELL_GROUP_STACK_RULE_EXCLUSIVE_HIGHEST 
SPELL_GROUP_STACK_RULE_MAX 

◆ SpellLinkedType

Enumerator
SPELL_LINK_CAST 
SPELL_LINK_HIT 
SPELL_LINK_AURA 
SPELL_LINK_REMOVE 
124 {
125  SPELL_LINK_CAST = 0, // +: cast; -: remove
126  SPELL_LINK_HIT = 1 * 200000,
127  SPELL_LINK_AURA = 2 * 200000, // +: aura; -: immune
129 };
Definition: SpellMgr.h:126
Definition: SpellMgr.h:125
Definition: SpellMgr.h:127
Definition: SpellMgr.h:128

Function Documentation

◆ DEFINE_ENUM_FLAG() [1/6]

DEFINE_ENUM_FLAG ( ProcFlags  )

◆ DEFINE_ENUM_FLAG() [2/6]

DEFINE_ENUM_FLAG ( ProcFlags2  )

◆ DEFINE_ENUM_FLAG() [3/6]

DEFINE_ENUM_FLAG ( ProcFlagsSpellType  )

◆ DEFINE_ENUM_FLAG() [4/6]

DEFINE_ENUM_FLAG ( ProcFlagsSpellPhase  )

◆ DEFINE_ENUM_FLAG() [5/6]

DEFINE_ENUM_FLAG ( ProcFlagsHit  )

◆ DEFINE_ENUM_FLAG() [6/6]

DEFINE_ENUM_FLAG ( ProcAttributes  )

◆ IsPartOfSkillLine()

bool IsPartOfSkillLine ( uint32  skillId,
uint32  spellId 
)
117 {
118  SkillLineAbilityMapBounds skillBounds = sSpellMgr->GetSkillLineAbilityMapBounds(spellId);
119  for (SkillLineAbilityMap::const_iterator itr = skillBounds.first; itr != skillBounds.second; ++itr)
120  if (itr->second->SkillLine == int32(skillId))
121  return true;
122 
123  return false;
124 }
std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
Definition: SpellMgr.h:600
#define sSpellMgr
Definition: SpellMgr.h:825
int32_t int32
Definition: Define.h:139
+ Here is the caller graph for this function:

◆ IsPrimaryProfessionSkill()

bool IsPrimaryProfessionSkill ( uint32  skill)
105 {
106  SkillLineEntry const* pSkill = sSkillLineStore.LookupEntry(skill);
107  return pSkill && pSkill->CategoryID == SKILL_CATEGORY_PROFESSION;
108 }
DB2Storage< SkillLineEntry > sSkillLineStore("SkillLine.db2", SkillLineLoadInfo::Instance())
Definition: DB2Structure.h:3082
int8 CategoryID
Definition: DB2Structure.h:3090
Definition: SharedDefines.h:5606
+ Here is the caller graph for this function:

◆ IsProfessionOrRidingSkill()

bool IsProfessionOrRidingSkill ( uint32  skill)
inline
632 {
633  return IsProfessionSkill(skill) || skill == SKILL_RIDING;
634 }
bool IsProfessionSkill(uint32 skill)
Definition: SpellMgr.h:626
Definition: SharedDefines.h:5306
+ Here is the call graph for this function:

◆ IsProfessionSkill()

bool IsProfessionSkill ( uint32  skill)
inline
627 {
628  return IsPrimaryProfessionSkill(skill) || skill == SKILL_FISHING || skill == SKILL_COOKING;
629 }
bool IsPrimaryProfessionSkill(uint32 skill)
Definition: SpellMgr.cpp:104
Definition: SharedDefines.h:5281
Definition: SharedDefines.h:5249
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsWeaponSkill()

bool IsWeaponSkill ( uint32  skill)
111 {
112  SkillLineEntry const* pSkill = sSkillLineStore.LookupEntry(skill);
113  return pSkill && pSkill->CategoryID == SKILL_CATEGORY_WEAPON;
114 }
DB2Storage< SkillLineEntry > sSkillLineStore("SkillLine.db2", SkillLineLoadInfo::Instance())
Definition: DB2Structure.h:3082
int8 CategoryID
Definition: DB2Structure.h:3090
Definition: SharedDefines.h:5601

Variable Documentation

◆ sPetFamilySpellsStore

TC_GAME_API PetFamilySpellsStore sPetFamilySpellsStore