浏览代码

- fix for missing grail

Ivan Savenko 13 年之前
父节点
当前提交
2dd9d943c9
共有 2 个文件被更改,包括 13 次插入2 次删除
  1. 11 0
      lib/CBuildingHandler.cpp
  2. 2 2
      lib/VCMI_Lib.cpp

+ 11 - 0
lib/CBuildingHandler.cpp

@@ -89,6 +89,17 @@ void CBuildingHandler::loadBuildings()
 		while (!parser.isNextEntryEmpty());
 		while (!parser.isNextEntryEmpty());
 	}
 	}
 
 
+	// Grail. It may not have entries in building.txt
+	for (size_t town=0; town<GameConstants::F_NUMBER; town++)
+	{
+		if (!vstd::contains(buildings[town], 26))
+		{
+			buildings[town][26] = new CBuilding();
+			buildings[town][26]->tid = town;
+			buildings[town][26]->bid = 26;
+		}
+	}
+
 	/////done reading BUILDING.TXT*****************************
 	/////done reading BUILDING.TXT*****************************
 	const JsonNode config(ResourceID("config/hall.json"));
 	const JsonNode config(ResourceID("config/hall.json"));
 
 

+ 2 - 2
lib/VCMI_Lib.cpp

@@ -37,11 +37,11 @@ DLL_LINKAGE void initDLL(CConsoleHandler *Console, std::ostream *Logfile)
 	console = Console;
 	console = Console;
 	logfile = Logfile;
 	logfile = Logfile;
 	VLC = new LibClasses;
 	VLC = new LibClasses;
-	//try
+	try
 	{
 	{
 		VLC->init();
 		VLC->init();
 	}
 	}
-	//HANDLE_EXCEPTION;
+	HANDLE_EXCEPTION;
 }
 }
 
 
 void LibClasses::loadFilesystem()
 void LibClasses::loadFilesystem()