aboutsummaryrefslogtreecommitdiff
path: root/src/game/BattleGround.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2010-01-10 20:09:44 +0100
committerQAston <none@none>2010-01-10 20:09:44 +0100
commitef24d90472d979697d234a54510320edcdc9ae61 (patch)
treefbf9b20183ae2e95c3c090bb8e5332296e4cadcf /src/game/BattleGround.cpp
parent4bd6d06e26e6d09297139ce08abcc5225c430e1b (diff)
* Make sure that aura is applied on unit before trying to remove it.
--HG-- branch : trunk
Diffstat (limited to 'src/game/BattleGround.cpp')
-rw-r--r--src/game/BattleGround.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp
index 19643a6003e..1828a04fa8a 100644
--- a/src/game/BattleGround.cpp
+++ b/src/game/BattleGround.cpp
@@ -428,16 +428,17 @@ void BattleGround::Update(uint32 diff)
{
plr->RemoveAurasDueToSpell(SPELL_ARENA_PREPARATION);
// remove auras with duration lower than 30s
- Unit::AuraMap & auraMap = plr->GetOwnedAuras();
- for (Unit::AuraMap::iterator iter = auraMap.begin(); iter != auraMap.end();)
+ Unit::AuraApplicationMap & auraMap = plr->GetAppliedAuras();
+ for (Unit::AuraApplicationMap::iterator iter = auraMap.begin(); iter != auraMap.end();)
{
- Aura * aura = iter->second;
+ AuraApplication * aurApp = iter->second;
+ Aura * aura = aurApp->GetBase();
if (!aura->IsPermanent()
&& aura->GetDuration() <= 30*IN_MILISECONDS
- && aura->IsPositive(plr)
+ && aurApp->IsPositive()
&& (!(aura->GetSpellProto()->Attributes & SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY))
&& (!aura->HasEffectType(SPELL_AURA_MOD_INVISIBILITY)))
- plr->RemoveOwnedAura(iter);
+ plr->RemoveAura(iter);
else
++iter;
}