[8329] Implement aura deleting delay in case aura lock as currently used.

* Use counter for aura uses lock for recursivly mark as used in some cases.
* At aura remove add aura to deleting delayed auras list for aura target.
* Remove now unneeded hacks from aura handlers and aura tick code (maybe not all found yet)
* Use new aura delete locking for simplify proc spell event code.
* Prevent apply aura boost spells if aura deleted while adding to target by triggered spells.
* Re-implement aura list updating at auras update for target to better way skip
  removed from aura list auras while auras update.
This commit is contained in:
VladimirMangos 2009-08-08 11:03:45 +04:00
parent 7baebcd2de
commit c8cc9b28f8
6 changed files with 139 additions and 142 deletions

View file

@ -2413,11 +2413,6 @@ void Spell::EffectApplyAura(uint32 i)
if (!added)
return;
// found crash at character loading, broken pointer to Aur...
// Aur was deleted in AddAura()...
if(!Aur)
return;
// Prayer of Mending (jump animation), we need formal caster instead original for correct animation
if( m_spellInfo->SpellFamilyName == SPELLFAMILY_PRIEST && (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000002000000000)))
m_caster->CastSpell(unitTarget, 41637, true, NULL, Aur, m_originalCasterGUID);