From dbec4be848cbe740fd40827c15a3c2d09eea764a Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Wed, 24 Jan 2024 23:40:58 +0100 Subject: [PATCH] NetworkSystem: rename NetGameServer_t member vars --- r5dev/game/client/vscript_client.cpp | 22 +++++------ r5dev/game/server/vscript_server.cpp | 8 ++-- r5dev/gameui/IBrowser.cpp | 58 ++++++++++++++-------------- r5dev/networksystem/listmanager.cpp | 8 ++-- r5dev/networksystem/pylon.cpp | 28 +++++++------- r5dev/networksystem/serverlisting.h | 57 ++++++++++++++------------- 6 files changed, 93 insertions(+), 88 deletions(-) diff --git a/r5dev/game/client/vscript_client.cpp b/r5dev/game/client/vscript_client.cpp index e5d398b0..fe6db959 100644 --- a/r5dev/game/client/vscript_client.cpp +++ b/r5dev/game/client/vscript_client.cpp @@ -93,7 +93,7 @@ namespace VScriptCode return SQ_OK; } - if (serverListing.m_svHostName.empty()) + if (serverListing.name.empty()) { if (hiddenServerRequestMessage.empty()) { @@ -108,7 +108,7 @@ namespace VScriptCode } else { - hiddenServerRequestMessage = Format("Found server: %s", serverListing.m_svHostName.c_str()); + hiddenServerRequestMessage = Format("Found server: %s", serverListing.name.c_str()); sq_pushstring(v, hiddenServerRequestMessage.c_str(), -1); } @@ -128,7 +128,7 @@ namespace VScriptCode return SQ_ERROR; } - const string& serverName = g_ServerListManager.m_vServerList[iServer].m_svHostName; + const string& serverName = g_ServerListManager.m_vServerList[iServer].name; sq_pushstring(v, serverName.c_str(), -1); return SQ_OK; @@ -147,7 +147,7 @@ namespace VScriptCode return SQ_ERROR; } - const string& serverDescription = g_ServerListManager.m_vServerList[iServer].m_svDescription; + const string& serverDescription = g_ServerListManager.m_vServerList[iServer].description; sq_pushstring(v, serverDescription.c_str(), -1); return SQ_OK; @@ -166,7 +166,7 @@ namespace VScriptCode return SQ_ERROR; } - const string& svServerMapName = g_ServerListManager.m_vServerList[iServer].m_svHostMap; + const string& svServerMapName = g_ServerListManager.m_vServerList[iServer].map; sq_pushstring(v, svServerMapName.c_str(), -1); return SQ_OK; @@ -185,7 +185,7 @@ namespace VScriptCode return SQ_ERROR; } - const string& serverPlaylist = g_ServerListManager.m_vServerList[iServer].m_svPlaylist; + const string& serverPlaylist = g_ServerListManager.m_vServerList[iServer].playlist; sq_pushstring(v, serverPlaylist.c_str(), -1); return SQ_OK; @@ -204,7 +204,7 @@ namespace VScriptCode return SQ_ERROR; } - const SQInteger playerCount = g_ServerListManager.m_vServerList[iServer].m_nPlayerCount; + const SQInteger playerCount = g_ServerListManager.m_vServerList[iServer].numPlayers; sq_pushinteger(v, playerCount); return SQ_OK; @@ -223,7 +223,7 @@ namespace VScriptCode return SQ_ERROR; } - const SQInteger maxPlayers = g_ServerListManager.m_vServerList[iServer].m_nMaxPlayers; + const SQInteger maxPlayers = g_ServerListManager.m_vServerList[iServer].maxPlayers; sq_pushinteger(v, maxPlayers); return SQ_OK; @@ -345,8 +345,8 @@ namespace VScriptCode const NetGameServer_t& gameServer = g_ServerListManager.m_vServerList[iServer]; - g_ServerListManager.ConnectToServer(gameServer.m_svIpAddress, gameServer.m_nGamePort, - gameServer.m_svEncryptionKey); + g_ServerListManager.ConnectToServer(gameServer.address, gameServer.port, + gameServer.netKey); return SQ_OK; } @@ -367,7 +367,7 @@ namespace VScriptCode bool result = g_MasterServer.GetServerByToken(netListing, hiddenServerRequestMessage, privateToken); // Send token connect request. if (result) { - g_ServerListManager.ConnectToServer(netListing.m_svIpAddress, netListing.m_nGamePort, netListing.m_svEncryptionKey); + g_ServerListManager.ConnectToServer(netListing.address, netListing.port, netListing.netKey); } else { diff --git a/r5dev/game/server/vscript_server.cpp b/r5dev/game/server/vscript_server.cpp index a0dc559e..c6fc6fc0 100644 --- a/r5dev/game/server/vscript_server.cpp +++ b/r5dev/game/server/vscript_server.cpp @@ -45,10 +45,10 @@ namespace VScriptCode // Adjust browser settings. std::lock_guard l(g_ServerListManager.m_Mutex); - g_ServerListManager.m_Server.m_svHostName = serverName; - g_ServerListManager.m_Server.m_svDescription = serverDescription; - g_ServerListManager.m_Server.m_svHostMap = serverMapName; - g_ServerListManager.m_Server.m_svPlaylist = serverPlaylist; + g_ServerListManager.m_Server.name = serverName; + g_ServerListManager.m_Server.description = serverDescription; + g_ServerListManager.m_Server.map = serverMapName; + g_ServerListManager.m_Server.playlist = serverPlaylist; g_ServerListManager.m_ServerVisibility = eServerVisibility; // Launch server. diff --git a/r5dev/gameui/IBrowser.cpp b/r5dev/gameui/IBrowser.cpp index 257f8873..4ed71f5a 100644 --- a/r5dev/gameui/IBrowser.cpp +++ b/r5dev/gameui/IBrowser.cpp @@ -292,12 +292,12 @@ void CBrowser::BrowserPanel(void) g_ServerListManager.m_Mutex.lock(); for (const NetGameServer_t& server : g_ServerListManager.m_vServerList) { - const char* pszHostName = server.m_svHostName.c_str(); - const char* pszHostMap = server.m_svHostMap.c_str(); - const char* pszPlaylist = server.m_svPlaylist.c_str(); + const char* pszHostName = server.name.c_str(); + const char* pszHostMap = server.map.c_str(); + const char* pszPlaylist = server.playlist.c_str(); char pszHostPort[32]; - sprintf(pszHostPort, "%d", server.m_nGamePort); + sprintf(pszHostPort, "%d", server.port); if (m_imServerBrowserFilter.PassFilter(pszHostName) || m_imServerBrowserFilter.PassFilter(pszHostMap) @@ -313,18 +313,18 @@ void CBrowser::BrowserPanel(void) ImGui::Text("%s", pszPlaylist); ImGui::TableNextColumn(); - ImGui::Text("%s", Format("%3d/%3d", server.m_nPlayerCount, server.m_nMaxPlayers).c_str()); + ImGui::Text("%s", Format("%3d/%3d", server.numPlayers, server.maxPlayers).c_str()); ImGui::TableNextColumn(); ImGui::Text("%s", pszHostPort); ImGui::TableNextColumn(); string svConnectBtn = "Connect##"; - svConnectBtn.append(server.m_svHostName + server.m_svIpAddress + server.m_svHostMap); + svConnectBtn.append(server.name + server.address + server.map); if (ImGui::Button(svConnectBtn.c_str())) { - g_ServerListManager.ConnectToServer(server.m_svIpAddress, server.m_nGamePort, server.m_svEncryptionKey); + g_ServerListManager.ConnectToServer(server.address, server.port, server.netKey); } } } @@ -441,10 +441,10 @@ void CBrowser::HiddenServersModal(void) NetGameServer_t server; bool result = g_MasterServer.GetServerByToken(server, m_svHiddenServerRequestMessage, m_svHiddenServerToken); // Send token connect request. - if (result && !server.m_svHostName.empty()) + if (result && !server.name.empty()) { - g_ServerListManager.ConnectToServer(server.m_svIpAddress, server.m_nGamePort, server.m_svEncryptionKey); // Connect to the server - m_svHiddenServerRequestMessage = Format("Found server: %s", server.m_svHostName.c_str()); + g_ServerListManager.ConnectToServer(server.address, server.port, server.netKey); // Connect to the server + m_svHiddenServerRequestMessage = Format("Found server: %s", server.name.c_str()); m_ivHiddenServerMessageColor = ImVec4(0.00f, 1.00f, 0.00f, 1.00f); ImGui::CloseCurrentPopup(); } @@ -499,18 +499,18 @@ void CBrowser::HostPanel(void) #ifndef CLIENT_DLL std::lock_guard l(g_ServerListManager.m_Mutex); - ImGui::InputTextWithHint("##ServerHost_ServerName", "Server name (required)", &g_ServerListManager.m_Server.m_svHostName); - ImGui::InputTextWithHint("##ServerHost_ServerDesc", "Server description (optional)", &g_ServerListManager.m_Server.m_svDescription); + ImGui::InputTextWithHint("##ServerHost_ServerName", "Server name (required)", &g_ServerListManager.m_Server.name); + ImGui::InputTextWithHint("##ServerHost_ServerDesc", "Server description (optional)", &g_ServerListManager.m_Server.description); ImGui::Spacing(); - if (ImGui::BeginCombo("Mode", g_ServerListManager.m_Server.m_svPlaylist.c_str())) + if (ImGui::BeginCombo("Mode", g_ServerListManager.m_Server.playlist.c_str())) { g_PlaylistsVecMutex.lock(); for (const string& svPlaylist : g_vAllPlaylists) { - if (ImGui::Selectable(svPlaylist.c_str(), svPlaylist == g_ServerListManager.m_Server.m_svPlaylist)) + if (ImGui::Selectable(svPlaylist.c_str(), svPlaylist == g_ServerListManager.m_Server.playlist)) { - g_ServerListManager.m_Server.m_svPlaylist = svPlaylist; + g_ServerListManager.m_Server.playlist = svPlaylist; } } @@ -518,7 +518,7 @@ void CBrowser::HostPanel(void) ImGui::EndCombo(); } - if (ImGui::BeginCombo("Map", g_ServerListManager.m_Server.m_svHostMap.c_str())) + if (ImGui::BeginCombo("Map", g_ServerListManager.m_Server.map.c_str())) { g_InstalledMapsMutex.lock(); @@ -527,9 +527,9 @@ void CBrowser::HostPanel(void) const CUtlString& mapName = g_InstalledMaps[i]; if (ImGui::Selectable(mapName.String(), - mapName.IsEqual_CaseInsensitive(g_ServerListManager.m_Server.m_svHostMap.c_str()))) + mapName.IsEqual_CaseInsensitive(g_ServerListManager.m_Server.map.c_str()))) { - g_ServerListManager.m_Server.m_svHostMap = mapName.String(); + g_ServerListManager.m_Server.map = mapName.String(); } } @@ -574,24 +574,24 @@ void CBrowser::HostPanel(void) { m_svHostRequestMessage.clear(); - bool bEnforceField = g_ServerListManager.m_ServerVisibility == EServerVisibility_t::OFFLINE ? true : !g_ServerListManager.m_Server.m_svHostName.empty(); - if (bEnforceField && !g_ServerListManager.m_Server.m_svPlaylist.empty() && !g_ServerListManager.m_Server.m_svHostMap.empty()) + bool bEnforceField = g_ServerListManager.m_ServerVisibility == EServerVisibility_t::OFFLINE ? true : !g_ServerListManager.m_Server.name.empty(); + if (bEnforceField && !g_ServerListManager.m_Server.playlist.empty() && !g_ServerListManager.m_Server.map.empty()) { g_ServerListManager.LaunchServer(bServerActive); // Launch server. } else { - if (g_ServerListManager.m_Server.m_svHostName.empty()) + if (g_ServerListManager.m_Server.name.empty()) { m_svHostRequestMessage = "Server name is required."; m_HostRequestMessageColor = ImVec4(1.00f, 0.00f, 0.00f, 1.00f); } - else if (g_ServerListManager.m_Server.m_svPlaylist.empty()) + else if (g_ServerListManager.m_Server.playlist.empty()) { m_svHostRequestMessage = "Playlist is required."; m_HostRequestMessageColor = ImVec4(1.00f, 0.00f, 0.00f, 1.00f); } - else if (g_ServerListManager.m_Server.m_svHostMap.empty()) + else if (g_ServerListManager.m_Server.map.empty()) { m_svHostRequestMessage = "Level name is required."; m_HostRequestMessageColor = ImVec4(1.00f, 0.00f, 0.00f, 1.00f); @@ -629,7 +629,7 @@ void CBrowser::HostPanel(void) if (ImGui::Button("Change level", ImVec2(ImGui::GetWindowContentRegionWidth(), 32))) { - if (!g_ServerListManager.m_Server.m_svHostMap.empty()) + if (!g_ServerListManager.m_Server.map.empty()) { g_ServerListManager.LaunchServer(bServerActive); } @@ -727,10 +727,10 @@ void CBrowser::UpdateHostingStatus(void) { case EServerVisibility_t::HIDDEN: - g_ServerListManager.m_Server.m_bHidden = true; + g_ServerListManager.m_Server.hidden = true; break; case EServerVisibility_t::PUBLIC: - g_ServerListManager.m_Server.m_bHidden = false; + g_ServerListManager.m_Server.hidden = false; break; default: break; @@ -741,9 +741,9 @@ void CBrowser::UpdateHostingStatus(void) std::lock_guard f(g_ServerListManager.m_Mutex); NetGameServer_t netGameServer { - g_ServerListManager.m_Server.m_svHostName, - g_ServerListManager.m_Server.m_svDescription, - g_ServerListManager.m_Server.m_bHidden, + g_ServerListManager.m_Server.name, + g_ServerListManager.m_Server.description, + g_ServerListManager.m_Server.hidden, g_pHostState->m_levelName, v_Playlists_GetCurrent(), hostip->GetString(), diff --git a/r5dev/networksystem/listmanager.cpp b/r5dev/networksystem/listmanager.cpp index 85b4a54f..fef7e3d5 100644 --- a/r5dev/networksystem/listmanager.cpp +++ b/r5dev/networksystem/listmanager.cpp @@ -67,17 +67,17 @@ void CServerListManager::LaunchServer(const bool bChangeLevel) const } Msg(eDLL_T::ENGINE, "Starting server with name: \"%s\" map: \"%s\" playlist: \"%s\"\n", - m_Server.m_svHostName.c_str(), m_Server.m_svHostMap.c_str(), m_Server.m_svPlaylist.c_str()); + m_Server.name.c_str(), m_Server.map.c_str(), m_Server.playlist.c_str()); /* * Playlist gets parsed in two instances, first in Playlists_Parse() with all the necessary * values. Then when you would normally call launchplaylist which calls StartPlaylist it would cmd * call mp_gamemode which parses the gamemode specific part of the playlist.. */ - v_Playlists_Parse(m_Server.m_svPlaylist.c_str()); - mp_gamemode->SetValue(m_Server.m_svPlaylist.c_str()); + v_Playlists_Parse(m_Server.playlist.c_str()); + mp_gamemode->SetValue(m_Server.playlist.c_str()); - ProcessCommand(Format("%s \"%s\"", bChangeLevel ? "changelevel" : "map", m_Server.m_svHostMap.c_str()).c_str()); + ProcessCommand(Format("%s \"%s\"", bChangeLevel ? "changelevel" : "map", m_Server.map.c_str()).c_str()); } //----------------------------------------------------------------------------- diff --git a/r5dev/networksystem/pylon.cpp b/r5dev/networksystem/pylon.cpp index ec807001..fc718511 100644 --- a/r5dev/networksystem/pylon.cpp +++ b/r5dev/networksystem/pylon.cpp @@ -177,19 +177,19 @@ bool CPylon::PostServerHost(string& outMessage, string& outToken, string& outHos rapidjson::Document::AllocatorType& allocator = requestJson.GetAllocator(); - requestJson.AddMember("name", rapidjson::Value(netGameServer.m_svHostName.c_str(), allocator), allocator); - requestJson.AddMember("description", rapidjson::Value(netGameServer.m_svDescription.c_str(), allocator), allocator); - requestJson.AddMember("hidden", netGameServer.m_bHidden, allocator); - requestJson.AddMember("map", rapidjson::Value(netGameServer.m_svHostMap.c_str(), allocator), allocator); - requestJson.AddMember("playlist", rapidjson::Value(netGameServer.m_svPlaylist.c_str(), allocator), allocator); - requestJson.AddMember("ip", rapidjson::Value(netGameServer.m_svIpAddress.c_str(), allocator), allocator); - requestJson.AddMember("port", netGameServer.m_nGamePort, allocator); - requestJson.AddMember("key", rapidjson::Value(netGameServer.m_svEncryptionKey.c_str(), allocator), allocator); - requestJson.AddMember("checksum", netGameServer.m_nRemoteChecksum, allocator); - requestJson.AddMember("version", rapidjson::Value(netGameServer.m_svSDKVersion.c_str(), allocator), allocator); - requestJson.AddMember("playerCount", netGameServer.m_nPlayerCount, allocator); - requestJson.AddMember("maxPlayers", netGameServer.m_nMaxPlayers, allocator); - requestJson.AddMember("timeStamp", netGameServer.m_nTimeStamp, allocator); + requestJson.AddMember("name", rapidjson::Value(netGameServer.name.c_str(), allocator), allocator); + requestJson.AddMember("description", rapidjson::Value(netGameServer.description.c_str(), allocator), allocator); + requestJson.AddMember("hidden", netGameServer.hidden, allocator); + requestJson.AddMember("map", rapidjson::Value(netGameServer.map.c_str(), allocator), allocator); + requestJson.AddMember("playlist", rapidjson::Value(netGameServer.playlist.c_str(), allocator), allocator); + requestJson.AddMember("ip", rapidjson::Value(netGameServer.address.c_str(), allocator), allocator); + requestJson.AddMember("port", netGameServer.port, allocator); + requestJson.AddMember("key", rapidjson::Value(netGameServer.netKey.c_str(), allocator), allocator); + requestJson.AddMember("checksum", netGameServer.checksum, allocator); + requestJson.AddMember("version", rapidjson::Value(netGameServer.versionId.c_str(), allocator), allocator); + requestJson.AddMember("playerCount", netGameServer.numPlayers, allocator); + requestJson.AddMember("maxPlayers", netGameServer.maxPlayers, allocator); + requestJson.AddMember("timeStamp", netGameServer.timeStamp, allocator); rapidjson::Document responseJson; CURLINFO status; @@ -199,7 +199,7 @@ bool CPylon::PostServerHost(string& outMessage, string& outToken, string& outHos return false; } - if (netGameServer.m_bHidden) + if (netGameServer.hidden) { if (!responseJson.HasMember("token") || !responseJson["token"].IsString()) { diff --git a/r5dev/networksystem/serverlisting.h b/r5dev/networksystem/serverlisting.h index 906fc840..eab8e1ce 100644 --- a/r5dev/networksystem/serverlisting.h +++ b/r5dev/networksystem/serverlisting.h @@ -1,35 +1,40 @@ #pragma once - -//struct NetGameMod_t -//{ -// string m_svPackage; -// int m_nNumber; -// bool m_bRequired; -// string m_svDownloadLink; -// -// //NLOHMANN_DEFINE_TYPE_INTRUSIVE(NetGameMod_t, m_svPackage, m_nNumber, m_bRequired, m_svDownloadLink) -//}; - struct NetGameServer_t { - string m_svHostName; - string m_svDescription; - bool m_bHidden; + // the name and description of this listing, which will be display to the + // client's server browser + string name; + string description; - string m_svHostMap = "mp_lobby"; - string m_svPlaylist = "dev_default"; + // whether or not this is a visible 'public' gameserver; this is only used + // on the masterserver to determine whether or not to broadcast your + // listing from there + bool hidden = true; - string m_svIpAddress; - int m_nGamePort; - string m_svEncryptionKey; + // the level and playlist of the server, which will be display to the + // client's server browser + string map = "mp_lobby"; + string playlist = "dev_default"; - unsigned int m_nRemoteChecksum; - string m_svSDKVersion; + // the address and port of the server, validated and set from the + // masterserver + string address; + int port = NULL; - int m_nPlayerCount; - int m_nMaxPlayers; - int64_t m_nTimeStamp = -1; + // the base64 net key used to decrypt game packets, the client has to + // install this before issuing a connectionless packet + string netKey; - //vector m_vMods; -}; \ No newline at end of file + // version identifiers used to check if the gameserver and gameclient are + // compatible with each other + unsigned int checksum = NULL; + string versionId; + + // current amount of players, and the maximum allowed for this gameserver + int numPlayers = NULL; + int maxPlayers = NULL; + + // the issue time of this listing + int64_t timeStamp = -1; +};