From 40b0408ce7d6461e34a97f0364d2d9f50d3289e3 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 5 Jan 2011 13:09:25 +1300 Subject: [PATCH] Fix #453. Bogus crash when desyncing. --- OpenRA.Game/Network/OrderManager.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/OpenRA.Game/Network/OrderManager.cs b/OpenRA.Game/Network/OrderManager.cs index 3c8e09756f..cd0724cdb5 100755 --- a/OpenRA.Game/Network/OrderManager.cs +++ b/OpenRA.Game/Network/OrderManager.cs @@ -132,8 +132,13 @@ namespace OpenRA.Network void OutOfSync(int frame, int index) { - var order = frameData.OrdersForFrame( world, frame ).ElementAt(index); - throw new InvalidOperationException("Out of sync in frame {0}.\n {1}".F(frame, order.Order.ToString())); + var orders = frameData.OrdersForFrame( world, frame ); + + // Invalid index + if (index >= orders.Count()) + OutOfSync(frame); + + throw new InvalidOperationException("Out of sync in frame {0}.\n {1}".F(frame, orders.ElementAt(index).Order.ToString())); } void OutOfSync(int frame)