aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzorix <zajast@o2.pl>2014-01-27 20:26:34 +0100
committerzorix <zajast@o2.pl>2014-01-27 20:26:34 +0100
commite9b7bb0a7b284f06f574fe441e58ceaed52e7240 (patch)
tree35b17b6234e6821fd91583556356f89cc9deda43 /src
parentac7828a8d9c8ca2d4195bacbf7acf6f638f6d759 (diff)
Core/Spell:
Triggered spells now will be cast on the primal target instead of on caster Close #10853 Close #10860
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index e72a1da563e..eb2d44a6676 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -1357,6 +1357,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType)
{
+ ASSERT(m_targets.GetObjectTarget() && "Spell::SelectImplicitTargetDestTargets - no explicit object target available!");
WorldObject* target = m_targets.GetObjectTarget();
SpellDestination dest(*target);
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index b2b4690f893..987a07be896 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -929,7 +929,10 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
if (spellInfo->GetExplicitTargetMask() & TARGET_FLAG_DEST_LOCATION)
targets.SetDst(m_targets);
- targets.SetUnitTarget(m_caster);
+ if (Unit* target = m_targets.GetUnitTarget())
+ targets.SetUnitTarget(target);
+ else
+ targets.SetUnitTarget(m_caster);
}
CustomSpellValues values;