Browse Source

Fix possible crash on opening unit window if unit has both ability and
artifact bonus

Ivan Savenko 9 months ago
parent
commit
9cf75713d0
1 changed files with 5 additions and 1 deletions
  1. 5 1
      client/windows/CCreatureWindow.cpp

+ 5 - 1
client/windows/CCreatureWindow.cpp

@@ -838,7 +838,11 @@ void CStackWindow::initBonusesList()
 
 	std::sort(input.begin(), input.end(), [this](std::shared_ptr<Bonus> v1, std::shared_ptr<Bonus> & v2){
 		if (v1->source != v2->source)
-			return v1->source == BonusSource::CREATURE_ABILITY || (v1->source < v2->source);
+		{
+			int priorityV1 = v1->source == BonusSource::CREATURE_ABILITY ? -1 : static_cast<int>(v1->source);
+			int priorityV2 = v2->source == BonusSource::CREATURE_ABILITY ? -1 : static_cast<int>(v2->source);
+			return priorityV1 < priorityV2;
+		}
 		else
 			return  info->stackNode->bonusToString(v1, false) < info->stackNode->bonusToString(v2, false);
 	});