Core/Spells: Adjust range checks to GameObject targets

This commit is contained in:
jackpoz authored and Ovahlord committed 2019-04-26 18:01:19 +02:00
1 parent 85bf4daf45
commit 738aa92782
1 file changed
+4 -1
+4 -1
View File
@@ -6440,7 +6440,7 @@ SpellCastResult Spell::CheckRange(bool strict) const
maxRange += std::min(MAX_SPELL_RANGE_TOLERANCE, maxRange*0.1f); // 10% but no more than MAX_SPELL_RANGE_TOLERANCE
// save the original values before squaring them
float origMaxRange = maxRange;
float origMinRange = minRange, origMaxRange = maxRange;
// get square values for sqr distance checks
minRange *= minRange;
@@ -6463,6 +6463,9 @@ SpellCastResult Spell::CheckRange(bool strict) const
if (GameObject* goTarget = m_targets.GetGOTarget())
{
if (origMinRange > 0.0f && goTarget->IsInRange(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), origMinRange))
return SPELL_FAILED_OUT_OF_RANGE;
if (!goTarget->IsInRange(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), origMaxRange))
return SPELL_FAILED_OUT_OF_RANGE;
}