mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
[10315] Make AuraHolder::IsDeleted() really work.
In fact it has been broken originally when added in Aura long before move it to AuraHolder. Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
685edfe7e2
commit
d31ce2e2a3
4 changed files with 8 additions and 6 deletions
|
|
@ -7735,12 +7735,9 @@ void SpellAuraHolder::RemoveAura(SpellEffectIndex index)
|
||||||
|
|
||||||
void SpellAuraHolder::ApplyAuraModifiers(bool apply, bool real)
|
void SpellAuraHolder::ApplyAuraModifiers(bool apply, bool real)
|
||||||
{
|
{
|
||||||
for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i)
|
for (int32 i = 0; i < MAX_EFFECT_INDEX && !IsDeleted(); ++i)
|
||||||
{
|
if (Aura *aur = GetAuraByEffectIndex(SpellEffectIndex(i)))
|
||||||
Aura *aur = GetAuraByEffectIndex(SpellEffectIndex(i));
|
|
||||||
if (aur)
|
|
||||||
aur->ApplyModifier(apply, real);
|
aur->ApplyModifier(apply, real);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpellAuraHolder::_AddSpellAuraHolder()
|
void SpellAuraHolder::_AddSpellAuraHolder()
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,8 @@ class MANGOS_DLL_SPEC SpellAuraHolder
|
||||||
bool IsDeleted() const { return m_deleted;}
|
bool IsDeleted() const { return m_deleted;}
|
||||||
bool IsEmptyHolder() const;
|
bool IsEmptyHolder() const;
|
||||||
|
|
||||||
|
void SetDeleted() { m_deleted = true; }
|
||||||
|
|
||||||
void SetInUse(bool state)
|
void SetInUse(bool state)
|
||||||
{
|
{
|
||||||
if(state)
|
if(state)
|
||||||
|
|
|
||||||
|
|
@ -4572,7 +4572,10 @@ void Unit::RemoveSpellAuraHolder(SpellAuraHolder *holder, AuraRemoveMode mode)
|
||||||
// If holder in use (removed from code that plan access to it data after return)
|
// If holder in use (removed from code that plan access to it data after return)
|
||||||
// store it in holder list with delayed deletion
|
// store it in holder list with delayed deletion
|
||||||
if (holder->IsInUse())
|
if (holder->IsInUse())
|
||||||
|
{
|
||||||
|
holder->SetDeleted();
|
||||||
m_deletedHolders.push_back(holder);
|
m_deletedHolders.push_back(holder);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
delete holder;
|
delete holder;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "10314"
|
#define REVISION_NR "10315"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue