ソースを参照

Merge pull request #3371 from dydzio0614/creatures-transfer-fix

Fix crash due to incorrect logic on transferring last creature
Ivan Savenko 2 年 前
コミット
056639ba67
1 ファイル変更3 行追加1 行削除
  1. 3 1
      server/CGameHandler.cpp

+ 3 - 1
server/CGameHandler.cpp

@@ -1973,7 +1973,9 @@ bool CGameHandler::bulkMoveArmy(ObjectInstanceID srcArmy, ObjectInstanceID destA
 		{
 			const bool needsLastStack = armySrc->needsLastStack();
 			const auto quantity = setSrc.getStackCount(srcSlot) - (needsLastStack ? 1 : 0);
-			moves.insert(std::make_pair(srcSlot, std::make_pair(slotToMove, quantity)));
+
+			if(quantity > 0) //0 may happen when we need last creature and we have exactly 1 amount of that creature - amount of "rest we can transfer" becomes 0
+				moves.insert(std::make_pair(srcSlot, std::make_pair(slotToMove, quantity)));
 		}
 	}
 	BulkRebalanceStacks bulkRS;