summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/settings.cpp14
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);