From 32baf4341e0cebea32ea555a24974f9ebdd35cc2 Mon Sep 17 00:00:00 2001 From: Boomper Date: Sun, 31 May 2015 21:20:20 +0200 Subject: Core/Unit: Correct Handling of SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS and SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS_2 - if aura SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS/*_2 has a ClassMask it changes spells that fit into that classmask - if aura SPELL_AURA_OVERRIDE_ACTIONBAR_SPELLS/*_2 doesn't have a ClassMask it changes spells with spellId equal to miscValueA --- src/server/game/Entities/Unit/Unit.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 490c31e683c..5b0a8557832 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -16369,9 +16369,12 @@ SpellInfo const* Unit::GetCastSpellInfo(SpellInfo const* spellInfo) const swaps.insert(swaps.end(), swaps2.begin(), swaps2.end()); for (AuraEffect const* auraEffect : swaps) - if (auraEffect->IsAffectingSpell(spellInfo)) - if (SpellInfo const* newInfo = sSpellMgr->GetSpellInfo(auraEffect->GetAmount())) - return newInfo; + { + if ((!auraEffect->GetSpellEffectInfo()->SpellClassMask && auraEffect->GetMiscValue() == spellInfo->Id) || + (auraEffect->GetSpellEffectInfo()->SpellClassMask && auraEffect->IsAffectingSpell(spellInfo))) + if (SpellInfo const* newInfo = sSpellMgr->GetSpellInfo(auraEffect->GetAmount())) + return newInfo; + } return spellInfo; } -- cgit v1.2.3