From 94fe96298212d75b7d484efe32d4ddfcccd26a6b Mon Sep 17 00:00:00 2001 From: QAston Date: Mon, 16 Mar 2009 23:15:38 +0100 Subject: *Fix dead-loop crash. *Fix damage shield. --HG-- branch : trunk --- src/game/Spell.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/game/Spell.cpp') diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 57bcebcef62..db2b357fc39 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -997,9 +997,12 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) procEx = createProcExtendMask(&damageInfo, missInfo); procVictim |= PROC_FLAG_TAKEN_ANY_DAMAGE; + // Send blocked amount to spell_proc event if proc can be only from block (Damage Shield) + uint32 ProcAmount = procEx == PROC_EX_BLOCK ? damageInfo.blocked : damageInfo.damage; + // Do triggers for unit (reflect triggers passed on hit phase for correct drop charge) if (m_canTrigger && missInfo != SPELL_MISS_REFLECT) - caster->ProcDamageAndSpell(unitTarget, procAttacker, procVictim, procEx, damageInfo.damage, m_attackType, m_spellInfo); + caster->ProcDamageAndSpell(unitTarget, procAttacker, procVictim, procEx, ProcAmount, m_attackType, m_spellInfo); caster->DealSpellDamage(&damageInfo, true); -- cgit v1.2.3