aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorthenecromancer <none@none>2010-01-13 10:27:44 +0100
committerthenecromancer <none@none>2010-01-13 10:27:44 +0100
commitc36a8d2d5fb688da9f1d156c0622e836c547649c (patch)
tree707e72c7a39c233c8779de2215a12655378ae426 /src
parenta4cb03d9cd5362769935001614236437e0d0e9ca (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
Diffstat (limited to 'src')
-rw-r--r--src/game/SharedDefines.h2
-rw-r--r--src/game/Spell.cpp11
-rw-r--r--src/game/Spell.h1
-rw-r--r--src/game/SpellEffects.cpp9
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())