Break out of cancellation loop when there is nothing left to cancel.

This commit is contained in:
Paul Chote
2018-03-29 19:52:26 +01:00
committed by reaperrr
parent f2cf51d1a4
commit 0654f18f22

View File

@@ -427,10 +427,11 @@ namespace OpenRA.Mods.Common.Traits
protected void CancelProduction(string itemName, uint numberToCancel)
{
for (var i = 0; i < numberToCancel; i++)
CancelProductionInner(itemName);
if (!CancelProductionInner(itemName))
break;
}
void CancelProductionInner(string itemName)
bool CancelProductionInner(string itemName)
{
var lastIndex = queue.FindLastIndex(a => a.Item == itemName);
@@ -444,6 +445,10 @@ namespace OpenRA.Mods.Common.Traits
playerResources.GiveCash(item.TotalCost - item.RemainingCost);
FinishProduction();
}
else
return false;
return true;
}
public void FinishProduction()