summaryrefslogtreecommitdiffstats
path: root/src/Mobs/Monster.cpp
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2014-04-04 13:29:48 +0200
committermadmaxoft <github@xoft.cz>2014-04-04 13:29:48 +0200
commitd77ca77086ddc158355d7d1c4b37ae19eedfe5f7 (patch)
tree5bf093d28fb0be55e4c1447161d3275cc55bb5ff /src/Mobs/Monster.cpp
parentMerge branch 'master' into HTTPSizeT (diff)
parentExplicit change record size. (diff)
downloadcuberite-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.cpp18
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;