[7849] Fix remove Swiftmend aurastate in some cases

Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
DiSlord 2009-05-18 23:43:38 +04:00
parent c672d4d99e
commit 695d83568a
2 changed files with 6 additions and 2 deletions

View file

@ -1075,6 +1075,7 @@ void Aura::_RemoveAura()
m_target->ModifyAuraState(AURA_STATE_ENRAGE, false); m_target->ModifyAuraState(AURA_STATE_ENRAGE, false);
uint32 removeState = 0; uint32 removeState = 0;
uint64 removeFamilyFlag = m_spellProto->SpellFamilyFlags;
switch(m_spellProto->SpellFamilyName) switch(m_spellProto->SpellFamilyName)
{ {
case SPELLFAMILY_PALADIN: case SPELLFAMILY_PALADIN:
@ -1089,7 +1090,10 @@ void Aura::_RemoveAura()
if(m_spellProto->SpellFamilyFlags & 0x0000000000000400LL) if(m_spellProto->SpellFamilyFlags & 0x0000000000000400LL)
removeState = AURA_STATE_FAERIE_FIRE; // Faerie Fire (druid versions) removeState = AURA_STATE_FAERIE_FIRE; // Faerie Fire (druid versions)
else if(m_spellProto->SpellFamilyFlags & 0x50) else if(m_spellProto->SpellFamilyFlags & 0x50)
{
removeFamilyFlag = 0x50;
removeState = AURA_STATE_SWIFTMEND; // Swiftmend aura state removeState = AURA_STATE_SWIFTMEND; // Swiftmend aura state
}
break; break;
case SPELLFAMILY_WARRIOR: case SPELLFAMILY_WARRIOR:
if(m_spellProto->SpellFamilyFlags & 0x0004000000000000LL) if(m_spellProto->SpellFamilyFlags & 0x0004000000000000LL)
@ -1113,7 +1117,7 @@ void Aura::_RemoveAura()
{ {
SpellEntry const *auraSpellInfo = (*i).second->GetSpellProto(); SpellEntry const *auraSpellInfo = (*i).second->GetSpellProto();
if(auraSpellInfo->SpellFamilyName == m_spellProto->SpellFamilyName && if(auraSpellInfo->SpellFamilyName == m_spellProto->SpellFamilyName &&
auraSpellInfo->SpellFamilyFlags == m_spellProto->SpellFamilyFlags ) auraSpellInfo->SpellFamilyFlags & removeFamilyFlag)
{ {
found = true; found = true;
break; break;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7848" #define REVISION_NR "7849"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__