summaryrefslogtreecommitdiff
path: root/src/network/network_gui.cpp
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2021-04-26 20:04:02 +0200
committerPatric Stout <github@truebrain.nl>2021-04-27 20:18:53 +0200
commit31f1db2d3ab1614f00a08a7f44b518a04aeadd3e (patch)
tree474f59901b61f9b918ba265c68589613ee3d10c0 /src/network/network_gui.cpp
parentb57d845e55f733514d235e24f64b09a8744f3abc (diff)
downloadopenttd-31f1db2d3ab1614f00a08a7f44b518a04aeadd3e.tar.xz
Change: no longer use UDP when entering the lobby of a server
The lobby of a server requested some parts via UDP and some via TCP. This is strictly seen fine, but for future extensions it is a lot easier if just one protocol is used.
Diffstat (limited to 'src/network/network_gui.cpp')
-rw-r--r--src/network/network_gui.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp
index ebba47d85..57127aee8 100644
--- a/src/network/network_gui.cpp
+++ b/src/network/network_gui.cpp
@@ -1482,10 +1482,10 @@ struct NetworkLobbyWindow : public Window {
break;
case WID_NL_REFRESH: // Refresh
- NetworkTCPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // company info
- NetworkUDPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // general data
/* Clear the information so removed companies don't remain */
for (auto &company : this->company_info) company = {};
+
+ NetworkTCPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port));
break;
}
}
@@ -1553,8 +1553,7 @@ static void ShowNetworkLobbyWindow(NetworkGameList *ngl)
DeleteWindowById(WC_NETWORK_WINDOW, WN_NETWORK_WINDOW_START);
DeleteWindowById(WC_NETWORK_WINDOW, WN_NETWORK_WINDOW_GAME);
- NetworkTCPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // company info
- NetworkUDPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port)); // general data
+ NetworkTCPQueryServer(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port));
new NetworkLobbyWindow(&_network_lobby_window_desc, ngl);
}
@@ -1570,6 +1569,16 @@ NetworkCompanyInfo *GetLobbyCompanyInfo(CompanyID company)
return (lobby != nullptr && company < MAX_COMPANIES) ? &lobby->company_info[company] : nullptr;
}
+/**
+ * Get the game information for the lobby.
+ * @return the game info struct to write the (downloaded) data to.
+ */
+NetworkGameList *GetLobbyGameInfo()
+{
+ NetworkLobbyWindow *lobby = dynamic_cast<NetworkLobbyWindow *>(FindWindowById(WC_NETWORK_WINDOW, WN_NETWORK_WINDOW_LOBBY));
+ return lobby != nullptr ? lobby->server : nullptr;
+}
+
/* The window below gives information about the connected clients
* and also makes able to kick them (if server) and stuff like that. */