1
0
cuberite-2a/source/packets/cPacket_Login.cpp
faketruth 957ef3b297 Started carefully moving to 1.2.2
Clients can get up to the login packet, after which the server tries to send chunks but in the wrong format and the client disconnects

git-svn-id: http://mc-server.googlecode.com/svn/trunk@347 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-01 17:07:41 +00:00

67 lines
1.8 KiB
C++

#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
#include "cPacket_Login.h"
const std::string cPacket_Login::LEVEL_TYPE_DEFAULT = "DEFAULT";
const std::string cPacket_Login::LEVEL_TYPE_SUPERFLAT = "SUPERFLAT";
int cPacket_Login::Parse(const char * a_Data, int a_Size)
{
//printf("Parse: NEW Login\n");
int TotalBytes = 0;
m_Username.clear();
HANDLE_PACKET_READ(ReadInteger, m_ProtocolVersion, TotalBytes);
HANDLE_PACKET_READ(ReadString16, m_Username, TotalBytes);
#if (MINECRAFT_1_2_2 != 1 )
HANDLE_PACKET_READ(ReadLong, m_MapSeed, TotalBytes);
#endif
HANDLE_PACKET_READ(ReadString16, m_LevelType, TotalBytes);
HANDLE_PACKET_READ(ReadInteger, m_ServerMode, TotalBytes);
#if (MINECRAFT_1_2_2 == 1 )
HANDLE_PACKET_READ(ReadInteger, m_Dimension, TotalBytes);
#else
HANDLE_PACKET_READ(ReadByte, m_Dimension, TotalBytes);
#endif
HANDLE_PACKET_READ(ReadByte, m_Difficulty, TotalBytes);
HANDLE_PACKET_READ(ReadByte, m_WorldHeight, TotalBytes);
HANDLE_PACKET_READ(ReadByte, m_MaxPlayers, TotalBytes);
return TotalBytes;
}
void cPacket_Login::Serialize(AString & a_Data) const
{
AppendByte (a_Data, m_PacketID);
AppendInteger (a_Data, m_ProtocolVersion);
AppendString16(a_Data, m_Username);
#if (MINECRAFT_1_2_2 != 1 )
AppendLong (a_Data, m_MapSeed);
#endif
AppendString16(a_Data, m_LevelType);
AppendInteger (a_Data, m_ServerMode);
#if (MINECRAFT_1_2_2 == 1 )
AppendInteger (a_Data, m_Dimension);
#else
AppendByte (a_Data, m_Dimension);
#endif
AppendByte (a_Data, m_Difficulty);
AppendByte (a_Data, m_WorldHeight);
AppendByte (a_Data, m_MaxPlayers);
}