From a5f3eadd4239bfa5df64badabb2b9897f686aded Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 23 Mar 2024 00:41:20 +0100 Subject: Show server version in multiplayer server list Version replaced Type which was unused at the moment. --- StarsEx/NetClientDlg.cpp | 6 +++++- StarsEx/NetLobby.h | 2 ++ StarsEx/NetLobbyClient.cpp | 9 +++++++++ StarsEx/NetLobbyClient.h | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) (limited to 'StarsEx') diff --git a/StarsEx/NetClientDlg.cpp b/StarsEx/NetClientDlg.cpp index ea30f5e..a478d15 100644 --- a/StarsEx/NetClientDlg.cpp +++ b/StarsEx/NetClientDlg.cpp @@ -164,7 +164,7 @@ NetClientDlg::ShowServers() NetServerInfo* info = iter.value(); lst_servers->AddItemWithData(info->name, (DWORD) i); - lst_servers->SetItemText(i, 1, info->type); + lst_servers->SetItemText(i, 1, info->version); lst_servers->SetItemText(i, 2, info->password); lst_servers->SetItemText(i, 3, ContentBundle::GetInstance()->GetText("NetClientDlg.offline")); lst_servers->SetItemText(i, 4, "0"); @@ -196,6 +196,7 @@ NetClientDlg::UpdateServers() NetServerInfo* info = config->GetServerList().at(n); lst_servers->SetItemText(i, 0, info->name); + lst_servers->SetItemText(i, 1, info->version); Text status = ContentBundle::GetInstance()->GetText("NetClientDlg.offline"); @@ -276,6 +277,7 @@ NetClientDlg::PingComplete() if (info) { // copy result back into server list info->machine_info = ping_info.machine_info; + info->version = ping_info.version; info->gameport = ping_info.gameport; info->status = ping_info.status; info->nplayers = ping_info.nplayers; @@ -315,6 +317,7 @@ DWORD WINAPI NetClientPingProc(LPVOID link) if (conn.Ping()) { info->machine_info = conn.GetMachineInfo(); + info->version = conn.GetVersion(); info->gameport = conn.GetGamePort(); info->status = conn.GetStatus(); info->nplayers = conn.NumUsers(); @@ -324,6 +327,7 @@ DWORD WINAPI NetClientPingProc(LPVOID link) else { info->machine_info = Text(); + info->version = Text(); info->nplayers = 0; info->hosted = 0; info->status = NetServerInfo::OFFLINE; diff --git a/StarsEx/NetLobby.h b/StarsEx/NetLobby.h index 55e7ee8..e484ea1 100644 --- a/StarsEx/NetLobby.h +++ b/StarsEx/NetLobby.h @@ -99,6 +99,7 @@ public: virtual void SelectMission(DWORD id); virtual const Text& GetMachineInfo() { return machine_info; } + virtual const Text& GetVersion() { return version; } virtual WORD GetGamePort() { return 0; } // actions: @@ -141,6 +142,7 @@ protected: List campaigns; List unit_map; Text machine_info; + Text version; List server_mods; bool active; diff --git a/StarsEx/NetLobbyClient.cpp b/StarsEx/NetLobbyClient.cpp index 603c1cb..33f54ce 100644 --- a/StarsEx/NetLobbyClient.cpp +++ b/StarsEx/NetLobbyClient.cpp @@ -248,6 +248,15 @@ NetLobbyClient::GetMachineInfo() return NetLobby::GetMachineInfo(); } +const Text& +NetLobbyClient::GetVersion() +{ + if (server_info.status > NetServerInfo::OFFLINE) + return server_info.version; + + return NetLobby::GetVersion(); +} + int NetLobbyClient::GetStatus() const { diff --git a/StarsEx/NetLobbyClient.h b/StarsEx/NetLobbyClient.h index 594d374..6d9ef43 100644 --- a/StarsEx/NetLobbyClient.h +++ b/StarsEx/NetLobbyClient.h @@ -60,6 +60,7 @@ public: // overrides for ping support: virtual const Text& GetMachineInfo(); + virtual const Text& GetVersion(); virtual int GetStatus() const; virtual int NumUsers(); virtual bool HasHost(); -- cgit v1.1