1
0
mirror of https://github.com/ncblakely/GiantsTools synced 2024-11-24 07:05:37 +01:00
GiantsTools/Sdk/Include/Network/Public/ServerInfoResponse.h
2021-01-23 15:40:09 -08:00

54 lines
1.5 KiB
C++

#pragma once
#include "Core/Public/Version.h"
using njson = nlohmann::json;
struct ServerInfoResponse
{
explicit ServerInfoResponse(const njson& serverInfoResponse)
{
hostIp = serverInfoResponse["hostIpAddress"];
gameName = serverInfoResponse["gameName"];
njson versionJson = serverInfoResponse["version"];
version.build = versionJson["build"];
version.major = versionJson["major"];
version.minor = versionJson["minor"];
version.revision = versionJson["revision"];
sessionName = serverInfoResponse["sessionName"];
port = serverInfoResponse["port"];
mapName = serverInfoResponse["mapName"];
gameType = serverInfoResponse["gameType"];
numPlayers = serverInfoResponse["numPlayers"];
maxPlayers = serverInfoResponse["maxPlayers"];
gameState = serverInfoResponse["gameState"];
timeLimit = serverInfoResponse["timeLimit"];
fragLimit = serverInfoResponse["fragLimit"];
teamFragLimit = serverInfoResponse["teamFragLimit"];
firstBaseComplete = serverInfoResponse["firstBaseComplete"];
for (const auto& playerInfoResponse : serverInfoResponse["playerInfo"])
{
playerInfo.emplace_back(PlayerInfoResponse(playerInfoResponse));
}
}
std::string hostIp;
std::string gameName;
Version version;
std::string sessionName;
int port = 0;
std::string mapName;
std::string gameType;
int numPlayers = 0;
int maxPlayers = 0;
std::string gameState;
int timeLimit = 0;
int fragLimit = 0;
int teamFragLimit = 0;
bool firstBaseComplete = false;
std::vector<PlayerInfoResponse> playerInfo;
};