Преглед на файлове

Fix loading of subtypes for HAS_ANOTHER_BONUS limiter

Ivan Savenko преди 3 месеца
родител
ревизия
aeddeb2612
променени са 1 файла, в които са добавени 7 реда и са изтрити 5 реда
  1. 7 5
      lib/json/JsonBonus.cpp

+ 7 - 5
lib/json/JsonBonus.cpp

@@ -552,12 +552,11 @@ static std::shared_ptr<const ILimiter> parseHasAnotherBonusLimiter(const JsonNod
 {
 {
 	auto bonusLimiter = std::make_shared<HasAnotherBonusLimiter>();
 	auto bonusLimiter = std::make_shared<HasAnotherBonusLimiter>();
 
 
-	static const JsonNode nullNode;
 	const JsonNode & parameters = limiter["parameters"];
 	const JsonNode & parameters = limiter["parameters"];
-	const JsonNode & jsonType    = limiter.Struct().count("bonusType") ? limiter["bonusType"] : parameters[0];
-	const JsonNode & jsonSubtype = limiter.Struct().count("bonusSubtype") ? limiter["bonusSubtype"] : (parameters.Vector().size() > 2 ? parameters[1] : nullNode);
-	const JsonNode & jsonSourceType  = limiter.Struct().count("bonusSourceType") ? limiter["bonusSourceType"] : (parameters.Vector().size() > 2 ? parameters[2]["type"] : parameters[1]["type"]);
-	const JsonNode & jsonSourceID  = limiter.Struct().count("bonusSourceID") ? limiter["bonusSourceID"] : (parameters.Vector().size() > 2 ? parameters[2]["id"] : parameters[1]["id"]);
+	const JsonNode & jsonType = limiter.Struct().count("bonusType") ? limiter["bonusType"] : parameters[0];
+	const JsonNode & jsonSubtype = limiter.Struct().count("bonusSubtype") ? limiter["bonusSubtype"] : parameters[1];
+	const JsonNode & jsonSourceType = limiter.Struct().count("bonusSourceType") ? limiter["bonusSourceType"] : parameters[2]["type"];
+	const JsonNode & jsonSourceID = limiter.Struct().count("bonusSourceID") ? limiter["bonusSourceID"] : parameters[2]["id"];
 
 
 	if (!jsonType.isNull())
 	if (!jsonType.isNull())
 	{
 	{
@@ -565,7 +564,10 @@ static std::shared_ptr<const ILimiter> parseHasAnotherBonusLimiter(const JsonNod
 		{
 		{
 			bonusLimiter->type = static_cast<BonusType>(bonusID);
 			bonusLimiter->type = static_cast<BonusType>(bonusID);
 			if (!jsonSubtype.isNull())
 			if (!jsonSubtype.isNull())
+			{
 				loadBonusSubtype(bonusLimiter->subtype, bonusLimiter->type, jsonSubtype);
 				loadBonusSubtype(bonusLimiter->subtype, bonusLimiter->type, jsonSubtype);
+				bonusLimiter->isSubtypeRelevant = true;
+			}
 		});
 		});
 	}
 	}