TrinityCore
SpellMgr.h File Reference
#include "Define.h"
#include "DBCEnums.h"
#include "Duration.h"
#include "EnumFlag.h"
#include "Errors.h"
#include "FlagsArray.h"
#include "Hash.h"
#include "IteratorPair.h"
#include "RaceMask.h"
#include "SharedDefines.h"
#include "SpellDefines.h"
#include <bitset>
#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  CreatureImmunities
 
struct  PetDefaultSpellsEntry
 
struct  SpellInfoLoadHelper
 
class  SpellMgr
 

Namespaces

namespace  std
 STL namespace.
 

Macros

#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< std::pair< SpellLinkedType, uint32 >, 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 , SPELL_LINK_AURA = 2 , SPELL_LINK_REMOVE = 3 }
 
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_DISPEL = 0x0004000 ,
  PROC_HIT_MASK_ALL = 0x0007FFF
}
 
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 }
 
enum class  SpellOtherImmunity : uint8 { None = 0x0 , AoETarget = 0x1 , ChainTarget = 0x2 }
 

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

Definition at line 631 of file SpellMgr.h.

◆ 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)
@ PROC_FLAG_DEAL_MELEE_SWING
Definition: SpellMgr.h:140

Definition at line 240 of file SpellMgr.h.

◆ 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)
@ PROC_ATTR_REQ_EXP_OR_HONOR
Definition: SpellMgr.h:297

Definition at line 309 of file SpellMgr.h.

◆ SPELL_GROUP_DB_RANGE_MIN

#define SPELL_GROUP_DB_RANGE_MIN   1000

Definition at line 371 of file SpellMgr.h.

◆ sSpellMgr

#define sSpellMgr   SpellMgr::instance()

Definition at line 849 of file SpellMgr.h.

Typedef Documentation

◆ PetDefaultSpellsMap

Definition at line 639 of file SpellMgr.h.

◆ PetFamilySpellsSet

typedef std::set<uint32> PetFamilySpellsSet

Definition at line 623 of file SpellMgr.h.

◆ PetFamilySpellsStore

Definition at line 624 of file SpellMgr.h.

◆ PetLevelupSpellMap

Definition at line 627 of file SpellMgr.h.

◆ PetLevelupSpellSet

typedef std::multimap<uint32, uint32> PetLevelupSpellSet

Definition at line 626 of file SpellMgr.h.

◆ SameEffectStackMap

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

Definition at line 393 of file SpellMgr.h.

◆ SkillLineAbilityMap

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

Definition at line 620 of file SpellMgr.h.

◆ SkillLineAbilityMapBounds

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

Definition at line 621 of file SpellMgr.h.

◆ SpellAreaForAreaMap

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

Definition at line 553 of file SpellMgr.h.

◆ SpellAreaForAreaMapBounds

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

Definition at line 557 of file SpellMgr.h.

◆ SpellAreaForAuraMap

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

Definition at line 552 of file SpellMgr.h.

◆ SpellAreaForAuraMapBounds

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

Definition at line 556 of file SpellMgr.h.

◆ SpellAreaForQuestMap

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

Definition at line 551 of file SpellMgr.h.

◆ SpellAreaForQuestMapBounds

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

Definition at line 555 of file SpellMgr.h.

◆ SpellAreaMap

typedef std::multimap<uint32, SpellArea> SpellAreaMap

Definition at line 550 of file SpellMgr.h.

◆ SpellAreaMapBounds

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

Definition at line 554 of file SpellMgr.h.

◆ SpellChainMap

typedef std::unordered_map<uint32, SpellChainNode> SpellChainMap

Definition at line 569 of file SpellMgr.h.

◆ SpellDifficultySearcherMap

Definition at line 629 of file SpellMgr.h.

◆ SpellEnchantProcEventMap

Definition at line 347 of file SpellMgr.h.

◆ SpellGroupSpellMap

typedef std::unordered_multimap<SpellGroup, int32> SpellGroupSpellMap

Definition at line 378 of file SpellMgr.h.

◆ SpellGroupSpellMapBounds

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

Definition at line 379 of file SpellMgr.h.

◆ SpellGroupStackMap

typedef std::unordered_map<SpellGroup, SpellGroupStackRule> SpellGroupStackMap

Definition at line 391 of file SpellMgr.h.

◆ SpellLearnSkillMap

typedef std::unordered_map<uint32, SpellLearnSkillNode> SpellLearnSkillMap

Definition at line 588 of file SpellMgr.h.

◆ SpellLearnSpellMap

Definition at line 617 of file SpellMgr.h.

◆ SpellLearnSpellMapBounds

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

Definition at line 618 of file SpellMgr.h.

◆ SpellLinkedMap

typedef std::unordered_map<std::pair<SpellLinkedType, uint32>, std::vector<int32> > SpellLinkedMap

Definition at line 641 of file SpellMgr.h.

◆ SpellPetAuraMap

typedef std::map<uint32, PetAura> SpellPetAuraMap

Definition at line 524 of file SpellMgr.h.

◆ SpellRequiredMap

typedef std::multimap<uint32, uint32> SpellRequiredMap

Definition at line 572 of file SpellMgr.h.

◆ SpellRequiredMapBounds

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

Definition at line 573 of file SpellMgr.h.

◆ SpellSpellGroupMap

typedef std::unordered_multimap<uint32, SpellGroup> SpellSpellGroupMap

Definition at line 374 of file SpellMgr.h.

◆ SpellSpellGroupMapBounds

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

Definition at line 375 of file SpellMgr.h.

◆ SpellsRequiringSpellMap

typedef std::multimap<uint32, uint32> SpellsRequiringSpellMap

Definition at line 576 of file SpellMgr.h.

◆ SpellsRequiringSpellMapBounds

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

Definition at line 577 of file SpellMgr.h.

◆ SpellTargetPositionMap

Definition at line 414 of file SpellMgr.h.

◆ SpellThreatMap

typedef std::unordered_map<uint32, SpellThreatEntry> SpellThreatMap

Definition at line 402 of file SpellMgr.h.

◆ SpellTotemModelMap

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

Definition at line 685 of file SpellMgr.h.

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 

Definition at line 417 of file SpellMgr.h.

◆ EnchantProcAttributes

Enumerator
ENCHANT_PROC_ATTR_WHITE_HIT 
ENCHANT_PROC_ATTR_LIMIT_60 

Definition at line 333 of file SpellMgr.h.

◆ 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 

Definition at line 294 of file SpellMgr.h.

◆ 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 

Definition at line 133 of file SpellMgr.h.

◆ ProcFlags2

enum ProcFlags2 : int32
Enumerator
PROC_FLAG_2_NONE 
PROC_FLAG_2_TARGET_DIES 
PROC_FLAG_2_KNOCKBACK 
PROC_FLAG_2_CAST_SUCCESSFUL 

Definition at line 230 of file SpellMgr.h.

◆ 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_DISPEL 
PROC_HIT_MASK_ALL 

Definition at line 271 of file SpellMgr.h.

◆ ProcFlagsSpellPhase

Enumerator
PROC_SPELL_PHASE_NONE 
PROC_SPELL_PHASE_CAST 
PROC_SPELL_PHASE_HIT 
PROC_SPELL_PHASE_FINISH 
PROC_SPELL_PHASE_MASK_ALL 

Definition at line 260 of file SpellMgr.h.

◆ 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 

Definition at line 249 of file SpellMgr.h.

◆ SpellAreaFlag

Enumerator
SPELL_AREA_FLAG_AUTOCAST 
SPELL_AREA_FLAG_AUTOREMOVE 
SPELL_AREA_FLAG_IGNORE_AUTOCAST_ON_QUEST_STATUS_CHANGE 

Definition at line 526 of file SpellMgr.h.

◆ SpellCategories

Enumerator
SPELLCATEGORY_HEALTH_MANA_POTIONS 
SPELLCATEGORY_DEVOUR_MAGIC 
SPELLCATEGORY_JUDGEMENT 
SPELLCATEGORY_FOOD 
SPELLCATEGORY_DRINK 

Definition at line 71 of file SpellMgr.h.

◆ 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)

Definition at line 81 of file SpellMgr.h.

◆ 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 

Definition at line 349 of file SpellMgr.h.

◆ 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 

Definition at line 381 of file SpellMgr.h.

◆ SpellLinkedType

Enumerator
SPELL_LINK_CAST 
SPELL_LINK_HIT 
SPELL_LINK_AURA 
SPELL_LINK_REMOVE 

Definition at line 124 of file SpellMgr.h.

◆ SpellOtherImmunity

enum class SpellOtherImmunity : uint8
strong
Enumerator
None 
AoETarget 
ChainTarget 

Definition at line 598 of file SpellMgr.h.

Function Documentation

◆ DEFINE_ENUM_FLAG() [1/6]

DEFINE_ENUM_FLAG ( ProcAttributes  )

◆ DEFINE_ENUM_FLAG() [2/6]

DEFINE_ENUM_FLAG ( ProcFlags  )

◆ DEFINE_ENUM_FLAG() [3/6]

DEFINE_ENUM_FLAG ( ProcFlags2  )

◆ DEFINE_ENUM_FLAG() [4/6]

DEFINE_ENUM_FLAG ( ProcFlagsHit  )

◆ DEFINE_ENUM_FLAG() [5/6]

DEFINE_ENUM_FLAG ( ProcFlagsSpellPhase  )

◆ DEFINE_ENUM_FLAG() [6/6]

DEFINE_ENUM_FLAG ( ProcFlagsSpellType  )

◆ IsPartOfSkillLine()

bool IsPartOfSkillLine ( uint32  skillId,
uint32  spellId 
)

Definition at line 118 of file SpellMgr.cpp.

+ Here is the caller graph for this function:

◆ IsPrimaryProfessionSkill()

bool IsPrimaryProfessionSkill ( uint32  skill)

Definition at line 106 of file SpellMgr.cpp.

+ Here is the caller graph for this function:

◆ IsProfessionOrRidingSkill()

bool IsProfessionOrRidingSkill ( uint32  skill)
inline

Definition at line 652 of file SpellMgr.h.

+ Here is the call graph for this function:

◆ IsProfessionSkill()

bool IsProfessionSkill ( uint32  skill)
inline

Definition at line 647 of file SpellMgr.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsWeaponSkill()

bool IsWeaponSkill ( uint32  skill)

Definition at line 112 of file SpellMgr.cpp.

Variable Documentation

◆ sPetFamilySpellsStore

TC_GAME_API PetFamilySpellsStore sPetFamilySpellsStore
extern

Definition at line 104 of file SpellMgr.cpp.