diff options
author | QAston <none@none> | 2009-04-07 18:05:56 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-04-07 18:05:56 +0200 |
commit | 3ef20629df9288468e3d3a97fd53641d65e3483c (patch) | |
tree | 4e38e49f1814009a2f048aa559a956f31c90e27e /src/game/Player.cpp | |
parent | 37632e4e396da719330d242e02ef2eb7806e3f14 (diff) |
*Some crashfixes.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 9227cb7414c..8dcb28224f7 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6309,26 +6309,27 @@ void Player::DuelComplete(DuelCompleteType type) duel->initiator->RemoveGameObject(obj,true); /* remove auras */ - std::vector<uint32> auras2remove; - AuraMap const& vAuras = duel->opponent->GetAuras(); - for (AuraMap::const_iterator i = vAuras.begin(); i != vAuras.end(); ++i) + AuraMap & vAuras = duel->opponent->GetAuras(); + for(AuraMap::iterator i = vAuras.begin(); i != vAuras.end();) { if (!i->second->IsPositive() && i->second->GetCasterGUID() == GetGUID() && i->second->GetAuraApplyTime() >= duel->startTime) - auras2remove.push_back(i->second->GetId()); + { + RemoveAura(i); + } + else + ++i; } - for(size_t i=0; i<auras2remove.size(); i++) - duel->opponent->RemoveAurasDueToSpell(auras2remove[i], GetGUID()); - - auras2remove.clear(); - AuraMap const& auras = GetAuras(); - for (AuraMap::const_iterator i = auras.begin(); i != auras.end(); ++i) + vAuras = GetAuras(); + for(AuraMap::iterator i = vAuras.begin(); i != vAuras.end();) { if (!i->second->IsPositive() && i->second->GetCasterGUID() == duel->opponent->GetGUID() && i->second->GetAuraApplyTime() >= duel->startTime) - auras2remove.push_back(i->second->GetId()); + { + RemoveAura(i); + } + else + ++i; } - for(size_t i=0; i<auras2remove.size(); i++) - RemoveAurasDueToSpell(auras2remove[i], duel->opponent->GetGUID()); // cleanup combo points if(GetComboTarget()==duel->opponent->GetGUID()) @@ -19052,8 +19053,7 @@ void Player::RemoveItemDependentAurasAndCasts( Item * pItem ) } // no alt item, remove aura, restart check - RemoveAurasDueToSpell(aura->GetId()); - itr = auras.begin(); + RemoveAura(itr); } // currently casted spells can be dependent from item |