aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormik1893 <michele.roscelli@gmail.com>2015-07-15 18:21:43 +0200
committermik1893 <michele.roscelli@gmail.com>2015-07-15 18:21:43 +0200
commit35f0d8e9c1e89c3095c82e0dd89d9f8f08f288a3 (patch)
treea73e5ddcbb1ee0dfbb5a729c5f0c4766a4148dca /src
parentd81f15759b29157354ef447a29e43bb665faff75 (diff)
parent07df574b432c641c37691b43d199daa4f69b2602 (diff)
Merge pull request #14883 from tkrokli/omen_of_clarity
[3.3.5] Core/Spells: Avoid losing spell mod auras when check on spellcast fails
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 30c02db9150..a5901e1d2e1 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2901,6 +2901,14 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered
triggeredByAura->GetBase()->SetDuration(0);
}
+ 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);
+ }
+
SendCastResult(result);
finish(false);