diff options
author | madmaxoft <github@xoft.cz> | 2014-04-28 22:05:02 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-04-28 22:05:02 +0200 |
commit | 0b16e6821ff475dca0539426ec403241170ce93d (patch) | |
tree | e272cae036cd9117e1d1f4cea3555c0c0d3aa748 /src/Mobs/AggressiveMonster.cpp | |
parent | Added the G1 root cert. (diff) | |
parent | Merge pull request #940 from Howaner/GlobalFixes (diff) | |
download | cuberite-0b16e6821ff475dca0539426ec403241170ce93d.tar cuberite-0b16e6821ff475dca0539426ec403241170ce93d.tar.gz cuberite-0b16e6821ff475dca0539426ec403241170ce93d.tar.bz2 cuberite-0b16e6821ff475dca0539426ec403241170ce93d.tar.lz cuberite-0b16e6821ff475dca0539426ec403241170ce93d.tar.xz cuberite-0b16e6821ff475dca0539426ec403241170ce93d.tar.zst cuberite-0b16e6821ff475dca0539426ec403241170ce93d.zip |
Diffstat (limited to 'src/Mobs/AggressiveMonster.cpp')
-rw-r--r-- | src/Mobs/AggressiveMonster.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/Mobs/AggressiveMonster.cpp b/src/Mobs/AggressiveMonster.cpp index 0901f85a9..447bf3549 100644 --- a/src/Mobs/AggressiveMonster.cpp +++ b/src/Mobs/AggressiveMonster.cpp @@ -37,7 +37,7 @@ void cAggressiveMonster::InStateChasing(float a_Dt) } } - if (((float)m_FinalDestination.x != (float)m_Target->GetPosX()) || ((float)m_FinalDestination.z != (float)m_Target->GetPosZ())) + if (!IsMovingToTargetPosition()) { MoveToPosition(m_Target->GetPosition()); } @@ -106,3 +106,18 @@ void cAggressiveMonster::Attack(float a_Dt) +bool cAggressiveMonster::IsMovingToTargetPosition() +{ + static const float epsilon = 0.000000000001f; + // Difference between destination x and target x is negligible (to 10^-12 precision) + if (fabsf((float)m_FinalDestination.x - (float)m_Target->GetPosX()) < epsilon) + { + return false; + } + // Difference between destination z and target z is negligible (to 10^-12 precision) + else if (fabsf((float)m_FinalDestination.z - (float)m_Target->GetPosZ()) > epsilon) + { + return false; + } + return true; +} |