From 4dda2a5c2bf594a401f591095faf2c7e8ba19a7d Mon Sep 17 00:00:00 2001 From: faketruth Date: Fri, 2 Mar 2012 01:22:06 +0000 Subject: MultiBlock packet is working partly.. I really don't understand what's wrong with this packet :/ git-svn-id: http://mc-server.googlecode.com/svn/trunk@351 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/packets/cPacket_MultiBlock.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'source/packets/cPacket_MultiBlock.cpp') 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 } -- cgit v1.2.3