aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 8b7677e6d2f..7cfb6a1d16c 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -12012,14 +12012,14 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
if (!isTriggerAura[aurEff->GetAuraName()] && triggerData.spellProcEvent==NULL)
continue;
triggerData.effMask |= 1<<i;
- if (procExtra & (PROC_EX_INTERNAL_TRIGGERED | PROC_EX_INTERNAL_CANT_PROC))
- itr->second->SetCanProc(false);
- else
- itr->second->SetCanProc(true);
}
}
if (triggerData.effMask)
+ {
procTriggered.push_front(triggerData);
+ if (procExtra & (PROC_EX_INTERNAL_TRIGGERED | PROC_EX_INTERNAL_CANT_PROC))
+ itr->second->SetCantProc(true);
+ }
}
// Nothing found
@@ -12189,6 +12189,11 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
i->aura->DropAuraCharge();
}
}
+
+ // Cleanup proc requirements
+ if (procExtra & (PROC_EX_INTERNAL_TRIGGERED | PROC_EX_INTERNAL_CANT_PROC))
+ for(ProcTriggeredList::iterator i = procTriggered.begin(); i != procTriggered.end(); ++i)
+ i->aura->SetCantProc(false);
}
SpellSchoolMask Unit::GetMeleeDamageSchoolMask() const