aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-10-28 03:54:43 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-11-05 13:01:17 +0100
commitceb7c048276bf15b79d46aff530c8c1cd8790cda (patch)
treef8653f8bb77ecf6938c4b9955a87073c0b3a33a6 /src
parentf895defe99f41a8fb5587774cc35d82ad077047b (diff)
Core/Player: cleanup single target auras on spec switch
Closes #806 (cherry picked from commit 9f72f4ceb21d07cafedfaa0afa78560e7dceb9e3)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 453b73c3071..23ffee8a2ac 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -26551,6 +26551,20 @@ void Player::ActivateTalentGroup(ChrSpecializationEntry const* 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();*/