aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2016-06-05 18:37:48 +0200
committertreeston <treeston.mmoc@gmail.com>2016-06-05 18:37:48 +0200
commit73cfbdcf9f2c26b55ab11061834c0b0ce6fc41ce (patch)
tree6f416a24655e28339653d44f6a17ee96d489dd4c /src/server
parenta6e7c9873c7b3530e1c4ff28119dbec30abc6afb (diff)
PvP/Dueling: Fix an edge case crash that could happen if a duel ended while an aura effect was being removed (Living Bomb, Unstable Affliction and similar). Closes #17177.
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index ec86e8fe4c3..1dc6b2bcafa 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -7280,7 +7280,7 @@ void Player::DuelComplete(DuelCompleteType type)
for (AuraApplicationMap::iterator i = itsAuras.begin(); i != itsAuras.end();)
{
Aura const* aura = i->second->GetBase();
- if (!i->second->IsPositive() && aura->GetCasterGUID() == GetGUID() && aura->GetApplyTime() >= duel->startTime)
+ if (!i->second->GetRemoveMode() && !i->second->IsPositive() && aura->GetCasterGUID() == GetGUID() && aura->GetApplyTime() >= duel->startTime)
duel->opponent->RemoveAura(i);
else
++i;
@@ -7290,7 +7290,7 @@ void Player::DuelComplete(DuelCompleteType type)
for (AuraApplicationMap::iterator i = myAuras.begin(); i != myAuras.end();)
{
Aura const* aura = i->second->GetBase();
- if (!i->second->IsPositive() && aura->GetCasterGUID() == duel->opponent->GetGUID() && aura->GetApplyTime() >= duel->startTime)
+ if (!i->second->GetRemoveMode() && !i->second->IsPositive() && aura->GetCasterGUID() == duel->opponent->GetGUID() && aura->GetApplyTime() >= duel->startTime)
RemoveAura(i);
else
++i;