aboutsummaryrefslogtreecommitdiff
path: root/src/game/Spell.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-03-16 23:15:38 +0100
committerQAston <none@none>2009-03-16 23:15:38 +0100
commit94fe96298212d75b7d484efe32d4ddfcccd26a6b (patch)
tree6515e1e5dda8fc8c1ce82e6b75f70219fdf45dba /src/game/Spell.cpp
parent0213ad8a1f21de1a76c63e67f35b1f2061f6e7d4 (diff)
*Fix dead-loop crash.
*Fix damage shield. --HG-- branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r--src/game/Spell.cpp5
1 files changed, 4 insertions, 1 deletions
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);