diff options
Diffstat (limited to 'source/packets')
-rw-r--r-- | source/packets/cPacket_Login.cpp | 12 | ||||
-rw-r--r-- | source/packets/cPacket_Login.h | 13 |
2 files changed, 23 insertions, 2 deletions
diff --git a/source/packets/cPacket_Login.cpp b/source/packets/cPacket_Login.cpp index a96d456cc..bbb81ef52 100644 --- a/source/packets/cPacket_Login.cpp +++ b/source/packets/cPacket_Login.cpp @@ -21,10 +21,16 @@ int cPacket_Login::Parse(const char * a_Data, int a_Size) 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);
@@ -40,10 +46,16 @@ 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);
diff --git a/source/packets/cPacket_Login.h b/source/packets/cPacket_Login.h index 364a268eb..7884bbfb1 100644 --- a/source/packets/cPacket_Login.h +++ b/source/packets/cPacket_Login.h @@ -12,7 +12,9 @@ class cPacket_Login : public cPacket //tolua_export public:
cPacket_Login()
: m_ProtocolVersion( 0 )
+#if (MINECRAFT_1_2_2 != 1)
, m_MapSeed( 0 )
+#endif
, m_ServerMode( 0 )
, m_Dimension( 0 )
, m_Difficulty( 0 )
@@ -25,12 +27,19 @@ public: virtual int Parse(const char * a_Data, int a_Size) override;
virtual void Serialize(AString & a_Data) const override;
+ // 1.2.2 http://wiki.vg/Protocol#Login_Request_.280x01.29
int m_ProtocolVersion; //tolua_export
AString m_Username; //tolua_export
- long long m_MapSeed; //tolua_export
+#if (MINECRAFT_1_2_2 != 1)
+ long long m_MapSeed;
+#endif
AString m_LevelType; //tolua_export
int m_ServerMode; //tolua_export
- char m_Dimension; //tolua_export
+#if (MINECRAFT_1_2_2 == 1 )
+ int m_Dimension;
+#else
+ char m_Dimension;
+#endif
char m_Difficulty; //tolua_export
unsigned char m_WorldHeight; //tolua_export
unsigned char m_MaxPlayers; //tolua_export
|