diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index f14342c353..2814daa4b5 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -499,15 +499,8 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendNewGRFCheck() return this->SendNeedGamePassword(); } - const GRFConfig *c; - uint grf_count = 0; - - for (c = _grfconfig; c != nullptr; c = c->next) { - if (!HasBit(c->flags, GCF_STATIC)) grf_count++; - } - - p->Send_uint32(grf_count); - for (c = _grfconfig; c != nullptr; c = c->next) { + p->Send_uint32(GetGRFConfigListNonStaticCount(_grfconfig)); + for (const GRFConfig *c = _grfconfig; c != nullptr; c = c->next) { if (!HasBit(c->flags, GCF_STATIC)) SerializeGRFIdentifier(*p, c->ident); } diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 25975ffa43..b32c684170 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -540,6 +540,15 @@ void ResetGRFConfig(bool defaults) AppendStaticGRFConfigs(&_grfconfig); } +/** Get the count of non-static GRFs in a GRF config list */ +uint GetGRFConfigListNonStaticCount(const GRFConfig *config) +{ + uint grf_count = 0; + for (const GRFConfig *c = config; c != nullptr; c = c->next) { + if (!HasBit(c->flags, GCF_STATIC)) grf_count++; + } + return grf_count; +} /** * Check if all GRFs in the GRF config from a savegame can be loaded. diff --git a/src/newgrf_config.h b/src/newgrf_config.h index 230be99c04..e51d33f93d 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -233,6 +233,7 @@ void AppendStaticGRFConfigs(GRFConfig **dst); void AppendToGRFConfigList(GRFConfig **dst, GRFConfig *el); void ClearGRFConfigList(GRFConfig **config); void ResetGRFConfig(bool defaults); +uint GetGRFConfigListNonStaticCount(const GRFConfig *config); GRFListCompatibility IsGoodGRFConfigList(GRFConfig *grfconfig); bool FillGRFDetails(GRFConfig *config, bool is_static, Subdirectory subdir = NEWGRF_DIR); std::string GRFBuildParamList(const GRFConfig *c); diff --git a/src/saveload/newgrf_sl.cpp b/src/saveload/newgrf_sl.cpp index 99c73d979d..2009d099ae 100644 --- a/src/saveload/newgrf_sl.cpp +++ b/src/saveload/newgrf_sl.cpp @@ -15,6 +15,7 @@ #include "newgrf_sl.h" #include "../fios.h" #include "../load_check.h" +#include "../debug.h" #include "../safeguards.h" @@ -98,6 +99,8 @@ struct NGRFChunkHandler : ChunkHandler { if (IsSavegameVersionBefore(SLV_101)) c->SetSuitablePalette(); AppendToGRFConfigList(&grfconfig, c); } + + DEBUG(sl, 2, "Loaded %u NewGRFs", GetGRFConfigListNonStaticCount(grfconfig)); } void Load() const override diff --git a/src/sl/newgrf_sl.cpp b/src/sl/newgrf_sl.cpp index e552604a5e..97dd6fb857 100644 --- a/src/sl/newgrf_sl.cpp +++ b/src/sl/newgrf_sl.cpp @@ -11,6 +11,7 @@ #include "../fios.h" #include "../load_check.h" #include "../string_func.h" +#include "../debug.h" #include "saveload.h" #include "newgrf_sl.h" @@ -118,6 +119,7 @@ static void Load_NGRF_common(GRFConfig *&grfconfig) if (IsSavegameVersionBefore(SLV_101)) c->SetSuitablePalette(); AppendToGRFConfigList(&grfconfig, c); } + DEBUG(sl, 2, "Loaded %u NewGRFs", GetGRFConfigListNonStaticCount(grfconfig)); } static void Load_NGRF()