aboutsummaryrefslogtreecommitdiff
path: root/src/game/BattleGround.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/BattleGround.cpp')
-rw-r--r--src/game/BattleGround.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp
index 554f8555627..19643a6003e 100644
--- a/src/game/BattleGround.cpp
+++ b/src/game/BattleGround.cpp
@@ -34,6 +34,7 @@
#include "MapManager.h"
#include "Object.h"
#include "SpellAuras.h"
+#include "SpellAuraEffects.h"
#include "Util.h"
namespace Trinity
@@ -427,15 +428,16 @@ void BattleGround::Update(uint32 diff)
{
plr->RemoveAurasDueToSpell(SPELL_ARENA_PREPARATION);
// remove auras with duration lower than 30s
- Unit::AuraMap & aurMap = plr->GetAuras();
- for (Unit::AuraMap::iterator iter = aurMap.begin(); iter != aurMap.end();)
+ Unit::AuraMap & auraMap = plr->GetOwnedAuras();
+ for (Unit::AuraMap::iterator iter = auraMap.begin(); iter != auraMap.end();)
{
- if (!iter->second->IsPermanent()
- && iter->second->GetAuraDuration()<=30*IN_MILISECONDS
- && iter->second->IsPositive()
- && (!(iter->second->GetSpellProto()->Attributes & SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY))
- && (!iter->second->IsAuraType(SPELL_AURA_MOD_INVISIBILITY)))
- plr->RemoveAura(iter);
+ Aura * aura = iter->second;
+ if (!aura->IsPermanent()
+ && aura->GetDuration() <= 30*IN_MILISECONDS
+ && aura->IsPositive(plr)
+ && (!(aura->GetSpellProto()->Attributes & SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY))
+ && (!aura->HasEffectType(SPELL_AURA_MOD_INVISIBILITY)))
+ plr->RemoveOwnedAura(iter);
else
++iter;
}