aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Spell.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 417afad7c41..c4db2454724 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -2083,8 +2083,7 @@ void Spell::prepare(SpellCastTargets * targets, Aura* triggeredByAura)
// set timer base at cast time
ReSetTimer();
- //item: first cast may destroy item and second cast causes crash
- if(m_IsTriggeredSpell || !m_casttime && !m_spellInfo->StartRecoveryTime && !m_castItemGUID && GetCurrentContainer() == CURRENT_GENERIC_SPELL)
+ if(m_IsTriggeredSpell)
cast(true);
else
{
@@ -2093,9 +2092,16 @@ void Spell::prepare(SpellCastTargets * targets, Aura* triggeredByAura)
if(isSpellBreakStealth(m_spellInfo) )
m_caster->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CAST);
- m_caster->SetCurrentCastedSpell( this );
- m_selfContainer = &(m_caster->m_currentSpells[GetCurrentContainer()]);
- SendSpellStart();
+ if(!m_casttime && !m_spellInfo->StartRecoveryTime
+ && !m_castItemGUID //item: first cast may destroy item and second cast causes crash
+ && GetCurrentContainer() == CURRENT_GENERIC_SPELL)
+ cast(true);
+ else
+ {
+ m_caster->SetCurrentCastedSpell( this );
+ m_selfContainer = &(m_caster->m_currentSpells[GetCurrentContainer()]);
+ SendSpellStart();
+ }
}
}