Explorar el Código

Add workaround & logging for mods that use incorrect building ID's

Ivan Savenko hace 3 meses
padre
commit
81d09aee14
Se han modificado 1 ficheros con 7 adiciones y 0 borrados
  1. 7 0
      lib/entities/faction/CTownHandler.cpp

+ 7 - 0
lib/entities/faction/CTownHandler.cpp

@@ -889,6 +889,13 @@ void CTownHandler::beforeValidate(JsonNode & object)
 			return;
 
 		JsonNode baseCopy(buildingsLibrary[name]);
+
+		if (target.Struct().count("id") && baseCopy.Struct().count("id"))
+		{
+			logMod->warn("Mod '%s': Town building '%s' has specified 'id' field for a predefined building! Ignoring this field.", target["id"].getModScope(), name);
+			target.Struct().erase("id");
+		}
+
 		baseCopy.setModScope(target.getModScope());
 		JsonUtils::inherit(target, baseCopy);
 	};