summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTycho <work.tycho+git@gmail.com>2014-05-11 20:24:09 +0200
committerTycho <work.tycho+git@gmail.com>2014-05-11 20:24:09 +0200
commitc46f240d818e5e6aa7c1ffae95bd03f979aae8ba (patch)
treee796a1651c3823717feeaf307461035b6faef165
parentFixed bug that caused Array Setters to always create segments (diff)
downloadcuberite-c46f240d818e5e6aa7c1ffae95bd03f979aae8ba.tar
cuberite-c46f240d818e5e6aa7c1ffae95bd03f979aae8ba.tar.gz
cuberite-c46f240d818e5e6aa7c1ffae95bd03f979aae8ba.tar.bz2
cuberite-c46f240d818e5e6aa7c1ffae95bd03f979aae8ba.tar.lz
cuberite-c46f240d818e5e6aa7c1ffae95bd03f979aae8ba.tar.xz
cuberite-c46f240d818e5e6aa7c1ffae95bd03f979aae8ba.tar.zst
cuberite-c46f240d818e5e6aa7c1ffae95bd03f979aae8ba.zip
-rw-r--r--src/ChunkBuffer.cpp20
-rw-r--r--tests/ChunkBuffer/CMakeLists.txt5
-rw-r--r--tests/ChunkBuffer/Copies.cpp1
3 files changed, 21 insertions, 5 deletions
diff --git a/src/ChunkBuffer.cpp b/src/ChunkBuffer.cpp
index 141601113..99bcdebef 100644
--- a/src/ChunkBuffer.cpp
+++ b/src/ChunkBuffer.cpp
@@ -151,7 +151,7 @@ void cChunkBuffer::SetBlocks(const BLOCKTYPE * a_src)
size_t j = 0;
// do nothing whilst 0
for (; j < segment_length && a_src[i * segment_length + j] == 0; j++);
- if (j != (segment_length - 1))
+ if (j != segment_length)
{
m_Sections[i] = Allocate();
memcpy(
@@ -159,6 +159,9 @@ void cChunkBuffer::SetBlocks(const BLOCKTYPE * a_src)
&a_src[i * segment_length],
sizeof(BLOCKTYPE) * segment_length
);
+ memset(m_Sections[i]->m_BlockMeta,0x00,sizeof(m_Sections[i]->m_BlockMeta));
+ memset(m_Sections[i]->m_BlockLight,0x00,sizeof(m_Sections[i]->m_BlockLight));
+ memset(m_Sections[i]->m_BlockSkyLight,0xFF,sizeof(m_Sections[i]->m_BlockSkyLight));
}
else
{
@@ -186,7 +189,7 @@ void cChunkBuffer::SetMeta(const NIBBLETYPE * a_src)
size_t j = 0;
// do nothing whilst 0
for (; j < segment_length && a_src[i * segment_length + j] == 0; j++);
- if (j != (segment_length - 1))
+ if (j != segment_length)
{
m_Sections[i] = Allocate();
memcpy(
@@ -194,6 +197,9 @@ void cChunkBuffer::SetMeta(const NIBBLETYPE * a_src)
&a_src[i * segment_length],
sizeof(BLOCKTYPE) * segment_length
);
+ memset(m_Sections[i]->m_BlockTypes,0x00,sizeof(m_Sections[i]->m_BlockTypes));
+ memset(m_Sections[i]->m_BlockLight,0x00,sizeof(m_Sections[i]->m_BlockLight));
+ memset(m_Sections[i]->m_BlockSkyLight,0xFF,sizeof(m_Sections[i]->m_BlockSkyLight));
}
else
{
@@ -222,7 +228,7 @@ void cChunkBuffer::SetLight(const NIBBLETYPE * a_src)
size_t j = 0;
// do nothing whilst 0
for (; j < segment_length && a_src[i * segment_length + j] == 0; j++);
- if (j != (segment_length - 1))
+ if (j != segment_length)
{
m_Sections[i] = Allocate();
memcpy(
@@ -230,6 +236,9 @@ void cChunkBuffer::SetLight(const NIBBLETYPE * a_src)
&a_src[i * segment_length],
sizeof(BLOCKTYPE) * segment_length
);
+ memset(m_Sections[i]->m_BlockTypes,0x00,sizeof(m_Sections[i]->m_BlockTypes));
+ memset(m_Sections[i]->m_BlockMeta,0x00,sizeof(m_Sections[i]->m_BlockMeta));
+ memset(m_Sections[i]->m_BlockSkyLight,0xFF,sizeof(m_Sections[i]->m_BlockSkyLight));
}
else
{
@@ -258,7 +267,7 @@ void cChunkBuffer::SetSkyLight (const NIBBLETYPE * a_src)
size_t j = 0;
// do nothing whilst 0
for (; j < segment_length && a_src[i * segment_length + j] == 0xFF; j++);
- if (j != (segment_length -1))
+ if (j != segment_length)
{
m_Sections[i] = Allocate();
memcpy(
@@ -266,6 +275,9 @@ void cChunkBuffer::SetSkyLight (const NIBBLETYPE * a_src)
&a_src[i * segment_length],
sizeof(BLOCKTYPE) * segment_length
);
+ memset(m_Sections[i]->m_BlockTypes,0x00,sizeof(m_Sections[i]->m_BlockTypes));
+ memset(m_Sections[i]->m_BlockMeta,0x00,sizeof(m_Sections[i]->m_BlockMeta));
+ memset(m_Sections[i]->m_BlockLight,0x00,sizeof(m_Sections[i]->m_BlockLight));
}
else
{
diff --git a/tests/ChunkBuffer/CMakeLists.txt b/tests/ChunkBuffer/CMakeLists.txt
index 73dc79e25..b216b1d39 100644
--- a/tests/ChunkBuffer/CMakeLists.txt
+++ b/tests/ChunkBuffer/CMakeLists.txt
@@ -18,3 +18,8 @@ add_test(NAME coordinates-test COMMAND coordinates-exe)
add_executable(copies-exe Copies.cpp)
target_link_libraries(copies-exe ChunkBuffer)
add_test(NAME copies-test COMMAND copies-exe)
+
+add_executable(arraystocoords-exe ArraytoCoord.cpp)
+target_link_libraries(arraystocoords-exe ChunkBuffer)
+add_test(NAME arraystocoords-test COMMAND arraystocoords-exe)
+
diff --git a/tests/ChunkBuffer/Copies.cpp b/tests/ChunkBuffer/Copies.cpp
index 07879d129..eb149f25f 100644
--- a/tests/ChunkBuffer/Copies.cpp
+++ b/tests/ChunkBuffer/Copies.cpp
@@ -99,7 +99,6 @@ int main(int argc, char** argv)
DstBlockBuffer = NULL;
SrcNibbleBuffer = new NIBBLETYPE[16 * 16 * 256/2];
- for (int i = 0; i < 16 * 16 * 256 / 2; i += 4)
memset(SrcNibbleBuffer, 0x00, 16 * 16 * 256 /2);
buffer.SetMeta(SrcNibbleBuffer);
DstNibbleBuffer = new NIBBLETYPE[16 * 16 * 256/ 2];