aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index bbf7a39afbb..000bc453f6c 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -904,13 +904,13 @@ uint64 Spell::CalculateDelayMomentForDst() const
{
float speed = m_targets.GetSpeedXY();
if (speed > 0.0f)
- return (uint64)floor(m_targets.GetDist2d() / speed * 1000.0f);
+ return uint64(std::floor(m_targets.GetDist2d() / speed * 1000.0f));
}
else if (m_spellInfo->Speed > 0.0f)
{
// We should not subtract caster size from dist calculation (fixes execution time desync with animation on client, eg. Malleable Goo cast by PP)
float dist = m_caster->GetExactDist(*m_targets.GetDstPos());
- return (uint64)std::floor(dist / m_spellInfo->Speed * 1000.0f);
+ return uint64(std::floor(dist / m_spellInfo->Speed * 1000.0f));
}
}
@@ -2185,6 +2185,7 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
if (dist < 5.0f)
dist = 5.0f;
+
targetInfo.TimeDelay = uint64(std::floor(dist / m_spellInfo->Speed * 1000.0f));
// Calculate minimum incoming time
@@ -2269,7 +2270,9 @@ void Spell::AddGOTarget(GameObject* go, uint32 effectMask)
float dist = m_caster->GetDistance(go->GetPositionX(), go->GetPositionY(), go->GetPositionZ());
if (dist < 5.0f)
dist = 5.0f;
+
target.TimeDelay = uint64(std::floor(dist / m_spellInfo->Speed * 1000.0f));
+
if (!m_delayMoment || m_delayMoment > target.TimeDelay)
m_delayMoment = target.TimeDelay;
}