Fix: ensure no more than the allowed number of NewGRFs are loaded from the configuration

pull/332/head
Rubidium 3 years ago committed by rubidium42
parent e99134654b
commit f6955a304c

@ -956,6 +956,7 @@ static GRFConfig *GRFLoadConfig(IniFile &ini, const char *grpname, bool is_stati
if (group == nullptr) return nullptr;
uint num_grfs = 0;
for (item = group->item; item != nullptr; item = item->next) {
GRFConfig *c = nullptr;
@ -1030,8 +1031,14 @@ static GRFConfig *GRFLoadConfig(IniFile &ini, const char *grpname, bool is_stati
continue;
}
/* Mark file as static to avoid saving in savegame. */
if (is_static) SetBit(c->flags, GCF_STATIC);
if (is_static) {
/* Mark file as static to avoid saving in savegame. */
SetBit(c->flags, GCF_STATIC);
} else if (++num_grfs > NETWORK_MAX_GRF_COUNT) {
/* Check we will not load more non-static NewGRFs than allowed. This could trigger issues for game servers. */
ShowErrorMessage(STR_CONFIG_ERROR, STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED, WL_CRITICAL);
break;
}
/* Add item to list */
*curr = c;

Loading…
Cancel
Save