summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium42 <rubidium@openttd.org>2021-05-06 16:19:00 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-05-06 21:45:36 +0200
commitf1dfa661a1898cde06a38ab4cb230c95912b245b (patch)
treeb2ae2f662689bbee7de8c8ae3aa3f36ed354e3a1
parentcb89d22cf248841f93d257983770a08aa0a64561 (diff)
downloadopenttd-f1dfa661a1898cde06a38ab4cb230c95912b245b.tar.xz
Codechange: [Network] Use std::string for NetworkGameInfo
-rw-r--r--src/network/core/game_info.cpp10
-rw-r--r--src/network/core/game_info.h32
-rw-r--r--src/network/network.cpp6
-rw-r--r--src/network/network_gamelist.cpp6
-rw-r--r--src/network/network_gui.cpp6
-rw-r--r--src/network/network_udp.cpp4
6 files changed, 32 insertions, 32 deletions
diff --git a/src/network/core/game_info.cpp b/src/network/core/game_info.cpp
index 47e6f221e..f7044a3fc 100644
--- a/src/network/core/game_info.cpp
+++ b/src/network/core/game_info.cpp
@@ -112,7 +112,7 @@ bool IsNetworkCompatibleVersion(const char *other)
void CheckGameCompatibility(NetworkGameInfo &ngi)
{
/* Check if we are allowed on this server based on the revision-check. */
- ngi.version_compatible = IsNetworkCompatibleVersion(ngi.server_revision);
+ ngi.version_compatible = IsNetworkCompatibleVersion(ngi.server_revision.c_str());
ngi.compatible = ngi.version_compatible;
/* Check if we have all the GRFs on the client-system too. */
@@ -138,8 +138,8 @@ void FillStaticNetworkServerGameInfo()
_network_game_info.dedicated = _network_dedicated;
_network_game_info.grfconfig = _grfconfig;
- strecpy(_network_game_info.server_name, _settings_client.network.server_name, lastof(_network_game_info.server_name));
- strecpy(_network_game_info.server_revision, GetNetworkRevisionString(), lastof(_network_game_info.server_revision));
+ _network_game_info.server_name = _settings_client.network.server_name;
+ _network_game_info.server_revision = GetNetworkRevisionString();
}
/**
@@ -295,8 +295,8 @@ void DeserializeNetworkGameInfo(Packet *p, NetworkGameInfo *info)
FALLTHROUGH;
case 1:
- p->Recv_string(info->server_name, sizeof(info->server_name));
- p->Recv_string(info->server_revision, sizeof(info->server_revision));
+ info->server_name = p->Recv_string(NETWORK_NAME_LENGTH);
+ info->server_revision = p->Recv_string(NETWORK_REVISION_LENGTH);
p->Recv_uint8 (); // Used to contain server-lang.
info->use_password = p->Recv_bool ();
info->clients_max = p->Recv_uint8 ();
diff --git a/src/network/core/game_info.h b/src/network/core/game_info.h
index ef83e4d05..668b9801d 100644
--- a/src/network/core/game_info.h
+++ b/src/network/core/game_info.h
@@ -60,22 +60,22 @@
* The game information that is sent from the server to the client.
*/
struct NetworkServerGameInfo {
- GRFConfig *grfconfig; ///< List of NewGRF files used
- Date start_date; ///< When the game started
- Date game_date; ///< Current date
- uint16 map_width; ///< Map width
- uint16 map_height; ///< Map height
- char server_name[NETWORK_NAME_LENGTH]; ///< Server name
- char server_revision[NETWORK_REVISION_LENGTH]; ///< The version number the server is using (e.g.: 'r304' or 0.5.0)
- bool dedicated; ///< Is this a dedicated server?
- bool use_password; ///< Is this server passworded?
- byte clients_on; ///< Current count of clients on server
- byte clients_max; ///< Max clients allowed on server
- byte companies_on; ///< How many started companies do we have
- byte companies_max; ///< Max companies allowed on server
- byte spectators_on; ///< How many spectators do we have?
- byte spectators_max; ///< Max spectators allowed on server
- byte landscape; ///< The used landscape
+ GRFConfig *grfconfig; ///< List of NewGRF files used
+ Date start_date; ///< When the game started
+ Date game_date; ///< Current date
+ uint16 map_width; ///< Map width
+ uint16 map_height; ///< Map height
+ std::string server_name; ///< Server name
+ std::string server_revision; ///< The version number the server is using (e.g.: 'r304' or 0.5.0)
+ bool dedicated; ///< Is this a dedicated server?
+ bool use_password; ///< Is this server passworded?
+ byte clients_on; ///< Current count of clients on server
+ byte clients_max; ///< Max clients allowed on server
+ byte companies_on; ///< How many started companies do we have
+ byte companies_max; ///< Max companies allowed on server
+ byte spectators_on; ///< How many spectators do we have?
+ byte spectators_max; ///< Max spectators allowed on server
+ byte landscape; ///< The used landscape
};
/**
diff --git a/src/network/network.cpp b/src/network/network.cpp
index a90f8197e..83a93a22e 100644
--- a/src/network/network.cpp
+++ b/src/network/network.cpp
@@ -656,9 +656,9 @@ NetworkGameList *NetworkAddServer(const std::string &connection_string)
/* Ensure the item already exists in the list */
NetworkGameList *item = NetworkGameListAddItem(connection_string);
- if (StrEmpty(item->info.server_name)) {
+ if (item->info.server_name.empty()) {
ClearGRFConfigList(&item->info.grfconfig);
- strecpy(item->info.server_name, connection_string.c_str(), lastof(item->info.server_name));
+ item->info.server_name = connection_string;
item->manually = true;
NetworkRebuildHostList();
@@ -1163,7 +1163,7 @@ void NetworkStartUp()
/* Generate an server id when there is none yet */
if (StrEmpty(_settings_client.network.network_id)) NetworkGenerateServerId();
- memset(&_network_game_info, 0, sizeof(_network_game_info));
+ _network_game_info = {};
NetworkInitialize();
DEBUG(net, 3, "[core] network online, multiplayer available");
diff --git a/src/network/network_gamelist.cpp b/src/network/network_gamelist.cpp
index e4e2d1741..20fbb19a7 100644
--- a/src/network/network_gamelist.cpp
+++ b/src/network/network_gamelist.cpp
@@ -47,10 +47,10 @@ static void NetworkGameListHandleDelayedInsert()
NetworkGameList *item = NetworkGameListAddItem(ins_item->connection_string);
if (item != nullptr) {
- if (StrEmpty(item->info.server_name)) {
+ if (item->info.server_name.empty()) {
ClearGRFConfigList(&item->info.grfconfig);
- memset(&item->info, 0, sizeof(item->info));
- strecpy(item->info.server_name, ins_item->info.server_name, lastof(item->info.server_name));
+ item->info = {};
+ item->info.server_name = ins_item->info.server_name;
item->online = false;
}
item->manually |= ins_item->manually;
diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp
index 526f141cd..cf16d06b1 100644
--- a/src/network/network_gui.cpp
+++ b/src/network/network_gui.cpp
@@ -271,7 +271,7 @@ protected:
/** Sort servers by name. */
static bool NGameNameSorter(NetworkGameList * const &a, NetworkGameList * const &b)
{
- int r = strnatcmp(a->info.server_name, b->info.server_name, true); // Sort by name (natural sorting).
+ int r = strnatcmp(a->info.server_name.c_str(), b->info.server_name.c_str(), true); // Sort by name (natural sorting).
if (r == 0) r = a->connection_string.compare(b->connection_string);
return r < 0;
@@ -324,7 +324,7 @@ protected:
static bool NGameAllowedSorter(NetworkGameList * const &a, NetworkGameList * const &b)
{
/* The servers we do not know anything about (the ones that did not reply) should be at the bottom) */
- int r = StrEmpty(a->info.server_revision) - StrEmpty(b->info.server_revision);
+ int r = a->info.server_revision.empty() - b->info.server_revision.empty();
/* Reverse default as we are interested in version-compatible clients first */
if (r == 0) r = b->info.version_compatible - a->info.version_compatible;
@@ -361,7 +361,7 @@ protected:
assert((*item) != nullptr);
sf.ResetState();
- sf.AddLine((*item)->info.server_name);
+ sf.AddLine((*item)->info.server_name.c_str());
return sf.GetState();
}
diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp
index 4e4f4a37e..8a95596c1 100644
--- a/src/network/network_udp.cpp
+++ b/src/network/network_udp.cpp
@@ -91,7 +91,7 @@ static void DoNetworkUDPQueryServer(const std::string &connection_string, bool n
{
/* Clear item in gamelist */
NetworkGameList *item = new NetworkGameList(connection_string, manually);
- strecpy(item->info.server_name, connection_string.c_str(), lastof(item->info.server_name));
+ item->info.server_name = connection_string;
NetworkGameListAddItemDelayed(item);
std::unique_lock<std::mutex> lock(_udp_client.mutex, std::defer_lock);
@@ -362,7 +362,7 @@ void ClientNetworkUDPSocketHandler::Receive_SERVER_RESPONSE(Packet *p, NetworkAd
}
if (client_addr->GetAddress()->ss_family == AF_INET6) {
- strecat(item->info.server_name, " (IPv6)", lastof(item->info.server_name));
+ item->info.server_name.append(" (IPv6)");
}
UpdateNetworkGameWindow();