From e9b2bcc579a47c6a27c83cbced9ae6d4f3ec5ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Fri, 21 Jun 2013 18:05:30 +0200 Subject: [PATCH] fix some plenks no logic changes --- OpenRA.Game/Game.cs | 15 +++-- OpenRA.Game/Network/OrderManager.cs | 65 +++++++++++----------- OpenRA.Game/Network/UnitOrders.cs | 14 +++-- OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs | 2 +- 4 files changed, 49 insertions(+), 47 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 44f308735e..bb73cfa2b2 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -149,12 +149,12 @@ namespace OpenRA delayedActions.PerformActions(); } - static void Tick( OrderManager orderManager ) + static void Tick(OrderManager orderManager) { int t = Environment.TickCount; int dt = t - orderManager.LastTickTime; if (dt >= Settings.Game.Timestep) - using( new PerfSample( "tick_time" ) ) + using (new PerfSample("tick_time")) { orderManager.LastTickTime += Settings.Game.Timestep; Ui.Tick(); @@ -162,7 +162,7 @@ namespace OpenRA if (orderManager.GameStarted) ++Viewport.TicksSinceLastMove; Sound.Tick(); - Sync.CheckSyncUnchanged( world, () => { orderManager.TickImmediate(); } ); + Sync.CheckSyncUnchanged(world, orderManager.TickImmediate); if (world != null) { @@ -230,7 +230,7 @@ namespace OpenRA { get { - var client= orderManager.LobbyInfo.ClientWithIndex ( + var client= orderManager.LobbyInfo.ClientWithIndex( orderManager.Connection.LocalClientId); return ((client!=null) && client.IsAdmin); } @@ -315,7 +315,6 @@ namespace OpenRA Renderer.InitializeFonts(modData.Manifest); modData.InitializeLoaders(); - PerfHistory.items["render"].hasNormalTick = false; PerfHistory.items["batches"].hasNormalTick = false; PerfHistory.items["render_widgets"].hasNormalTick = false; @@ -331,11 +330,11 @@ namespace OpenRA Game.Settings.Server.Map = WidgetUtils.ChooseInitialMap(Game.Settings.Server.Map); Game.Settings.Save(); Game.CreateServer(new ServerSettings(Game.Settings.Server)); - while(true) + while (true) { System.Threading.Thread.Sleep(100); - if((server.State == Server.ServerState.GameStarted) + if ((server.State == Server.ServerState.GameStarted) && (server.conns.Count<=1)) { Console.WriteLine("No one is playing, shutting down..."); @@ -426,7 +425,7 @@ namespace OpenRA public static T CreateObject( string name ) { - return modData.ObjectCreator.CreateObject( name ); + return modData.ObjectCreator.CreateObject(name); } public static void CreateServer(ServerSettings settings) diff --git a/OpenRA.Game/Network/OrderManager.cs b/OpenRA.Game/Network/OrderManager.cs index 55dbb7f15e..8e60dd6b56 100755 --- a/OpenRA.Game/Network/OrderManager.cs +++ b/OpenRA.Game/Network/OrderManager.cs @@ -21,12 +21,13 @@ namespace OpenRA.Network readonly SyncReport syncReport; readonly FrameData frameData = new FrameData(); - public Session LobbyInfo = new Session( Game.Settings.Game.Mods ); - public Session.Client LocalClient { get { return LobbyInfo.ClientWithIndex( Connection.LocalClientId ); } } + public Session LobbyInfo = new Session(Game.Settings.Game.Mods); + public Session.Client LocalClient { get { return LobbyInfo.ClientWithIndex(Connection.LocalClientId); } } public World world; public readonly string Host; public readonly int Port; + public string ServerError = "Server is not responding."; public int NetFrameNumber { get; private set; } @@ -47,27 +48,27 @@ namespace OpenRA.Network if (GameStarted) return; NetFrameNumber = 1; - for( int i = NetFrameNumber ; i <= FramesAhead ; i++ ) - Connection.Send( i, new List() ); + for (var i = NetFrameNumber ; i <= FramesAhead ; i++) + Connection.Send(i, new List()); } - public OrderManager( string host, int port, IConnection conn ) + public OrderManager(string host, int port, IConnection conn) { this.Host = host; this.Port = port; Connection = conn; - syncReport = new SyncReport( this ); + syncReport = new SyncReport(this); } - public void IssueOrders( Order[] orders ) + public void IssueOrders(Order[] orders) { - foreach( var order in orders ) - IssueOrder( order ); + foreach (var order in orders) + IssueOrder(order); } - public void IssueOrder( Order order ) + public void IssueOrder(Order order) { - localOrders.Add( order ); + localOrders.Add(order); } public void TickImmediate() @@ -82,25 +83,25 @@ namespace OpenRA.Network Connection.Receive( ( clientId, packet ) => { - var frame = BitConverter.ToInt32( packet, 0 ); - if( packet.Length == 5 && packet[ 4 ] == 0xBF ) - frameData.ClientQuit( clientId, frame ); - else if( packet.Length >= 5 && packet[ 4 ] == 0x65 ) - CheckSync( packet ); - else if( frame == 0 ) - immediatePackets.Add( Pair.New( clientId, packet ) ); + var frame = BitConverter.ToInt32(packet, 0); + if (packet.Length == 5 && packet[4] == 0xBF) + frameData.ClientQuit(clientId, frame); + else if (packet.Length >= 5 && packet[4] == 0x65) + CheckSync(packet); + else if (frame == 0) + immediatePackets.Add(Pair.New(clientId, packet)); else - frameData.AddFrameOrders( clientId, frame, packet ); + frameData.AddFrameOrders(clientId, frame, packet); } ); - foreach( var p in immediatePackets ) - foreach( var o in p.Second.ToOrderList( world ) ) - UnitOrders.ProcessOrder( this, world, p.First, o ); + foreach (var p in immediatePackets) + foreach (var o in p.Second.ToOrderList(world)) + UnitOrders.ProcessOrder(this, world, p.First, o); } Dictionary syncForFrame = new Dictionary(); - void CheckSync( byte[] packet ) + void CheckSync(byte[] packet) { var frame = BitConverter.ToInt32(packet, 0); byte[] existingSync; @@ -133,7 +134,7 @@ namespace OpenRA.Network void OutOfSync(int frame, int index) { - var orders = frameData.OrdersForFrame( world, frame ); + var orders = frameData.OrdersForFrame(world, frame); // Invalid index if (index >= orders.Count()) @@ -154,7 +155,7 @@ namespace OpenRA.Network public bool IsReadyForNextFrame { - get { return NetFrameNumber >= 1 && frameData.IsReadyForFrame( NetFrameNumber ); } + get { return NetFrameNumber >= 1 && frameData.IsReadyForFrame(NetFrameNumber); } } static readonly IEnumerable NoClients = new Session.Client[] {}; @@ -171,23 +172,23 @@ namespace OpenRA.Network public void Tick() { - if( !IsReadyForNextFrame ) + if (!IsReadyForNextFrame) throw new InvalidOperationException(); - Connection.Send( NetFrameNumber + FramesAhead, localOrders.Select( o => o.Serialize() ).ToList() ); + Connection.Send(NetFrameNumber + FramesAhead, localOrders.Select(o => o.Serialize()).ToList()); localOrders.Clear(); var sync = new List(); - sync.Add( world.SyncHash() ); + sync.Add(world.SyncHash()); - foreach( var order in frameData.OrdersForFrame( world, NetFrameNumber) ) + foreach (var order in frameData.OrdersForFrame(world, NetFrameNumber)) { - UnitOrders.ProcessOrder( this, world, order.Client, order.Order ); - sync.Add( world.SyncHash() ); + UnitOrders.ProcessOrder(this, world, order.Client, order.Order); + sync.Add(world.SyncHash()); } var ss = sync.SerializeSync(); - Connection.SendSync( NetFrameNumber, ss ); + Connection.SendSync(NetFrameNumber, ss); syncReport.UpdateSyncReport(); diff --git a/OpenRA.Game/Network/UnitOrders.cs b/OpenRA.Game/Network/UnitOrders.cs index 86ec28c88e..332092e373 100755 --- a/OpenRA.Game/Network/UnitOrders.cs +++ b/OpenRA.Game/Network/UnitOrders.cs @@ -154,8 +154,10 @@ namespace OpenRA.Network } case "ServerError": - orderManager.ServerError = order.TargetString; - break; + { + orderManager.ServerError = order.TargetString; + break; + } case "SyncInfo": { @@ -200,13 +202,13 @@ namespace OpenRA.Network } default: { - if( !order.IsImmediate ) + if (!order.IsImmediate) { var self = order.Subject; var health = self.TraitOrDefault(); - if( health == null || !health.IsDead ) - foreach( var t in self.TraitsImplementing() ) - t.ResolveOrder( self, order ); + if (health == null || !health.IsDead) + foreach (var t in self.TraitsImplementing()) + t.ResolveOrder(self, order); } break; } diff --git a/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs index 5c69d4a6d0..d53063eb25 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs @@ -114,7 +114,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic var mapPreview = lobby.Get("MAP_PREVIEW"); mapPreview.IsVisible = () => Map != null; mapPreview.Map = () => Map; - mapPreview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint( orderManager, mapPreview, Map, mi ); + mapPreview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint(orderManager, mapPreview, Map, mi); mapPreview.SpawnClients = () => LobbyUtils.GetSpawnClients(orderManager, Map); var mapTitle = lobby.GetOrNull("MAP_TITLE");