From 33ef0f6e614a54741418263ce06ab9fd85f7ecd7 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sun, 1 Nov 2009 21:33:00 +1300 Subject: [PATCH] implementing consistent order order (ugh) (#70) --- OpenRa.Game/OrderManager.cs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/OpenRa.Game/OrderManager.cs b/OpenRa.Game/OrderManager.cs index 2b07f562ac..385ed30c5a 100755 --- a/OpenRa.Game/OrderManager.cs +++ b/OpenRa.Game/OrderManager.cs @@ -36,15 +36,14 @@ namespace OpenRa.Game if( savingReplay != null ) savingReplay.Write( frameNumber ); - foreach( var p in players ) + var allOrders = players.SelectMany(p => p.OrdersForFrame(frameNumber)).OrderBy(o => o.Player.Palette); + foreach (var order in allOrders) { - foreach( var order in p.OrdersForFrame( frameNumber ) ) - { - UnitOrders.ProcessOrder( order ); - if( savingReplay != null ) - savingReplay.Write( order.Serialize() ); - } + UnitOrders.ProcessOrder(order); + if (savingReplay != null) + savingReplay.Write(order.Serialize()); } + ++frameNumber; // sanity check on the framenumber. This is 2^31 frames maximum, or multiple *years* at 40ms/frame. if( ( frameNumber & 0x80000000 ) != 0 )