aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-09-01 01:09:23 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-18 17:57:38 +0100
commit13562184e320804961f35520e44ed175b5f35aac (patch)
tree5773817f4495c6706a59badf8e851bbaec06c807 /src
parentc71a04d0f058c0a5b74859c96a5a8eb7ebfb77b0 (diff)
Core/Spells: Remove spellmods from SpellMod owner instead of caster (needed so pet casts properly remove aura charges)
(cherry picked from commit 3aa145cbe1eec715eb8e0942fe36900bb7d6dc47)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 4a1b1faebd3..79c8e1345aa 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3714,15 +3714,18 @@ void Spell::finish(bool ok)
{
if (!m_triggeredByAuraSpell)
m_caster->ToPlayer()->UpdatePotionCooldown(this);
+ }
+ if (Player* modOwner = m_caster->GetSpellModOwner())
+ {
// triggered spell pointer can be not set in some cases
// this is needed for proper apply of triggered spell mods
- m_caster->ToPlayer()->SetSpellModTakingSpell(this, true);
+ modOwner->SetSpellModTakingSpell(this, true);
// Take mods after trigger spell (needed for 14177 to affect 48664)
// mods are taken only on succesfull cast and independantly from targets of the spell
- m_caster->ToPlayer()->RemoveSpellMods(this);
- m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
+ modOwner->RemoveSpellMods(this);
+ modOwner->SetSpellModTakingSpell(this, false);
}
// Stop Attack for some spells