Browse Source

Fix crash on bonus parsing failure (outdated mods?)

Ivan Savenko 2 years ago
parent
commit
dd17896082
1 changed files with 7 additions and 1 deletions
  1. 7 1
      lib/JsonNode.cpp

+ 7 - 1
lib/JsonNode.cpp

@@ -829,7 +829,13 @@ std::shared_ptr<Bonus> JsonUtils::parseBonus(const JsonNode &ability)
 	auto b = std::make_shared<Bonus>();
 	if (!parseBonus(ability, b.get()))
 	{
-		return nullptr;
+		// caller code can not handle this case and presumes that returned bonus is always valid
+		logGlobal->error("Failed to parse bonus! Json config was %S ", ability.toJson());
+
+		b->type = BonusType::NONE;
+		assert(0); // or throw? Game *should* work with dummy bonus
+
+		return b;
 	}
 	return b;
 }