aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2011-09-24 02:01:18 +0200
committerQAston <qaston@gmail.com>2011-09-24 02:02:39 +0200
commitd01a761f5347cbfe5d4b2812aad44d0163bc5d66 (patch)
tree4d1b4627b0f8e250c74b679173bc5f8d9f180780 /src/server/game/Spells/SpellEffects.cpp
parent71bbbaa21b03b31a796308dbfe968904c769967f (diff)
Core/Spells: Drop EFFECT_IMPLICIT_TARGET_PET and use EFFECT_IMPLICIT_TARGET_EXPLICIT instead.
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index f0e63398b8f..c8e3c195e32 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -3091,13 +3091,12 @@ void Spell::EffectLearnSpell(SpellEffIndex effIndex)
if (unitTarget->GetTypeId() != TYPEID_PLAYER)
{
- if (m_caster->GetTypeId() == TYPEID_PLAYER)
+ if (unitTarget->ToPet())
EffectLearnPetSpell(effIndex);
-
return;
}
- Player* player = (Player*)unitTarget;
+ Player* player = unitTarget->ToPlayer();
uint32 spellToLearn = (m_spellInfo->Id == 483 || m_spellInfo->Id == 55884) ? damage : m_spellInfo->Effects[effIndex].TriggerSpell;
player->learnSpell(spellToLearn, false);
@@ -3782,15 +3781,16 @@ void Spell::EffectSummonPet(SpellEffIndex effIndex)
void Spell::EffectLearnPetSpell(SpellEffIndex effIndex)
{
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ if (!unitTarget)
return;
- Player* _player = m_caster->ToPlayer();
-
- Pet* pet = _player->GetPet();
- if (!pet)
+ if (unitTarget->ToPlayer())
+ {
+ EffectLearnSpell(effIndex);
return;
- if (!pet->isAlive())
+ }
+ Pet* pet = unitTarget->ToPet();
+ if (!pet)
return;
SpellInfo const* learn_spellproto = sSpellMgr->GetSpellInfo(m_spellInfo->Effects[effIndex].TriggerSpell);
@@ -3798,9 +3798,8 @@ void Spell::EffectLearnPetSpell(SpellEffIndex effIndex)
return;
pet->learnSpell(learn_spellproto->Id);
-
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
- _player->PetSpellInitialize();
+ pet->GetOwner()->PetSpellInitialize();
}
void Spell::EffectTaunt(SpellEffIndex /*effIndex*/)