summaryrefslogtreecommitdiffstats
path: root/src/LineBlockTracer.cpp
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-09-26 23:56:20 +0200
committerHowaner <franzi.moos@googlemail.com>2014-09-26 23:56:20 +0200
commit033d16babb9390cea463eea61739f0ca2b1d315a (patch)
tree02a2afded18f202c62d2f3a87dce88428f63cb8b /src/LineBlockTracer.cpp
parentImplemented mob spawner. (diff)
parentMerge pull request #1456 from Howaner/Fixes (diff)
downloadcuberite-033d16babb9390cea463eea61739f0ca2b1d315a.tar
cuberite-033d16babb9390cea463eea61739f0ca2b1d315a.tar.gz
cuberite-033d16babb9390cea463eea61739f0ca2b1d315a.tar.bz2
cuberite-033d16babb9390cea463eea61739f0ca2b1d315a.tar.lz
cuberite-033d16babb9390cea463eea61739f0ca2b1d315a.tar.xz
cuberite-033d16babb9390cea463eea61739f0ca2b1d315a.tar.zst
cuberite-033d16babb9390cea463eea61739f0ca2b1d315a.zip
Diffstat (limited to 'src/LineBlockTracer.cpp')
-rw-r--r--src/LineBlockTracer.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/LineBlockTracer.cpp b/src/LineBlockTracer.cpp
index f03e796d1..1b42081c2 100644
--- a/src/LineBlockTracer.cpp
+++ b/src/LineBlockTracer.cpp
@@ -146,7 +146,7 @@ bool cLineBlockTracer::MoveToNextBlock(void)
dirY,
dirZ,
} Direction = dirNONE;
- if (abs(m_DiffX) > EPS)
+ if (std::abs(m_DiffX) > EPS)
{
double DestX = (m_DirX > 0) ? (m_CurrentX + 1) : m_CurrentX;
Coeff = (DestX - m_StartX) / m_DiffX;
@@ -155,7 +155,7 @@ bool cLineBlockTracer::MoveToNextBlock(void)
Direction = dirX;
}
}
- if (abs(m_DiffY) > EPS)
+ if (std::abs(m_DiffY) > EPS)
{
double DestY = (m_DirY > 0) ? (m_CurrentY + 1) : m_CurrentY;
double CoeffY = (DestY - m_StartY) / m_DiffY;
@@ -165,7 +165,7 @@ bool cLineBlockTracer::MoveToNextBlock(void)
Direction = dirY;
}
}
- if (abs(m_DiffZ) > EPS)
+ if (std::abs(m_DiffZ) > EPS)
{
double DestZ = (m_DirZ > 0) ? (m_CurrentZ + 1) : m_CurrentZ;
double CoeffZ = (DestZ - m_StartZ) / m_DiffZ;
@@ -227,9 +227,11 @@ bool cLineBlockTracer::Item(cChunk * a_Chunk)
}
// Update the current chunk
- if (a_Chunk != NULL)
+ a_Chunk = a_Chunk->GetNeighborChunk(m_CurrentX, m_CurrentZ);
+ if (a_Chunk == NULL)
{
- a_Chunk = a_Chunk->GetNeighborChunk(m_CurrentX, m_CurrentZ);
+ m_Callbacks->OnNoChunk();
+ return false;
}
if (a_Chunk->IsValid())
@@ -245,13 +247,10 @@ bool cLineBlockTracer::Item(cChunk * a_Chunk)
return false;
}
}
- else
+ else if (m_Callbacks->OnNextBlockNoData(m_CurrentX, m_CurrentY, m_CurrentZ, m_CurrentFace))
{
- if (m_Callbacks->OnNextBlockNoData(m_CurrentX, m_CurrentY, m_CurrentZ, m_CurrentFace))
- {
- // The callback terminated the trace
- return false;
- }
+ // The callback terminated the trace
+ return false;
}
}
}