Răsfoiți Sursa

Add workaround for mods that use `"true"` (string) instead of real bool

Ivan Savenko 3 luni în urmă
părinte
comite
c4cb794760
1 a modificat fișierele cu 8 adăugiri și 0 ștergeri
  1. 8 0
      lib/json/JsonBonus.cpp

+ 8 - 0
lib/json/JsonBonus.cpp

@@ -537,6 +537,14 @@ static std::shared_ptr<const ILimiter> parseCreatureTypeLimiter(const JsonNode &
 	});
 
 	creatureLimiter->includeUpgrades = upgradesNode.Bool();
+
+	if (upgradesNode.isString())
+	{
+		logGlobal->warn("CREATURE_TYPE_LIMITER: parameter 'includeUpgrades' is invalid! expected boolean, but string '%s' found!", upgradesNode.String());
+		if (upgradesNode.String() == "true") // MOD COMPATIBILITY - broken mod, compensating
+			creatureLimiter->includeUpgrades = true;
+	}
+
 	return creatureLimiter;
 }