aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellMgr.cpp')
-rw-r--r--src/game/SpellMgr.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index 35105593cc6..43ee5d7d4a5 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -410,12 +410,23 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
return SPELL_ASPECT;
}
- for(int i = 0; i < 3; i++)
- if( spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AURA && (
- spellInfo->EffectApplyAuraName[i] == SPELL_AURA_TRACK_CREATURES ||
- spellInfo->EffectApplyAuraName[i] == SPELL_AURA_TRACK_RESOURCES ||
- spellInfo->EffectApplyAuraName[i] == SPELL_AURA_TRACK_STEALTHED ) )
- return SPELL_TRACKER;
+ for(int i = 0; i < 3; ++i)
+ {
+ if(spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AURA)
+ {
+ switch(spellInfo->EffectApplyAuraName[i])
+ {
+ case SPELL_AURA_TRACK_CREATURES:
+ case SPELL_AURA_TRACK_RESOURCES:
+ case SPELL_AURA_TRACK_STEALTHED:
+ return SPELL_TRACKER;
+ case SPELL_AURA_MOD_CHARM:
+ case SPELL_AURA_MOD_POSSESS_PET:
+ case SPELL_AURA_MOD_POSSESS:
+ return SPELL_CHARM;
+ }
+ }
+ }
// elixirs can have different families, but potion most ofc.
if(SpellSpecific sp = spellmgr.GetSpellElixirSpecific(spellInfo->Id))
@@ -455,6 +466,7 @@ bool IsSingleFromSpellSpecificPerTarget(uint32 spellSpec1,uint32 spellSpec2)
case SPELL_WELL_FED:
case SPELL_DRINK:
case SPELL_FOOD:
+ case SPELL_CHARM:
return spellSpec1==spellSpec2;
case SPELL_BATTLE_ELIXIR:
return spellSpec2==SPELL_BATTLE_ELIXIR