aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellEffects.cpp36
-rw-r--r--src/game/SpellMgr.h66
2 files changed, 74 insertions, 28 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 6b8b31d83b5..f7c4d863dcc 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -1540,7 +1540,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_WARRIOR:
// Charge
- if(m_spellInfo->SpellFamilyFlags & 0x1 && m_spellInfo->SpellVisual[0] == 867)
+ if(m_spellInfo->SpellFamilyFlags & SPELLFAMILYFLAG_WARRIOR_CHARGE && m_spellInfo->SpellVisual[0] == 867)
{
int32 chargeBasePoints0 = damage;
m_caster->CastCustomSpell(m_caster, 34846, &chargeBasePoints0, NULL, NULL, true);
@@ -1551,14 +1551,14 @@ void Spell::EffectDummy(uint32 i)
return;
}
//Slam
- if(m_spellInfo->SpellFamilyFlags[0] & 0x200000 && m_spellInfo->SpellIconID == 559)
+ if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_SLAM && m_spellInfo->SpellIconID == 559)
{
int32 bp0 = damage;
m_caster->CastCustomSpell(unitTarget, 50783, &bp0, NULL, NULL, true, 0);
return;
}
// Execute
- if(m_spellInfo->SpellFamilyFlags[0] & 0x20000000)
+ if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_EXECUTE)
{
if(!unitTarget)
return;
@@ -1589,7 +1589,7 @@ void Spell::EffectDummy(uint32 i)
break;
}
// Concussion Blow
- if(m_spellInfo->SpellFamilyFlags[0] & 0x4000000)
+ if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW)
{
m_damage+= uint32(damage * m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
return;
@@ -1621,7 +1621,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_WARLOCK:
// Life Tap
- if (m_spellInfo->SpellFamilyFlags[0] & 0x40000)
+ if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARLOCK_LIFETAP)
{
// In 303 exist spirit depend
uint32 spirit = uint32(m_caster->GetStat(STAT_SPIRIT));
@@ -1671,7 +1671,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_PRIEST:
// Penance
- if (m_spellInfo->SpellFamilyFlags[1] & 0x00800000)
+ if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_PRIEST_PENANCE)
{
if (!unitTarget || !unitTarget->isAlive())
return;
@@ -1697,7 +1697,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_DRUID:
// Starfall
- if (m_spellInfo->SpellFamilyFlags[2] & 0x100)
+ if (m_spellInfo->SpellFamilyFlags[2] & SPELLFAMILYFLAG2_DRUID_STARFALL)
{
//Shapeshifting into an animal form or mounting cancels the effect.
if(m_caster->GetCreatureType() == CREATURE_TYPE_BEAST || m_caster->IsMounted())
@@ -1717,7 +1717,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_ROGUE:
// Hunger for Blood
- if (m_spellInfo->SpellFamilyFlags[1] & 0x1000000)
+ if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_ROGUE_HUNGERFORBLOOD)
{
m_caster->CastSpell(m_caster, 63848, true);
break;
@@ -1770,7 +1770,7 @@ void Spell::EffectDummy(uint32 i)
{
SpellEntry const *spellInfo = sSpellStore.LookupEntry(itr->first);
- if (spellInfo->SpellFamilyName == SPELLFAMILY_ROGUE && (spellInfo->SpellFamilyFlags[1] & 0x00000240 || spellInfo->SpellFamilyFlags[0] & 0x00000860))
+ if (spellInfo->SpellFamilyName == SPELLFAMILY_ROGUE && (spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_ROGUE_COLDB_SHADOWSTEP || spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_ROGUE_VAN_EVAS_SPRINT))
((Player*)m_caster)->RemoveSpellCooldown((itr++)->first,true);
else
++itr;
@@ -1851,7 +1851,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_PALADIN:
// Divine Storm
- if (m_spellInfo->SpellFamilyFlags[1] & 0x20000 && i == 1)
+ if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_PALADIN_DIVINESTORM && i == 1)
{
int32 dmg = m_damage * damage / 100;
if (!unitTarget)
@@ -1953,7 +1953,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_SHAMAN:
// Cleansing Totem Pulse
- if (m_spellInfo->SpellFamilyFlags[0] & 0x04000000 && m_spellInfo->SpellIconID==1673)
+ if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS && m_spellInfo->SpellIconID==1673)
{
int32 bp1 = 1;
// Cleansing Totem Effect
@@ -1962,14 +1962,14 @@ void Spell::EffectDummy(uint32 i)
return;
}
// Healing Stream Totem
- if(m_spellInfo->SpellFamilyFlags[0] & 0x2000)
+ if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_SHAMAN_HEALING_STREAM)
{
if (unitTarget)
m_caster->CastCustomSpell(unitTarget, 52042, &damage, 0, 0, true, 0, 0, m_originalCasterGUID);
return;
}
// Mana Spring Totem
- if (m_spellInfo->SpellFamilyFlags[0] & 0x4000)
+ if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_SHAMAN_MANA_SPRING)
{
if (!unitTarget || unitTarget->getPowerType() != POWER_MANA)
return;
@@ -1990,7 +1990,7 @@ void Spell::EffectDummy(uint32 i)
return;
}
// Lava Lash
- if (m_spellInfo->SpellFamilyFlags[2] & 0x00000004)
+ if (m_spellInfo->SpellFamilyFlags[2] & SPELLFAMILYFLAG2_SHAMAN_LAVA_LASH)
{
if (m_caster->GetTypeId() != TYPEID_PLAYER)
return;
@@ -2006,7 +2006,7 @@ void Spell::EffectDummy(uint32 i)
break;
case SPELLFAMILY_DEATHKNIGHT:
// Death strike
- if (m_spellInfo->SpellFamilyFlags[0] & 0x00000010)
+ if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_DK_DEATH_STRIKE)
{
uint32 count = unitTarget->GetDiseasesByCaster(m_caster->GetGUID());
int32 bp = count * m_caster->GetMaxHealth() * m_spellInfo->DmgMultiplier[0] / 100;
@@ -2017,13 +2017,13 @@ void Spell::EffectDummy(uint32 i)
return;
}
// Scourge Strike
- if(m_spellInfo->SpellFamilyFlags[1] & 0x8000000)
+ if(m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_DK_SCOURGE_STRIKE)
{
m_damage = float (m_damage) * (float(damage * unitTarget->GetDiseasesByCaster(m_caster->GetGUID()) + 100.0f) / 100.0f);
return;
}
// Death Coil
- if(m_spellInfo->SpellFamilyFlags[0] & 0x002000)
+ if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_DK_DEATH_COIL)
{
if(m_caster->IsFriendlyTo(unitTarget))
{
@@ -2038,7 +2038,7 @@ void Spell::EffectDummy(uint32 i)
return;
}
// Hungering Cold
- if (m_spellInfo->SpellFamilyFlags[1] & 0x1000)
+ if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_DK_HUNGERING_COLD)
{
unitTarget->CastSpell(m_caster, 51209, true);
return;
diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h
index f95da00ccb2..a5fcd2d8900 100644
--- a/src/game/SpellMgr.h
+++ b/src/game/SpellMgr.h
@@ -83,16 +83,62 @@ enum SpellSelectTargetTypes
TARGET_TYPE_CHANNEL,
};
-//Some SpellFamilyFlags
-#define SPELLFAMILYFLAG_ROGUE_VANISH 0x00000800
-#define SPELLFAMILYFLAG_ROGUE_STEALTH 0x00400000
-#define SPELLFAMILYFLAG_ROGUE_BACKSTAB 0x00800004
-#define SPELLFAMILYFLAG_ROGUE_SAP 0x00000080
-#define SPELLFAMILYFLAG_ROGUE_FEINT 0x08000000
-#define SPELLFAMILYFLAG_ROGUE_KIDNEYSHOT 0x00200000
-//#define SPELLFAMILYFLAG_ROGUE__FINISHING_MOVE 0x9003E0000LL
-#define SPELLFAMILYFLAG_WARRIOR_SUNDERARMOR 0x00004000
-#define SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK 0x80000000
+//SpellFamilyFlags
+enum SpellFamilyFlag
+{
+ // SPELLFAMILYFLAG = SpellFamilyFlags[0]
+ // SPELLFAMILYFLAG1 = SpellFamilyFlags[1]
+ // SPELLFAMILYFLAG2 = SpellFamilyFlags[2]
+
+ // Rogue
+ SPELLFAMILYFLAG_ROGUE_VANISH = 0x00000800,
+ SPELLFAMILYFLAG_ROGUE_STEALTH = 0x00400000,
+ SPELLFAMILYFLAG_ROGUE_BACKSTAB = 0x00800004,
+ SPELLFAMILYFLAG_ROGUE_SAP = 0x00000080,
+ SPELLFAMILYFLAG_ROGUE_FEINT = 0x08000000,
+ SPELLFAMILYFLAG_ROGUE_KIDNEYSHOT = 0x00200000,
+ SPELLFAMILYFLAG1_ROGUE_HUNGERFORBLOOD = 0x01000000,
+ SPELLFAMILYFLAG_ROGUE_VAN_EVAS_SPRINT = 0x00000860, // Vanish, Evasion, Sprint
+ SPELLFAMILYFLAG1_ROGUE_COLDB_SHADOWSTEP = 0x00000240, // Cold Blood, Shadowstep
+ //SPELLFAMILYFLAG_ROGUE__FINISHING_MOVE = 0x9003E0000LL,
+
+ // Warrior
+ SPELLFAMILYFLAG_WARRIOR_SUNDERARMOR = 0x00004000,
+ SPELLFAMILYFLAG_WARRIOR_CHARGE = 0x00000001,
+ SPELLFAMILYFLAG_WARRIOR_SLAM = 0x00200000,
+ SPELLFAMILYFLAG_WARRIOR_EXECUTE = 0x20000000,
+ SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW = 0x04000000,
+
+ // Warlock
+ SPELLFAMILYFLAG_WARLOCK_LIFETAP = 0x00040000,
+
+ // Priest
+ SPELLFAMILYFLAG1_PRIEST_PENANCE = 0x00800000,
+
+ // Druid
+ SPELLFAMILYFLAG2_DRUID_STARFALL = 0x00000100,
+
+ // Paladin
+ SPELLFAMILYFLAG1_PALADIN_DIVINESTORM = 0x00020000,
+
+ // Shaman
+ SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK = 0x80000000,
+ SPELLFAMILYFLAG_SHAMAN_HEALING_STREAM = 0x00002000,
+ SPELLFAMILYFLAG_SHAMAN_MANA_SPRING = 0x00004000,
+ SPELLFAMILYFLAG2_SHAMAN_LAVA_LASH = 0x00000004,
+ SPELLFAMILYFLAG_SHAMAN_FLAMETONGUE = 0x00200000,
+
+ // Deathknight
+ SPELLFAMILYFLAG_DK_DEATH_STRIKE = 0x00000010,
+ SPELLFAMILYFLAG1_DK_SCOURGE_STRIKE = 0x08000000,
+ SPELLFAMILYFLAG_DK_DEATH_COIL = 0x00002000,
+ SPELLFAMILYFLAG1_DK_HUNGERING_COLD = 0x00001000,
+
+
+ // TODO: Figure out a more accurate name for the following familyflag(s)
+ SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS = 0x04000000, // Seems to be linked to most totems and some totem effects
+};
+
// Spell clasification
enum SpellSpecific