2012-06-14 13:06:06 +00:00
|
|
|
|
|
|
|
|
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
|
|
|
|
|
|
|
|
|
#include "cPacket_MultiBlock.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-25 17:52:08 +00:00
|
|
|
cPacket_MultiBlock::cPacket_MultiBlock(const cPacket_MultiBlock & a_Copy)
|
2012-06-14 13:06:06 +00:00
|
|
|
{
|
2012-08-25 17:52:08 +00:00
|
|
|
m_PacketID = E_MULTI_BLOCK;
|
|
|
|
|
m_ChunkX = a_Copy.m_ChunkX;
|
|
|
|
|
m_ChunkZ = a_Copy.m_ChunkZ;
|
2012-06-14 13:06:06 +00:00
|
|
|
m_NumBlocks = a_Copy.m_NumBlocks;
|
2012-08-25 17:52:08 +00:00
|
|
|
m_Data = new sBlockChange[m_NumBlocks];
|
|
|
|
|
memcpy(m_Data, a_Copy.m_Data, sizeof(sBlockChange) * m_NumBlocks);
|
2012-06-14 13:06:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cPacket_MultiBlock::~cPacket_MultiBlock()
|
|
|
|
|
{
|
2012-08-25 17:52:08 +00:00
|
|
|
delete[] m_Data;
|
2012-06-14 13:06:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void cPacket_MultiBlock::Serialize(AString & a_Data) const
|
|
|
|
|
{
|
|
|
|
|
AppendByte (a_Data, m_PacketID);
|
|
|
|
|
AppendInteger(a_Data, m_ChunkX);
|
|
|
|
|
AppendInteger(a_Data, m_ChunkZ);
|
|
|
|
|
AppendShort (a_Data, m_NumBlocks);
|
|
|
|
|
|
2012-08-25 17:52:08 +00:00
|
|
|
AppendInteger(a_Data, sizeof(*m_Data) * m_NumBlocks);
|
|
|
|
|
for (short i = 0; i < m_NumBlocks; ++i)
|
2012-06-14 13:06:06 +00:00
|
|
|
{
|
|
|
|
|
AppendInteger(a_Data, m_Data[i].Data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|