diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 768ab6b40..f3140cb93 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -487,13 +487,24 @@ void Spell::FillTargetMap() } break; case TARGET_TABLE_X_Y_Z_COORDINATES: - // All 17/7 pairs used for dest teleportation, A processed in effect code - if(m_spellInfo->EffectImplicitTargetB[i]==TARGET_AREAEFFECT_INSTANT) - SetTargetMap(i,m_spellInfo->EffectImplicitTargetB[i],tmpUnitMap); - else + switch(m_spellInfo->EffectImplicitTargetB[i]) { - SetTargetMap(i,m_spellInfo->EffectImplicitTargetA[i],tmpUnitMap); - SetTargetMap(i,m_spellInfo->EffectImplicitTargetB[i],tmpUnitMap); + case 0: + SetTargetMap(i,m_spellInfo->EffectImplicitTargetA[i],tmpUnitMap); + + // need some target for proccesing + if(m_targets.getUnitTarget()) + tmpUnitMap.push_back(m_targets.getUnitTarget()); + else + tmpUnitMap.push_back(m_caster); + break; + case TARGET_AREAEFFECT_INSTANT: // All 17/7 pairs used for dest teleportation, A processed in effect code + SetTargetMap(i,m_spellInfo->EffectImplicitTargetB[i],tmpUnitMap); + break; + default: + SetTargetMap(i,m_spellInfo->EffectImplicitTargetA[i],tmpUnitMap); + SetTargetMap(i,m_spellInfo->EffectImplicitTargetB[i],tmpUnitMap); + break; } break; default: diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index c40e7edf6..212aec81b 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 "7679" + #define REVISION_NR "7680" #endif // __REVISION_NR_H__