浏览代码

Update CModHandler.cpp

Corrected error handling in CModHandler::loadConfigFromFile
Macron1Robot 11 年之前
父节点
当前提交
13cd400d27
共有 1 个文件被更改,包括 13 次插入13 次删除
  1. 13 13
      lib/CModHandler.cpp

+ 13 - 13
lib/CModHandler.cpp

@@ -515,24 +515,24 @@ bool CModHandler::loadConfigFromFile (std::string name)
 	settings.MAX_HEROES_ON_MAP_PER_PLAYER = hardcodedFeatures["MAX_HEROES_ON_MAP_PER_PLAYER"].Float();
 	if (settings.MAX_HEROES_AVAILABLE_PER_PLAYER<=0)
 	{
-		logGlobal->errorStream() << "Error: MAX_HEROES_AVAILABLE must be higher than MAX_HEROES_ON_MAP";
-		return true;
+		logGlobal->errorStream() << "Error: MAX_HEROES_AVAILABLE_PER_PLAYER must be positive. Setting to 16";
+		settings.MAX_HEROES_AVAILABLE_PER_PLAYER = 16;
 	}
 	if (settings.MAX_HEROES_ON_MAP_PER_PLAYER <= 0)
 	{
-		logGlobal->errorStream() << "Error: MAX_HEROES_AVAILABLE must be higher than MAX_HEROES_ON_MAP";
-		return true;
+		logGlobal->errorStream() << "Error: MAX_HEROES_AVAILABLE_PER_PLAYER must be positive. Setting to 8";
+		settings.MAX_HEROES_ON_MAP_PER_PLAYER = 8;
 	}
 	if (settings.MAX_HEROES_AVAILABLE_PER_PLAYER<settings.MAX_HEROES_ON_MAP_PER_PLAYER)
 	{
-		logGlobal->errorStream() << "Error: MAX_HEROES_AVAILABLE must be higher than MAX_HEROES_ON_MAP";
-		return true;
+		logGlobal->errorStream() << "Error: MAX_HEROES_AVAILABLE_PER_PLAYER must be higher than MAX_HEROES_ON_MAP_PER_PLAYER. Setting to equal values";
+		settings.MAX_HEROES_AVAILABLE_PER_PLAYER = settings.MAX_HEROES_ON_MAP_PER_PLAYER;
 	}
 	settings.CREEP_SIZE = hardcodedFeatures["CREEP_SIZE"].Float();
 	if (settings.CREEP_SIZE<=0)
 	{
-		logGlobal->errorStream() << "Error: CREEP_SIZE must be positive value";
-		return true;
+		logGlobal->errorStream() << "Error: CREEP_SIZE must be positive value. Setting to 4000";
+		settings.CREEP_SIZE = 4000;
 	}
 	settings.WEEKLY_GROWTH = hardcodedFeatures["WEEKLY_GROWTH_PERCENT"].Float();
 	settings.WEEKLY_GROWTH = hardcodedFeatures["CREEP_SIZE"].Float();
@@ -540,8 +540,8 @@ bool CModHandler::loadConfigFromFile (std::string name)
 	settings.MAX_BUILDING_PER_TURN = hardcodedFeatures["MAX_BUILDING_PER_TURN"].Float();
 	if (settings.MAX_BUILDING_PER_TURN <= 0)
 	{
-		logGlobal->errorStream() << "Error: MAX_BUILDING_PER_TURN must be positive value";
-		return true;
+		logGlobal->errorStream() << "Error: MAX_BUILDING_PER_TURN must be positive value. Setting to 1";
+		settings.MAX_BUILDING_PER_TURN=1;
 	}
 	settings.DWELLINGS_ACCUMULATE_CREATURES = hardcodedFeatures["DWELLINGS_ACCUMULATE_CREATURES"].Bool();
 	settings.ALL_CREATURES_GET_DOUBLE_MONTHS = hardcodedFeatures["ALL_CREATURES_GET_DOUBLE_MONTHS"].Bool();
@@ -551,7 +551,7 @@ bool CModHandler::loadConfigFromFile (std::string name)
 	modules.STACK_ARTIFACT = gameModules["STACK_ARTIFACTS"].Bool();
 	modules.COMMANDERS = gameModules["COMMANDERS"].Bool();
 	modules.MITHRIL = gameModules["MITHRIL"].Bool();
-	return false;
+	return true;
 }
 
 // currentList is passed by value to get current list of depending mods
@@ -816,9 +816,9 @@ CModInfo & CModHandler::getModData(TModID modId)
 
 void CModHandler::initializeConfig()
 {
-	if (loadConfigFromFile("defaultMods.json")==true)
+	if (!loadConfigFromFile("defaultMods.json"))
 	{
-		logGlobal->errorStream() << "Error: defaultMods.json HAS ERRORS";
+		logGlobal->errorStream() << "Error: defaultMods.json has errors";
 	}
 }