AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Spell.h File Reference
#include "ConditionMgr.h"
#include "GridDefines.h"
#include "LootMgr.h"
#include "PathGenerator.h"
#include "SharedDefines.h"
#include "SpellInfo.h"
#include "Unit.h"

Go to the source code of this file.

Classes

struct  SpellDestination
 
class  SpellCastTargets
 
struct  SpellValue
 
struct  ChannelTargetData
 
struct  TargetInfo
 
struct  TriggeredByAuraSpellData
 
class  Spell
 
struct  Spell::GOTargetInfo
 
struct  Spell::ItemTargetInfo
 
struct  Spell::HitTriggerSpell
 
struct  Acore::WorldObjectSpellTargetCheck
 
struct  Acore::WorldObjectSpellNearbyTargetCheck
 
struct  Acore::WorldObjectSpellAreaTargetCheck
 
struct  Acore::WorldObjectSpellConeTargetCheck
 
struct  Acore::WorldObjectSpellTrajTargetCheck
 
class  ReflectEvent
 

Namespaces

namespace  Acore
 

Macros

#define SPELL_CHANNEL_UPDATE_INTERVAL   (1 * IN_MILLISECONDS)
 

Typedefs

typedef void(Spell::* pEffect) (SpellEffIndex effIndex)
 

Enumerations

enum  SpellCastFlags {
  CAST_FLAG_NONE = 0x00000000 ,
  CAST_FLAG_PENDING = 0x00000001 ,
  CAST_FLAG_HAS_TRAJECTORY = 0x00000002 ,
  CAST_FLAG_UNKNOWN_3 = 0x00000004 ,
  CAST_FLAG_UNKNOWN_4 = 0x00000008 ,
  CAST_FLAG_UNKNOWN_5 = 0x00000010 ,
  CAST_FLAG_PROJECTILE = 0x00000020 ,
  CAST_FLAG_UNKNOWN_7 = 0x00000040 ,
  CAST_FLAG_UNKNOWN_8 = 0x00000080 ,
  CAST_FLAG_UNKNOWN_9 = 0x00000100 ,
  CAST_FLAG_UNKNOWN_10 = 0x00000200 ,
  CAST_FLAG_UNKNOWN_11 = 0x00000400 ,
  CAST_FLAG_POWER_LEFT_SELF = 0x00000800 ,
  CAST_FLAG_UNKNOWN_13 = 0x00001000 ,
  CAST_FLAG_UNKNOWN_14 = 0x00002000 ,
  CAST_FLAG_UNKNOWN_15 = 0x00004000 ,
  CAST_FLAG_UNKNOWN_16 = 0x00008000 ,
  CAST_FLAG_UNKNOWN_17 = 0x00010000 ,
  CAST_FLAG_ADJUST_MISSILE = 0x00020000 ,
  CAST_FLAG_NO_GCD = 0x00040000 ,
  CAST_FLAG_VISUAL_CHAIN = 0x00080000 ,
  CAST_FLAG_UNKNOWN_21 = 0x00100000 ,
  CAST_FLAG_RUNE_LIST = 0x00200000 ,
  CAST_FLAG_UNKNOWN_23 = 0x00400000 ,
  CAST_FLAG_UNKNOWN_24 = 0x00800000 ,
  CAST_FLAG_UNKNOWN_25 = 0x01000000 ,
  CAST_FLAG_UNKNOWN_26 = 0x02000000 ,
  CAST_FLAG_IMMUNITY = 0x04000000 ,
  CAST_FLAG_UNKNOWN_28 = 0x08000000 ,
  CAST_FLAG_UNKNOWN_29 = 0x10000000 ,
  CAST_FLAG_UNKNOWN_30 = 0x20000000 ,
  CAST_FLAG_HEAL_PREDICTION = 0x40000000 ,
  CAST_FLAG_UNKNOWN_32 = 0x80000000
}
 
enum  SpellFlags {
  SPELL_FLAG_NORMAL = 0x00 ,
  SPELL_FLAG_REFLECTED = 0x01 ,
  SPELL_FLAG_REDIRECTED = 0x02
}
 
enum  SpellRangeFlag {
  SPELL_RANGE_DEFAULT = 0 ,
  SPELL_RANGE_MELEE = 1 ,
  SPELL_RANGE_RANGED = 2
}
 
enum  SpellState {
  SPELL_STATE_NULL = 0 ,
  SPELL_STATE_PREPARING = 1 ,
  SPELL_STATE_CASTING = 2 ,
  SPELL_STATE_FINISHED = 3 ,
  SPELL_STATE_IDLE = 4 ,
  SPELL_STATE_DELAYED = 5
}
 
enum  SpellEffectHandleMode {
  SPELL_EFFECT_HANDLE_LAUNCH ,
  SPELL_EFFECT_HANDLE_LAUNCH_TARGET ,
  SPELL_EFFECT_HANDLE_HIT ,
  SPELL_EFFECT_HANDLE_HIT_TARGET
}
 

Variables

static const uint32 SPELL_INTERRUPT_NONPLAYER = 32747
 

Macro Definition Documentation

◆ SPELL_CHANNEL_UPDATE_INTERVAL

#define SPELL_CHANNEL_UPDATE_INTERVAL   (1 * IN_MILLISECONDS)

Typedef Documentation

◆ pEffect

typedef void(Spell::* pEffect) (SpellEffIndex effIndex)

Enumeration Type Documentation

◆ SpellCastFlags

Enumerator
CAST_FLAG_NONE 
CAST_FLAG_PENDING 
CAST_FLAG_HAS_TRAJECTORY 
CAST_FLAG_UNKNOWN_3 
CAST_FLAG_UNKNOWN_4 
CAST_FLAG_UNKNOWN_5 
CAST_FLAG_PROJECTILE 
CAST_FLAG_UNKNOWN_7 
CAST_FLAG_UNKNOWN_8 
CAST_FLAG_UNKNOWN_9 
CAST_FLAG_UNKNOWN_10 
CAST_FLAG_UNKNOWN_11 
CAST_FLAG_POWER_LEFT_SELF 
CAST_FLAG_UNKNOWN_13 
CAST_FLAG_UNKNOWN_14 
CAST_FLAG_UNKNOWN_15 
CAST_FLAG_UNKNOWN_16 
CAST_FLAG_UNKNOWN_17 
CAST_FLAG_ADJUST_MISSILE 
CAST_FLAG_NO_GCD 
CAST_FLAG_VISUAL_CHAIN 
CAST_FLAG_UNKNOWN_21 
CAST_FLAG_RUNE_LIST 
CAST_FLAG_UNKNOWN_23 
CAST_FLAG_UNKNOWN_24 
CAST_FLAG_UNKNOWN_25 
CAST_FLAG_UNKNOWN_26 
CAST_FLAG_IMMUNITY 
CAST_FLAG_UNKNOWN_28 
CAST_FLAG_UNKNOWN_29 
CAST_FLAG_UNKNOWN_30 
CAST_FLAG_HEAL_PREDICTION 
CAST_FLAG_UNKNOWN_32 
44{
45 CAST_FLAG_NONE = 0x00000000,
46 CAST_FLAG_PENDING = 0x00000001, // aoe combat log?
47 CAST_FLAG_HAS_TRAJECTORY = 0x00000002,
48 CAST_FLAG_UNKNOWN_3 = 0x00000004,
49 CAST_FLAG_UNKNOWN_4 = 0x00000008, // ignore AOE visual
50 CAST_FLAG_UNKNOWN_5 = 0x00000010,
51 CAST_FLAG_PROJECTILE = 0x00000020, // Projectiles visual
52 CAST_FLAG_UNKNOWN_7 = 0x00000040,
53 CAST_FLAG_UNKNOWN_8 = 0x00000080,
54 CAST_FLAG_UNKNOWN_9 = 0x00000100,
55 CAST_FLAG_UNKNOWN_10 = 0x00000200,
56 CAST_FLAG_UNKNOWN_11 = 0x00000400,
57 CAST_FLAG_POWER_LEFT_SELF = 0x00000800,
58 CAST_FLAG_UNKNOWN_13 = 0x00001000,
59 CAST_FLAG_UNKNOWN_14 = 0x00002000,
60 CAST_FLAG_UNKNOWN_15 = 0x00004000,
61 CAST_FLAG_UNKNOWN_16 = 0x00008000,
62 CAST_FLAG_UNKNOWN_17 = 0x00010000,
63 CAST_FLAG_ADJUST_MISSILE = 0x00020000,
64 CAST_FLAG_NO_GCD = 0x00040000, // no GCD for spell casts from charm/summon (vehicle spells is an example)
65 CAST_FLAG_VISUAL_CHAIN = 0x00080000,
66 CAST_FLAG_UNKNOWN_21 = 0x00100000,
67 CAST_FLAG_RUNE_LIST = 0x00200000,
68 CAST_FLAG_UNKNOWN_23 = 0x00400000,
69 CAST_FLAG_UNKNOWN_24 = 0x00800000,
70 CAST_FLAG_UNKNOWN_25 = 0x01000000,
71 CAST_FLAG_UNKNOWN_26 = 0x02000000,
72 CAST_FLAG_IMMUNITY = 0x04000000,
73 CAST_FLAG_UNKNOWN_28 = 0x08000000,
74 CAST_FLAG_UNKNOWN_29 = 0x10000000,
75 CAST_FLAG_UNKNOWN_30 = 0x20000000,
76 CAST_FLAG_HEAL_PREDICTION = 0x40000000, //@todo: Unused on TC 3.3.5a. Defined from TC Master.
77 CAST_FLAG_UNKNOWN_32 = 0x80000000
78};
@ CAST_FLAG_UNKNOWN_5
Definition: Spell.h:50
@ CAST_FLAG_UNKNOWN_10
Definition: Spell.h:55
@ CAST_FLAG_UNKNOWN_32
Definition: Spell.h:77
@ CAST_FLAG_UNKNOWN_25
Definition: Spell.h:70
@ CAST_FLAG_VISUAL_CHAIN
Definition: Spell.h:65
@ CAST_FLAG_ADJUST_MISSILE
Definition: Spell.h:63
@ CAST_FLAG_UNKNOWN_8
Definition: Spell.h:53
@ CAST_FLAG_HEAL_PREDICTION
Definition: Spell.h:76
@ CAST_FLAG_UNKNOWN_9
Definition: Spell.h:54
@ CAST_FLAG_UNKNOWN_3
Definition: Spell.h:48
@ CAST_FLAG_UNKNOWN_26
Definition: Spell.h:71
@ CAST_FLAG_UNKNOWN_11
Definition: Spell.h:56
@ CAST_FLAG_UNKNOWN_30
Definition: Spell.h:75
@ CAST_FLAG_UNKNOWN_4
Definition: Spell.h:49
@ CAST_FLAG_NO_GCD
Definition: Spell.h:64
@ CAST_FLAG_UNKNOWN_23
Definition: Spell.h:68
@ CAST_FLAG_UNKNOWN_16
Definition: Spell.h:61
@ CAST_FLAG_PROJECTILE
Definition: Spell.h:51
@ CAST_FLAG_UNKNOWN_29
Definition: Spell.h:74
@ CAST_FLAG_UNKNOWN_7
Definition: Spell.h:52
@ CAST_FLAG_POWER_LEFT_SELF
Definition: Spell.h:57
@ CAST_FLAG_UNKNOWN_13
Definition: Spell.h:58
@ CAST_FLAG_UNKNOWN_28
Definition: Spell.h:73
@ CAST_FLAG_UNKNOWN_24
Definition: Spell.h:69
@ CAST_FLAG_HAS_TRAJECTORY
Definition: Spell.h:47
@ CAST_FLAG_RUNE_LIST
Definition: Spell.h:67
@ CAST_FLAG_UNKNOWN_14
Definition: Spell.h:59
@ CAST_FLAG_UNKNOWN_15
Definition: Spell.h:60
@ CAST_FLAG_PENDING
Definition: Spell.h:46
@ CAST_FLAG_NONE
Definition: Spell.h:45
@ CAST_FLAG_UNKNOWN_17
Definition: Spell.h:62
@ CAST_FLAG_IMMUNITY
Definition: Spell.h:72
@ CAST_FLAG_UNKNOWN_21
Definition: Spell.h:66

◆ SpellEffectHandleMode

Enumerator
SPELL_EFFECT_HANDLE_LAUNCH 
SPELL_EFFECT_HANDLE_LAUNCH_TARGET 
SPELL_EFFECT_HANDLE_HIT 
SPELL_EFFECT_HANDLE_HIT_TARGET 
235{
240};
@ SPELL_EFFECT_HANDLE_LAUNCH_TARGET
Definition: Spell.h:237
@ SPELL_EFFECT_HANDLE_LAUNCH
Definition: Spell.h:236
@ SPELL_EFFECT_HANDLE_HIT
Definition: Spell.h:238
@ SPELL_EFFECT_HANDLE_HIT_TARGET
Definition: Spell.h:239

◆ SpellFlags

enum SpellFlags
Enumerator
SPELL_FLAG_NORMAL 
SPELL_FLAG_REFLECTED 
SPELL_FLAG_REDIRECTED 
82{
83 SPELL_FLAG_NORMAL = 0x00,
84 SPELL_FLAG_REFLECTED = 0x01, // reflected spell
85 SPELL_FLAG_REDIRECTED = 0x02 // redirected spell
86};
@ SPELL_FLAG_REFLECTED
Definition: Spell.h:84
@ SPELL_FLAG_NORMAL
Definition: Spell.h:83
@ SPELL_FLAG_REDIRECTED
Definition: Spell.h:85

◆ SpellRangeFlag

Enumerator
SPELL_RANGE_DEFAULT 
SPELL_RANGE_MELEE 
SPELL_RANGE_RANGED 
89{
91 SPELL_RANGE_MELEE = 1, //melee
92 SPELL_RANGE_RANGED = 2, //hunter range and ranged weapon
93};
@ SPELL_RANGE_MELEE
Definition: Spell.h:91
@ SPELL_RANGE_RANGED
Definition: Spell.h:92
@ SPELL_RANGE_DEFAULT
Definition: Spell.h:90

◆ SpellState

enum SpellState
Enumerator
SPELL_STATE_NULL 
SPELL_STATE_PREPARING 
SPELL_STATE_CASTING 
SPELL_STATE_FINISHED 
SPELL_STATE_IDLE 
SPELL_STATE_DELAYED 
225{
232};
@ SPELL_STATE_DELAYED
Definition: Spell.h:231
@ SPELL_STATE_NULL
Definition: Spell.h:226
@ SPELL_STATE_FINISHED
Definition: Spell.h:229
@ SPELL_STATE_PREPARING
Definition: Spell.h:227
@ SPELL_STATE_CASTING
Definition: Spell.h:228
@ SPELL_STATE_IDLE
Definition: Spell.h:230

Variable Documentation

◆ SPELL_INTERRUPT_NONPLAYER

const uint32 SPELL_INTERRUPT_NONPLAYER = 32747
static