Przeglądaj źródła

Better reporting for configurable building initialization crash

Ivan Savenko 9 miesięcy temu
rodzic
commit
ed70e94f9a
1 zmienionych plików z 5 dodań i 2 usunięć
  1. 5 2
      lib/mapObjects/CGTownInstance.cpp

+ 5 - 2
lib/mapObjects/CGTownInstance.cpp

@@ -400,8 +400,11 @@ void CGTownInstance::initializeConfigurableBuildings(vstd::RNG & rand)
 		try {
 			rewardableBuildings[kvp.first] = new TownRewardableBuildingInstance(this, kvp.second->bid, rand);
 		}
-		catch (std::runtime_error & e) {
-			throw std::runtime_error("Failed to load rewardable building data for " + kvp.second->getJsonKey() + " Reason: " + e.what());
+		catch (std::runtime_error & e)
+		{
+			std::string buildingConfig = kvp.second->rewardableObjectInfo.getParameters().toCompactString();
+			std::replace(buildingConfig.begin(), buildingConfig.end(), '\n', ' ');
+			throw std::runtime_error("Failed to load rewardable building data for " + kvp.second->getJsonKey() + " Reason: " + e.what() + ", config was: " + buildingConfig);
 		}
 	}
 }