From 9f72f4ceb21d07cafedfaa0afa78560e7dceb9e3 Mon Sep 17 00:00:00 2001 From: ariel- Date: Fri, 28 Oct 2016 03:54:43 -0300 Subject: Core/Player: cleanup single target auras on spec switch Closes #806 --- src/server/game/Entities/Player/Player.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 77416743efc..9762cdb5361 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -25892,6 +25892,20 @@ void Player::ActivateSpec(uint8 spec) UnsummonAllTotems(); ExitVehicle(); RemoveAllControlled(); + + // remove single target auras at other targets + AuraList& scAuras = GetSingleCastAuras(); + for (AuraList::iterator iter = scAuras.begin(); iter != scAuras.end();) + { + Aura* aura = *iter; + if (aura->GetUnitOwner() != this) + { + aura->Remove(); + iter = scAuras.begin(); + } + else + ++iter; + } /*RemoveAllAurasOnDeath(); if (GetPet()) GetPet()->RemoveAllAurasOnDeath();*/ -- cgit v1.2.3