diff options
author | thenecromancer <none@none> | 2010-01-13 10:27:44 +0100 |
---|---|---|
committer | thenecromancer <none@none> | 2010-01-13 10:27:44 +0100 |
commit | c36a8d2d5fb688da9f1d156c0622e836c547649c (patch) | |
tree | 707e72c7a39c233c8779de2215a12655378ae426 | |
parent | a4cb03d9cd5362769935001614236437e0d0e9ca (diff) |
Change SPELL_EFFECT_SUMMON_PHANTAS to SPELL_EFFECT_FORCE_DESELECT and allow it to be casted with active pet
This fixes Mirror Image not changing names when Water Elemental is active. (Note that deselect effect is done in linked spells for Killing Spree/Shadowmeld)
--HG--
branch : trunk
-rw-r--r-- | src/game/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/game/Spell.cpp | 11 | ||||
-rw-r--r-- | src/game/Spell.h | 1 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 9 |
4 files changed, 10 insertions, 13 deletions
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index afccf854ee0..e80239b3574 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -678,7 +678,7 @@ enum SpellEffects SPELL_EFFECT_KILL_CREDIT = 90, SPELL_EFFECT_THREAT_ALL = 91, SPELL_EFFECT_ENCHANT_HELD_ITEM = 92, - SPELL_EFFECT_SUMMON_PHANTASM = 93, //unused + SPELL_EFFECT_FORCE_DESELECT = 93, SPELL_EFFECT_SELF_RESURRECT = 94, SPELL_EFFECT_SKINNING = 95, SPELL_EFFECT_CHARGE = 96, diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 6c18c3584c3..7f4b8bedc76 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4995,17 +4995,6 @@ SpellCastResult Spell::CheckCast(bool strict) } break; } - // Not used for summon? - case SPELL_EFFECT_SUMMON_PHANTASM: - { - if(m_caster->GetPetGUID()) - return SPELL_FAILED_ALREADY_HAVE_SUMMON; - - if(m_caster->GetCharmGUID()) - return SPELL_FAILED_ALREADY_HAVE_CHARM; - - break; - } case SPELL_EFFECT_SUMMON_PET: { if(m_caster->GetPetGUID()) //let warlock do a replacement summon diff --git a/src/game/Spell.h b/src/game/Spell.h index 04f3984ed91..bda7ebbfaa3 100644 --- a/src/game/Spell.h +++ b/src/game/Spell.h @@ -322,6 +322,7 @@ class Spell void EffectFeedPet(uint32 i); void EffectDismissPet(uint32 i); void EffectReputation(uint32 i); + void EffectForceDeselect(uint32 i); void EffectSelfResurrect(uint32 i); void EffectSkinning(uint32 i); void EffectCharge(uint32 i); diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index aa7295ca7e6..849bd739d43 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -159,7 +159,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectKillCreditPersonal, // 90 SPELL_EFFECT_KILL_CREDIT Kill credit but only for single person &Spell::EffectUnused, // 91 SPELL_EFFECT_THREAT_ALL one spell: zzOLDBrainwash &Spell::EffectEnchantHeldItem, // 92 SPELL_EFFECT_ENCHANT_HELD_ITEM - &Spell::EffectUnused, // 93 SPELL_EFFECT_SUMMON_PHANTASM + &Spell::EffectForceDeselect, // 93 SPELL_EFFECT_FORCE_DESELECT &Spell::EffectSelfResurrect, // 94 SPELL_EFFECT_SELF_RESURRECT &Spell::EffectSkinning, // 95 SPELL_EFFECT_SKINNING &Spell::EffectCharge, // 96 SPELL_EFFECT_CHARGE @@ -6636,6 +6636,13 @@ void Spell::EffectQuestComplete(uint32 i) _player->AreaExploredOrEventHappens(quest_id); } +void Spell::EffectForceDeselect(uint32 i) +{ + WorldPacket data(SMSG_CLEAR_TARGET, 8);
+ data << uint64(m_caster->GetGUID());
+ m_caster->SendMessageToSet(&data, true); +} + void Spell::EffectSelfResurrect(uint32 i) { if(!unitTarget || unitTarget->isAlive()) |