diff options
Diffstat (limited to 'src/Mobs/Monster.cpp')
-rw-r--r-- | src/Mobs/Monster.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index 237c50524..09c0974a0 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -541,26 +541,26 @@ void cMonster::HandleFalling() int cMonster::FindFirstNonAirBlockPosition(double a_PosX, double a_PosZ) { - int PosY = POSY_TOINT; - PosY = Clamp(PosY, 0, cChunkDef::Height); + auto Position = GetPosition().Floor(); + Position.y = Clamp(Position.y, 0, cChunkDef::Height); - if (!cBlockInfo::IsSolid(m_World->GetBlock(FloorC(a_PosX), PosY, FloorC(a_PosZ)))) + if (!cBlockInfo::IsSolid(m_World->GetBlock(Position))) { - while (!cBlockInfo::IsSolid(m_World->GetBlock(FloorC(a_PosX), PosY, FloorC(a_PosZ))) && (PosY > 0)) + while (!cBlockInfo::IsSolid(m_World->GetBlock(Position)) && (Position.y > 0)) { - PosY--; + Position.y--; } - return PosY + 1; + return Position.y + 1; } else { - while ((PosY < cChunkDef::Height) && cBlockInfo::IsSolid(m_World->GetBlock(static_cast<int>(floor(a_PosX)), PosY, static_cast<int>(floor(a_PosZ))))) + while ((Position.y < cChunkDef::Height) && cBlockInfo::IsSolid(m_World->GetBlock(Position))) { - PosY++; + Position.y++; } - return PosY; + return Position.y; } } |