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 + data/content/Content/content.txt | 2 +- data/content/Screens/NetClientDlg.frm | 10 +++++----- data/shatter/Screens/NetClientDlg.frm | 10 +++++----- 7 files changed, 28 insertions(+), 12 deletions(-) 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(); diff --git a/data/content/Content/content.txt b/data/content/Content/content.txt index d37a367..1eccbad 100644 --- a/data/content/Content/content.txt +++ b/data/content/Content/content.txt @@ -951,7 +951,7 @@ form.net.client.local = Local Server form.net.client.host = Host form.net.client.join = Join form.net.client.server = SERVER NAME -form.net.client.type = TYPE +form.net.client.version = VERSION form.net.client.status = STATUS form.net.client.players = PLAYERS form.net.client.password = PASSWORD diff --git a/data/content/Screens/NetClientDlg.frm b/data/content/Screens/NetClientDlg.frm index 8e3a617..58de47f 100644 --- a/data/content/Screens/NetClientDlg.frm +++ b/data/content/Screens/NetClientDlg.frm @@ -147,8 +147,8 @@ form: { sort: 0 }, column: { - title: "form.net.client.type", - width: 85, + title: "form.net.client.version", + width: 100, align: center, sort: 0 }, @@ -160,19 +160,19 @@ form: { column: { title: "form.net.client.status", - width: 65, + width: 60, align: center, sort: 0 }, column: { title: "form.net.client.players", - width: 65, + width: 60, align: center, sort: 0 }, column: { title: "form.net.client.ping", - width: 65, + width: 60, align: center, sort: 0 }, }, diff --git a/data/shatter/Screens/NetClientDlg.frm b/data/shatter/Screens/NetClientDlg.frm index db18eee..aa0586a 100644 --- a/data/shatter/Screens/NetClientDlg.frm +++ b/data/shatter/Screens/NetClientDlg.frm @@ -147,8 +147,8 @@ form: { sort: 0 }, column: { - title: TYPE, - width: 85, + title: VERSION, + width: 100, align: center, sort: 0 }, @@ -160,19 +160,19 @@ form: { column: { title: STATUS, - width: 65, + width: 60, align: center, sort: 0 }, column: { title: PLAYERS, - width: 65, + width: 60, align: center, sort: 0 }, column: { title: PING, - width: 65, + width: 60, align: center, sort: 0 }, }, -- cgit v1.1