diff options
-rw-r--r-- | src/settings.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/settings.cpp b/src/settings.cpp index 0e6a94aac..312045a59 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1183,6 +1183,20 @@ static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_stati continue; } + /* Check for duplicate GRFID (will also check for duplicate filenames) */ + bool duplicate = false; + for (const GRFConfig *gc = first; gc != NULL; gc = gc->next) { + if (gc->grfid == c->grfid) { + ShowInfoF("ini: ignoring NewGRF '%s': duplicate GRF ID with '%s'", item->name, gc->filename); + duplicate = true; + break; + } + } + if (duplicate) { + ClearGRFConfig(&c); + continue; + } + /* Mark file as static to avoid saving in savegame. */ if (is_static) SetBit(c->flags, GCF_STATIC); |