From 6ba3c19a22ef53c1ab272b969eba660ebdc9a1ed Mon Sep 17 00:00:00 2001 From: Schmoozerd Date: Sat, 8 Sep 2012 23:10:29 +0200 Subject: [PATCH] [12202] Improve target selection for TARGET_DUELVSPLAYER Also set the spell to be Redirected only if the spell is actually redirected --- src/game/Spell.cpp | 12 +++++++----- src/shared/revision_nr.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index f743f97ca..d705bc76f 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2581,8 +2581,7 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& break; case TARGET_DUELVSPLAYER: { - Unit* target = m_targets.getUnitTarget(); - if (target) + if (Unit* target = m_targets.getUnitTarget()) { if (m_caster->IsFriendlyTo(target)) { @@ -2590,10 +2589,13 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& } else { - if (Unit* pUnitTarget = m_caster->SelectMagnetTarget(m_targets.getUnitTarget(), this, effIndex)) + if (Unit* pUnitTarget = m_caster->SelectMagnetTarget(target, this, effIndex)) { - m_targets.setUnitTarget(pUnitTarget); - m_spellFlags |= SPELL_FLAG_REDIRECTED; + if (target != pUnitTarget) + { + m_targets.setUnitTarget(pUnitTarget); + m_spellFlags |= SPELL_FLAG_REDIRECTED; + } targetUnitMap.push_back(pUnitTarget); } } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 9309a896f..646f2a36b 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12201" + #define REVISION_NR "12202" #endif // __REVISION_NR_H__