diff options
| author | QAston <qaston@gmail.com> | 2011-09-24 02:01:18 +0200 |
|---|---|---|
| committer | QAston <qaston@gmail.com> | 2011-09-24 02:02:39 +0200 |
| commit | d01a761f5347cbfe5d4b2812aad44d0163bc5d66 (patch) | |
| tree | 4d1b4627b0f8e250c74b679173bc5f8d9f180780 /src/server/game/Spells/SpellEffects.cpp | |
| parent | 71bbbaa21b03b31a796308dbfe968904c769967f (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-x | src/server/game/Spells/SpellEffects.cpp | 21 |
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*/) |
