57 lines
1.1 KiB
C++
57 lines
1.1 KiB
C++
|
|
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
|
|
|
|
#include "cPacket_PlayerListItem.h"
|
|
#include "../cChatColor.h"
|
|
|
|
|
|
|
|
|
|
|
|
cPacket_PlayerListItem::cPacket_PlayerListItem(const AString & a_PlayerName, bool a_Online, short a_Ping)
|
|
{
|
|
m_PacketID = E_PLAYER_LIST_ITEM;
|
|
m_PlayerName = a_PlayerName;
|
|
m_Online = a_Online;
|
|
m_Ping = a_Ping;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int cPacket_PlayerListItem::Parse(const char * a_Data, int a_Size)
|
|
{
|
|
int TotalBytes = 0;
|
|
HANDLE_PACKET_READ(ReadString16, m_PlayerName, TotalBytes);
|
|
HANDLE_PACKET_READ(ReadBool, m_Online, TotalBytes);
|
|
HANDLE_PACKET_READ(ReadShort, m_Ping, TotalBytes);
|
|
return TotalBytes;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cPacket_PlayerListItem::Serialize(AString & a_Data) const
|
|
{
|
|
AString PlayerName(m_PlayerName);
|
|
if (PlayerName.length() > 16)
|
|
{
|
|
PlayerName.erase(16);
|
|
}
|
|
else if (PlayerName.length() <= 14)
|
|
{
|
|
PlayerName += cChatColor::White;
|
|
}
|
|
|
|
AppendByte (a_Data, m_PacketID);
|
|
AppendString16(a_Data, PlayerName);
|
|
AppendBool (a_Data, m_Online);
|
|
AppendShort (a_Data, m_Ping);
|
|
}
|
|
|
|
|
|
|
|
|