Ver código fonte

Avoid crash if configs file is missing, e.g. broken version of mod

Ivan Savenko 1 ano atrás
pai
commit
147db10a28
1 arquivos alterados com 14 adições e 4 exclusões
  1. 14 4
      lib/json/JsonUtils.cpp

+ 14 - 4
lib/json/JsonUtils.cpp

@@ -243,10 +243,20 @@ JsonNode JsonUtils::assembleFromFiles(const std::vector<std::string> & files, bo
 
 	for(const auto & file : files)
 	{
-		bool isValidFile = false;
-		JsonNode section(JsonPath::builtinTODO(file), isValidFile);
-		merge(result, section);
-		isValid |= isValidFile;
+		JsonPath path = JsonPath::builtinTODO(file);
+
+		if (CResourceHandler::get()->existsResource(path))
+		{
+			bool isValidFile = false;
+			JsonNode section(JsonPath::builtinTODO(file), isValidFile);
+			merge(result, section);
+			isValid |= isValidFile;
+		}
+		else
+		{
+			logMod->error("Failed to find file %s", file);
+			isValid = false;
+		}
 	}
 	return result;
 }