summaryrefslogtreecommitdiffhomepage
path: root/StarsEx
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2024-03-23 00:41:20 +0100
committerAki <please@ignore.pl>2024-03-23 00:41:20 +0100
commita5f3eadd4239bfa5df64badabb2b9897f686aded (patch)
tree516021d23f7a0b288a14641df3b34d8b30213536 /StarsEx
parent30346e276d6a6c127b41f3085e47fcc87c4b80ea (diff)
downloadstarshatter-a5f3eadd4239bfa5df64badabb2b9897f686aded.zip
starshatter-a5f3eadd4239bfa5df64badabb2b9897f686aded.tar.gz
starshatter-a5f3eadd4239bfa5df64badabb2b9897f686aded.tar.bz2
Show server version in multiplayer server list
Version replaced Type which was unused at the moment.
Diffstat (limited to 'StarsEx')
-rw-r--r--StarsEx/NetClientDlg.cpp6
-rw-r--r--StarsEx/NetLobby.h2
-rw-r--r--StarsEx/NetLobbyClient.cpp9
-rw-r--r--StarsEx/NetLobbyClient.h1
4 files changed, 17 insertions, 1 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<NetCampaignInfo> campaigns;
List<NetUnitEntry> unit_map;
Text machine_info;
+ Text version;
List<ModInfo> 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();