demboyz/demboyz/netmessages/svc_serverinfo.cpp

39 lines
1.3 KiB
C++

#include "svc_serverinfo.h"
#include "base/bitfile.h"
#include "game/sourcecontext.h"
namespace NetHandlers
{
bool SVC_ServerInfo_BitRead_Internal(BitRead& bitbuf, SourceGameContext& context, NetMsg::SVC_ServerInfo* data)
{
data->protocol = bitbuf.ReadShort();
data->serverCount = bitbuf.ReadLong();
data->isHLTV = bitbuf.ReadOneBit() != 0;
data->isDedicated = bitbuf.ReadOneBit() != 0;
data->clientCRC = bitbuf.ReadLong();
data->maxClasses = bitbuf.ReadWord();
if (context.protocol <= 17)
{
data->mapCRC = bitbuf.ReadLong();
}
else
{
bitbuf.ReadBytes(data->mapMD5, sizeof(data->mapMD5));
}
data->playerSlot = bitbuf.ReadByte();
data->maxClients = bitbuf.ReadByte();
data->tickInterval = bitbuf.ReadFloat();
data->os = bitbuf.ReadChar();
bitbuf.ReadString(data->gameDir, sizeof(data->gameDir));
bitbuf.ReadString(data->mapName, sizeof(data->mapName));
bitbuf.ReadString(data->skyName, sizeof(data->skyName));
bitbuf.ReadString(data->hostName, sizeof(data->hostName));
if (context.protocol > 15)
{
data->isReplay = bitbuf.ReadOneBit() != 0;
}
return !bitbuf.IsOverflowed();
}
}