فهرست منبع

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

Ivan Savenko 10 ماه پیش
والد
کامیت
9cf75713d0
1فایلهای تغییر یافته به همراه5 افزوده شده و 1 حذف شده
  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);
 	});