mirror of https://github.com/OpenTTD/OpenTTD
Fix: ensure no more than the allowed number of NewGRFs are loaded from the configuration
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…
Reference in New Issue