fix some plenks

no logic changes
This commit is contained in:
Matthias Mailänder
2013-06-21 18:05:30 +02:00
parent 65088ea2d5
commit e9b2bcc579
4 changed files with 49 additions and 47 deletions

View File

@@ -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<T>( string name )
{
return modData.ObjectCreator.CreateObject<T>( name );
return modData.ObjectCreator.CreateObject<T>(name);
}
public static void CreateServer(ServerSettings settings)

View File

@@ -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<byte[]>() );
for (var i = NetFrameNumber ; i <= FramesAhead ; i++)
Connection.Send(i, new List<byte[]>());
}
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<int, byte[]> syncForFrame = new Dictionary<int, byte[]>();
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<Session.Client> 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<int>();
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();

View File

@@ -154,8 +154,10 @@ namespace OpenRA.Network
}
case "ServerError":
{
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<Health>();
if( health == null || !health.IsDead )
foreach( var t in self.TraitsImplementing<IResolveOrder>() )
t.ResolveOrder( self, order );
if (health == null || !health.IsDead)
foreach (var t in self.TraitsImplementing<IResolveOrder>())
t.ResolveOrder(self, order);
}
break;
}

View File

@@ -114,7 +114,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var mapPreview = lobby.Get<MapPreviewWidget>("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<LabelWidget>("MAP_TITLE");