From ed70e94f9a8870584a524b13d24194b98c941866 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 19 Jan 2025 16:13:12 +0000 Subject: [PATCH] Better reporting for configurable building initialization crash --- lib/mapObjects/CGTownInstance.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/mapObjects/CGTownInstance.cpp b/lib/mapObjects/CGTownInstance.cpp index 2d7d2b14d..a7fd4bd98 100644 --- a/lib/mapObjects/CGTownInstance.cpp +++ b/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); } } }