diff options
author | madmaxoft <github@xoft.cz> | 2014-04-04 13:29:48 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-04-04 13:29:48 +0200 |
commit | d77ca77086ddc158355d7d1c4b37ae19eedfe5f7 (patch) | |
tree | 5bf093d28fb0be55e4c1447161d3275cc55bb5ff /src/Mobs/Monster.cpp | |
parent | Merge branch 'master' into HTTPSizeT (diff) | |
parent | Explicit change record size. (diff) | |
download | cuberite-d77ca77086ddc158355d7d1c4b37ae19eedfe5f7.tar cuberite-d77ca77086ddc158355d7d1c4b37ae19eedfe5f7.tar.gz cuberite-d77ca77086ddc158355d7d1c4b37ae19eedfe5f7.tar.bz2 cuberite-d77ca77086ddc158355d7d1c4b37ae19eedfe5f7.tar.lz cuberite-d77ca77086ddc158355d7d1c4b37ae19eedfe5f7.tar.xz cuberite-d77ca77086ddc158355d7d1c4b37ae19eedfe5f7.tar.zst cuberite-d77ca77086ddc158355d7d1c4b37ae19eedfe5f7.zip |
Diffstat (limited to 'src/Mobs/Monster.cpp')
-rw-r--r-- | src/Mobs/Monster.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index d3e0f1c26..aa6071515 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -111,9 +111,9 @@ void cMonster::SpawnOn(cClientHandle & a_Client) void cMonster::TickPathFinding() { - int PosX = (int)floor(GetPosX()); - int PosY = (int)floor(GetPosY()); - int PosZ = (int)floor(GetPosZ()); + const int PosX = (int)floor(GetPosX()); + const int PosY = (int)floor(GetPosY()); + const int PosZ = (int)floor(GetPosZ()); m_FinalDestination.y = (double)FindFirstNonAirBlockPosition(m_FinalDestination.x, m_FinalDestination.z); @@ -130,14 +130,16 @@ void cMonster::TickPathFinding() { 0, 1}, { 0,-1}, } ; + + if ((PosY - 1 < 0) || (PosY + 2 > cChunkDef::Height) /* PosY + 1 will never be true if PosY + 2 is not */) + { + // Too low/high, can't really do anything + FinishPathFinding(); + return; + } for (size_t i = 0; i < ARRAYCOUNT(gCrossCoords); i++) { - if ((gCrossCoords[i].x + PosX == PosX) && (gCrossCoords[i].z + PosZ == PosZ)) - { - continue; - } - if (IsCoordinateInTraversedList(Vector3i(gCrossCoords[i].x + PosX, PosY, gCrossCoords[i].z + PosZ))) { continue; |