diff options
author | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-03-02 02:22:06 +0100 |
---|---|---|
committer | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-03-02 02:22:06 +0100 |
commit | 4dda2a5c2bf594a401f591095faf2c7e8ba19a7d (patch) | |
tree | 3b0482405cbe399fea963e26ba032af681611efe /source/packets/cPacket_MultiBlock.cpp | |
parent | Chunks are successfully streamed to clients (in a bad a slow way, but whatever) (diff) | |
download | cuberite-4dda2a5c2bf594a401f591095faf2c7e8ba19a7d.tar cuberite-4dda2a5c2bf594a401f591095faf2c7e8ba19a7d.tar.gz cuberite-4dda2a5c2bf594a401f591095faf2c7e8ba19a7d.tar.bz2 cuberite-4dda2a5c2bf594a401f591095faf2c7e8ba19a7d.tar.lz cuberite-4dda2a5c2bf594a401f591095faf2c7e8ba19a7d.tar.xz cuberite-4dda2a5c2bf594a401f591095faf2c7e8ba19a7d.tar.zst cuberite-4dda2a5c2bf594a401f591095faf2c7e8ba19a7d.zip |
Diffstat (limited to 'source/packets/cPacket_MultiBlock.cpp')
-rw-r--r-- | source/packets/cPacket_MultiBlock.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source/packets/cPacket_MultiBlock.cpp b/source/packets/cPacket_MultiBlock.cpp index dbdc11c02..2c9165d0b 100644 --- a/source/packets/cPacket_MultiBlock.cpp +++ b/source/packets/cPacket_MultiBlock.cpp @@ -13,12 +13,20 @@ cPacket_MultiBlock::cPacket_MultiBlock( const cPacket_MultiBlock & a_Copy ) m_ChunkX = a_Copy.m_ChunkX;
m_ChunkZ = a_Copy.m_ChunkZ;
m_NumBlocks = a_Copy.m_NumBlocks;
+
+#if (MINECRAFT_1_2_2 == 1)
+ m_DataSize = a_Copy.m_DataSize;
+
+ m_Data = new sBlockChange[m_NumBlocks];
+ memcpy( m_Data, a_Copy.m_Data, sizeof(sBlockChange)*m_NumBlocks );
+#else
m_BlockCoordinates = new unsigned short[m_NumBlocks];
memcpy( m_BlockCoordinates, a_Copy.m_BlockCoordinates, sizeof(short)*m_NumBlocks );
m_BlockTypes = new char[m_NumBlocks];
memcpy( m_BlockTypes, a_Copy.m_BlockTypes, m_NumBlocks );
m_BlockMetas = new char[m_NumBlocks];
memcpy( m_BlockMetas, a_Copy.m_BlockMetas, m_NumBlocks );
+#endif
}
@@ -27,9 +35,13 @@ cPacket_MultiBlock::cPacket_MultiBlock( const cPacket_MultiBlock & a_Copy ) cPacket_MultiBlock::~cPacket_MultiBlock()
{
+#if (MINECRAFT_1_2_2 == 1)
+ delete [] m_Data;
+#else
if( m_BlockCoordinates ) delete [] m_BlockCoordinates;
if( m_BlockTypes ) delete [] m_BlockTypes;
if( m_BlockMetas ) delete [] m_BlockMetas;
+#endif
}
@@ -43,9 +55,14 @@ void cPacket_MultiBlock::Serialize(AString & a_Data) const AppendInteger(a_Data, m_ChunkZ);
AppendShort (a_Data, m_NumBlocks);
+#if (MINECRAFT_1_2_2 == 1)
+ AppendInteger(a_Data, m_DataSize);
+ AppendData (a_Data, (const char*)m_Data, m_DataSize);
+#else
AppendData (a_Data, (char *)m_BlockCoordinates, sizeof(short) * m_NumBlocks);
AppendData (a_Data, m_BlockTypes, m_NumBlocks);
AppendData (a_Data, m_BlockMetas, m_NumBlocks);
+#endif
}
|