From 09a7825d1e03de58a5496a3eb11aa7bf6823ae18 Mon Sep 17 00:00:00 2001 From: rubidium42 Date: Sun, 18 Jul 2021 11:05:46 +0200 Subject: Remove: the concept of UnknownGRFs These were filled with "" (before 8a2da49) and later their name would get filled via UDP requests to the server. These UDP packets do not exist anymore, so they will always remain "". Remove that logic and just use the generic translated error GRF UNKNOWN string instead. --- src/network/core/game_info.cpp | 5 +---- src/network/network_gamelist.cpp | 5 +---- src/newgrf_config.cpp | 47 ---------------------------------------- src/newgrf_config.h | 4 ---- 4 files changed, 2 insertions(+), 59 deletions(-) diff --git a/src/network/core/game_info.cpp b/src/network/core/game_info.cpp index 32b8fdb75..d3c0491ba 100644 --- a/src/network/core/game_info.cpp +++ b/src/network/core/game_info.cpp @@ -166,10 +166,7 @@ static void HandleIncomingNetworkGameInfoGRFConfig(GRFConfig *config) /* Find the matching GRF file */ const GRFConfig *f = FindGRFConfig(config->ident.grfid, FGCM_EXACT, config->ident.md5sum); if (f == nullptr) { - /* Don't know the GRF, so mark game incompatible and the (possibly) - * already resolved name for this GRF (another server has sent the - * name of the GRF already */ - config->name = FindUnknownGRFName(config->ident.grfid, config->ident.md5sum, true); + AddGRFTextToList(config->name, GetString(STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN)); config->status = GCS_NOT_FOUND; } else { config->filename = f->filename; diff --git a/src/network/network_gamelist.cpp b/src/network/network_gamelist.cpp index d4843ff67..ef5405dd2 100644 --- a/src/network/network_gamelist.cpp +++ b/src/network/network_gamelist.cpp @@ -125,10 +125,7 @@ void NetworkAfterNewGRFScan() const GRFConfig *f = FindGRFConfig(c->ident.grfid, FGCM_EXACT, c->ident.md5sum); if (f == nullptr) { - /* Don't know the GRF, so mark game incompatible and the (possibly) - * already resolved name for this GRF (another server has sent the - * name of the GRF already. */ - c->name = FindUnknownGRFName(c->ident.grfid, c->ident.md5sum, true); + /* Don't know the GRF (anymore), so mark game incompatible. */ c->status = GCS_NOT_FOUND; /* If we miss a file, we're obviously incompatible. */ diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index addf6a147..f6242e4f5 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -753,53 +753,6 @@ const GRFConfig *FindGRFConfig(uint32 grfid, FindGRFConfigMode mode, const uint8 return best; } -/** Structure for UnknownGRFs; this is a lightweight variant of GRFConfig */ -struct UnknownGRF : public GRFIdentifier { - GRFTextWrapper name; ///< Name of the GRF. - - UnknownGRF() = default; - UnknownGRF(const UnknownGRF &other) = default; - UnknownGRF(UnknownGRF &&other) = default; - UnknownGRF(uint32 grfid, const uint8 *_md5sum) : GRFIdentifier(grfid, _md5sum), name(new GRFTextList) {} -}; - -/** - * Finds the name of a NewGRF in the list of names for unknown GRFs. An - * unknown GRF is a GRF where the .grf is not found during scanning. - * - * The names are resolved via UDP calls to servers that should know the name, - * though the replies may not come. This leaves "" as name, though - * that shouldn't matter _very_ much as they need GRF crawler or so to look - * up the GRF anyway and that works better with the GRF ID. - * - * @param grfid the GRF ID part of the 'unique' GRF identifier - * @param md5sum the MD5 checksum part of the 'unique' GRF identifier - * @param create whether to create a new GRFConfig if the GRFConfig did not - * exist in the fake list of GRFConfigs. - * @return The GRFTextWrapper of the name of the GRFConfig with the given GRF ID - * and MD5 checksum or nullptr when it does not exist and create is false. - * This value must NEVER be freed by the caller. - */ -GRFTextWrapper FindUnknownGRFName(uint32 grfid, uint8 *md5sum, bool create) -{ - static std::vector unknown_grfs; - - for (const auto &grf : unknown_grfs) { - if (grf.grfid == grfid) { - if (memcmp(md5sum, grf.md5sum, sizeof(grf.md5sum)) == 0) return grf.name; - } - } - - if (!create) return nullptr; - - unknown_grfs.emplace_back(grfid, md5sum); - UnknownGRF &grf = unknown_grfs.back(); - - AddGRFTextToList(grf.name, UNKNOWN_GRF_NAME_PLACEHOLDER); - - return grf.name; -} - /** * Retrieve a NewGRF from the current config by its grfid. * @param grfid grf to look for. diff --git a/src/newgrf_config.h b/src/newgrf_config.h index 3b3da962e..6f4b5c002 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -234,10 +234,6 @@ char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last); /* In newgrf_gui.cpp */ void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFConfig **config); -/** For communication about GRFs over the network */ -#define UNKNOWN_GRF_NAME_PLACEHOLDER "" -GRFTextWrapper FindUnknownGRFName(uint32 grfid, uint8 *md5sum, bool create); - void UpdateNewGRFScanStatus(uint num, const char *name); void UpdateNewGRFConfigPalette(int32 new_value = 0); -- cgit v1.2.3-54-g00ecf