From 990e4d86576751c517549eecc0747b2a8b65129a Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 21 Jul 2018 23:21:06 +0200 Subject: Core/Spells: Fixed Righteous Defense crash caused by modifying target list inside effect handler * Already handled in a script Closes #22158 (cherry picked from commit 2351d0293085873bde656bf93d717a793a0dcd69) --- src/server/game/Spells/SpellEffects.cpp | 40 --------------------------------- 1 file changed, 40 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index e22089ccd3f..92c1bb4a249 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -545,46 +545,6 @@ void Spell::EffectDummy() if (!unitTarget && !gameObjTarget && !itemTarget) return; - // selection by spell family - switch (m_spellInfo->SpellFamilyName) - { - case SPELLFAMILY_PALADIN: - switch (m_spellInfo->Id) - { - case 31789: // Righteous Defense (step 1) - { - // Clear targets for eff 1 - for (auto ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) - ihit->EffectMask &= ~(1 << 1); - - // not empty (checked), copy - Unit::AttackerSet attackers = unitTarget->getAttackers(); - - // remove invalid attackers - for (Unit::AttackerSet::iterator aItr = attackers.begin(); aItr != attackers.end();) - if (!(*aItr)->IsValidAttackTarget(m_caster)) - attackers.erase(aItr++); - else - ++aItr; - - // selected from list 3 - uint32 maxTargets = std::min(3, attackers.size()); - for (uint32 i = 0; i < maxTargets; ++i) - { - Unit* attacker = Trinity::Containers::SelectRandomContainerElement(attackers); - AddUnitTarget(attacker, 1 << 1); - attackers.erase(attacker); - } - - // now let next effect cast spell at each target. - return; - } - } - break; - default: - break; - } - // pet auras if (m_caster->GetTypeId() == TYPEID_PLAYER) { -- cgit v1.2.3