aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp32
1 files changed, 12 insertions, 20 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 0071aa23f37..810fd9c8a68 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2979,13 +2979,10 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered
triggeredByAura->GetBase()->SetDuration(0);
}
+ // cleanup after mod system
+ // triggered spell pointer can be not removed in some cases
if (m_caster->GetTypeId() == TYPEID_PLAYER)
- {
- m_caster->ToPlayer()->RestoreSpellMods(this);
- // cleanup after mod system
- // triggered spell pointer can be not removed in some cases
m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
- }
if (param1 || param2)
SendCastResult(result, &param1, &param2);
@@ -3091,8 +3088,6 @@ void Spell::cancel()
{
case SPELL_STATE_PREPARING:
CancelGlobalCooldown();
- if (m_caster->GetTypeId() == TYPEID_PLAYER)
- m_caster->ToPlayer()->RestoreSpellMods(this);
// no break
case SPELL_STATE_DELAYED:
SendInterrupted(0);
@@ -3187,14 +3182,12 @@ void Spell::cast(bool skipCheck)
{
SendCastResult(castResult, &param1, &param2);
SendInterrupted(0);
- //restore spell mods
+
+ // cleanup after mod system
+ // triggered spell pointer can be not removed in some cases
if (m_caster->GetTypeId() == TYPEID_PLAYER)
- {
- m_caster->ToPlayer()->RestoreSpellMods(this);
- // cleanup after mod system
- // triggered spell pointer can be not removed in some cases
m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
- }
+
finish(false);
SetExecutedCurrently(false);
return;
@@ -3214,10 +3207,11 @@ void Spell::cast(bool skipCheck)
my_trade->SetSpell(m_spellInfo->Id, m_CastItem);
SendCastResult(SPELL_FAILED_DONT_REPORT);
SendInterrupted(0);
- m_caster->ToPlayer()->RestoreSpellMods(this);
+
// cleanup after mod system
// triggered spell pointer can be not removed in some cases
m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
+
finish(false);
SetExecutedCurrently(false);
return;
@@ -3240,14 +3234,12 @@ void Spell::cast(bool skipCheck)
if (m_spellState == SPELL_STATE_FINISHED)
{
SendInterrupted(0);
- //restore spell mods
+
+ // cleanup after mod system
+ // triggered spell pointer can be not removed in some cases
if (m_caster->GetTypeId() == TYPEID_PLAYER)
- {
- m_caster->ToPlayer()->RestoreSpellMods(this);
- // cleanup after mod system
- // triggered spell pointer can be not removed in some cases
m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
- }
+
finish(false);
SetExecutedCurrently(false);
return;