From cd4e545155417593c670d72bbf9625962e0a9eda Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 3 Dec 2008 17:30:14 -0600 Subject: *Use dest to calculate time delay for missile spells. (Only SPELL_EFFECT_TRIGGER_MISSILE for now, need to fix all "dest required spells") --HG-- branch : trunk --- src/game/Spell.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 07905bb1c37..35e5dbd815f 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -800,7 +800,13 @@ void Spell::AddUnitTarget(Unit* pVictim, uint32 effIndex) if (m_spellInfo->speed > 0.0f) { // calculate spell incoming interval - float dist = m_caster->GetDistance(pVictim->GetPositionX(), pVictim->GetPositionY(), pVictim->GetPositionZ()); + // TODO: this is a hack + float dist; + if(m_spellInfo->Effect[effIndex] == SPELL_EFFECT_TRIGGER_MISSILE && m_targets.HasDest()) + dist = m_caster->GetDistance(m_targets.m_destX, m_targets.m_destY, m_targets.m_destZ); + else + dist = m_caster->GetDistance(pVictim->GetPositionX(), pVictim->GetPositionY(), pVictim->GetPositionZ()); + if (dist < 5.0f) dist = 5.0f; target.timeDelay = (uint64) floor(dist / m_spellInfo->speed * 1000.0f); -- cgit v1.2.3