diff --git a/OpenRA.Game/Server/OrderBuffer.cs b/OpenRA.Game/Server/OrderBuffer.cs index 397a594267..3027a937d5 100644 --- a/OpenRA.Game/Server/OrderBuffer.cs +++ b/OpenRA.Game/Server/OrderBuffer.cs @@ -88,6 +88,9 @@ namespace OpenRA.Server nextUpdate = now + Interval; + if (deltas.IsEmpty) + yield break; + if (deltas.Values.Any(q => q.Count != NumberOfFrames)) yield break; diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 9600d080ae..ed44ae4e30 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -1339,7 +1339,6 @@ namespace OpenRA.Server } SyncLobbyInfo(); - State = ServerState.GameStarted; var gameSpeeds = Game.ModData.Manifest.Get(); var gameSpeedName = LobbyInfo.GlobalSettings.OptionOrDefault("gamespeed", gameSpeeds.DefaultSpeed); @@ -1349,6 +1348,8 @@ namespace OpenRA.Server orderBuffer = new OrderBuffer(); orderBuffer.Start(gameSpeed, Conns.Where(c => c.Validated).Select(c => c.PlayerIndex)); + State = ServerState.GameStarted; + if (Type != ServerType.Local) OrderLatency = gameSpeed.OrderLatency;