fix some plenks
no logic changes
This commit is contained in:
@@ -149,12 +149,12 @@ namespace OpenRA
|
|||||||
delayedActions.PerformActions();
|
delayedActions.PerformActions();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Tick( OrderManager orderManager )
|
static void Tick(OrderManager orderManager)
|
||||||
{
|
{
|
||||||
int t = Environment.TickCount;
|
int t = Environment.TickCount;
|
||||||
int dt = t - orderManager.LastTickTime;
|
int dt = t - orderManager.LastTickTime;
|
||||||
if (dt >= Settings.Game.Timestep)
|
if (dt >= Settings.Game.Timestep)
|
||||||
using( new PerfSample( "tick_time" ) )
|
using (new PerfSample("tick_time"))
|
||||||
{
|
{
|
||||||
orderManager.LastTickTime += Settings.Game.Timestep;
|
orderManager.LastTickTime += Settings.Game.Timestep;
|
||||||
Ui.Tick();
|
Ui.Tick();
|
||||||
@@ -162,7 +162,7 @@ namespace OpenRA
|
|||||||
if (orderManager.GameStarted)
|
if (orderManager.GameStarted)
|
||||||
++Viewport.TicksSinceLastMove;
|
++Viewport.TicksSinceLastMove;
|
||||||
Sound.Tick();
|
Sound.Tick();
|
||||||
Sync.CheckSyncUnchanged( world, () => { orderManager.TickImmediate(); } );
|
Sync.CheckSyncUnchanged(world, orderManager.TickImmediate);
|
||||||
|
|
||||||
if (world != null)
|
if (world != null)
|
||||||
{
|
{
|
||||||
@@ -230,7 +230,7 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var client= orderManager.LobbyInfo.ClientWithIndex (
|
var client= orderManager.LobbyInfo.ClientWithIndex(
|
||||||
orderManager.Connection.LocalClientId);
|
orderManager.Connection.LocalClientId);
|
||||||
return ((client!=null) && client.IsAdmin);
|
return ((client!=null) && client.IsAdmin);
|
||||||
}
|
}
|
||||||
@@ -315,7 +315,6 @@ namespace OpenRA
|
|||||||
Renderer.InitializeFonts(modData.Manifest);
|
Renderer.InitializeFonts(modData.Manifest);
|
||||||
modData.InitializeLoaders();
|
modData.InitializeLoaders();
|
||||||
|
|
||||||
|
|
||||||
PerfHistory.items["render"].hasNormalTick = false;
|
PerfHistory.items["render"].hasNormalTick = false;
|
||||||
PerfHistory.items["batches"].hasNormalTick = false;
|
PerfHistory.items["batches"].hasNormalTick = false;
|
||||||
PerfHistory.items["render_widgets"].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.Server.Map = WidgetUtils.ChooseInitialMap(Game.Settings.Server.Map);
|
||||||
Game.Settings.Save();
|
Game.Settings.Save();
|
||||||
Game.CreateServer(new ServerSettings(Game.Settings.Server));
|
Game.CreateServer(new ServerSettings(Game.Settings.Server));
|
||||||
while(true)
|
while (true)
|
||||||
{
|
{
|
||||||
System.Threading.Thread.Sleep(100);
|
System.Threading.Thread.Sleep(100);
|
||||||
|
|
||||||
if((server.State == Server.ServerState.GameStarted)
|
if ((server.State == Server.ServerState.GameStarted)
|
||||||
&& (server.conns.Count<=1))
|
&& (server.conns.Count<=1))
|
||||||
{
|
{
|
||||||
Console.WriteLine("No one is playing, shutting down...");
|
Console.WriteLine("No one is playing, shutting down...");
|
||||||
@@ -426,7 +425,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
public static T CreateObject<T>( string name )
|
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)
|
public static void CreateServer(ServerSettings settings)
|
||||||
|
|||||||
@@ -21,12 +21,13 @@ namespace OpenRA.Network
|
|||||||
readonly SyncReport syncReport;
|
readonly SyncReport syncReport;
|
||||||
readonly FrameData frameData = new FrameData();
|
readonly FrameData frameData = new FrameData();
|
||||||
|
|
||||||
public Session LobbyInfo = new Session( Game.Settings.Game.Mods );
|
public Session LobbyInfo = new Session(Game.Settings.Game.Mods);
|
||||||
public Session.Client LocalClient { get { return LobbyInfo.ClientWithIndex( Connection.LocalClientId ); } }
|
public Session.Client LocalClient { get { return LobbyInfo.ClientWithIndex(Connection.LocalClientId); } }
|
||||||
public World world;
|
public World world;
|
||||||
|
|
||||||
public readonly string Host;
|
public readonly string Host;
|
||||||
public readonly int Port;
|
public readonly int Port;
|
||||||
|
|
||||||
public string ServerError = "Server is not responding.";
|
public string ServerError = "Server is not responding.";
|
||||||
|
|
||||||
public int NetFrameNumber { get; private set; }
|
public int NetFrameNumber { get; private set; }
|
||||||
@@ -47,27 +48,27 @@ namespace OpenRA.Network
|
|||||||
if (GameStarted) return;
|
if (GameStarted) return;
|
||||||
|
|
||||||
NetFrameNumber = 1;
|
NetFrameNumber = 1;
|
||||||
for( int i = NetFrameNumber ; i <= FramesAhead ; i++ )
|
for (var i = NetFrameNumber ; i <= FramesAhead ; i++)
|
||||||
Connection.Send( i, new List<byte[]>() );
|
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.Host = host;
|
||||||
this.Port = port;
|
this.Port = port;
|
||||||
Connection = conn;
|
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 )
|
foreach (var order in orders)
|
||||||
IssueOrder( order );
|
IssueOrder(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void IssueOrder( Order order )
|
public void IssueOrder(Order order)
|
||||||
{
|
{
|
||||||
localOrders.Add( order );
|
localOrders.Add(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TickImmediate()
|
public void TickImmediate()
|
||||||
@@ -82,25 +83,25 @@ namespace OpenRA.Network
|
|||||||
Connection.Receive(
|
Connection.Receive(
|
||||||
( clientId, packet ) =>
|
( clientId, packet ) =>
|
||||||
{
|
{
|
||||||
var frame = BitConverter.ToInt32( packet, 0 );
|
var frame = BitConverter.ToInt32(packet, 0);
|
||||||
if( packet.Length == 5 && packet[ 4 ] == 0xBF )
|
if (packet.Length == 5 && packet[4] == 0xBF)
|
||||||
frameData.ClientQuit( clientId, frame );
|
frameData.ClientQuit(clientId, frame);
|
||||||
else if( packet.Length >= 5 && packet[ 4 ] == 0x65 )
|
else if (packet.Length >= 5 && packet[4] == 0x65)
|
||||||
CheckSync( packet );
|
CheckSync(packet);
|
||||||
else if( frame == 0 )
|
else if (frame == 0)
|
||||||
immediatePackets.Add( Pair.New( clientId, packet ) );
|
immediatePackets.Add(Pair.New(clientId, packet));
|
||||||
else
|
else
|
||||||
frameData.AddFrameOrders( clientId, frame, packet );
|
frameData.AddFrameOrders(clientId, frame, packet);
|
||||||
} );
|
} );
|
||||||
|
|
||||||
foreach( var p in immediatePackets )
|
foreach (var p in immediatePackets)
|
||||||
foreach( var o in p.Second.ToOrderList( world ) )
|
foreach (var o in p.Second.ToOrderList(world))
|
||||||
UnitOrders.ProcessOrder( this, world, p.First, o );
|
UnitOrders.ProcessOrder(this, world, p.First, o);
|
||||||
}
|
}
|
||||||
|
|
||||||
Dictionary<int, byte[]> syncForFrame = new Dictionary<int, byte[]>();
|
Dictionary<int, byte[]> syncForFrame = new Dictionary<int, byte[]>();
|
||||||
|
|
||||||
void CheckSync( byte[] packet )
|
void CheckSync(byte[] packet)
|
||||||
{
|
{
|
||||||
var frame = BitConverter.ToInt32(packet, 0);
|
var frame = BitConverter.ToInt32(packet, 0);
|
||||||
byte[] existingSync;
|
byte[] existingSync;
|
||||||
@@ -133,7 +134,7 @@ namespace OpenRA.Network
|
|||||||
|
|
||||||
void OutOfSync(int frame, int index)
|
void OutOfSync(int frame, int index)
|
||||||
{
|
{
|
||||||
var orders = frameData.OrdersForFrame( world, frame );
|
var orders = frameData.OrdersForFrame(world, frame);
|
||||||
|
|
||||||
// Invalid index
|
// Invalid index
|
||||||
if (index >= orders.Count())
|
if (index >= orders.Count())
|
||||||
@@ -154,7 +155,7 @@ namespace OpenRA.Network
|
|||||||
|
|
||||||
public bool IsReadyForNextFrame
|
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[] {};
|
static readonly IEnumerable<Session.Client> NoClients = new Session.Client[] {};
|
||||||
@@ -171,23 +172,23 @@ namespace OpenRA.Network
|
|||||||
|
|
||||||
public void Tick()
|
public void Tick()
|
||||||
{
|
{
|
||||||
if( !IsReadyForNextFrame )
|
if (!IsReadyForNextFrame)
|
||||||
throw new InvalidOperationException();
|
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();
|
localOrders.Clear();
|
||||||
|
|
||||||
var sync = new List<int>();
|
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 );
|
UnitOrders.ProcessOrder(this, world, order.Client, order.Order);
|
||||||
sync.Add( world.SyncHash() );
|
sync.Add(world.SyncHash());
|
||||||
}
|
}
|
||||||
|
|
||||||
var ss = sync.SerializeSync();
|
var ss = sync.SerializeSync();
|
||||||
Connection.SendSync( NetFrameNumber, ss );
|
Connection.SendSync(NetFrameNumber, ss);
|
||||||
|
|
||||||
syncReport.UpdateSyncReport();
|
syncReport.UpdateSyncReport();
|
||||||
|
|
||||||
|
|||||||
@@ -154,8 +154,10 @@ namespace OpenRA.Network
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "ServerError":
|
case "ServerError":
|
||||||
orderManager.ServerError = order.TargetString;
|
{
|
||||||
break;
|
orderManager.ServerError = order.TargetString;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case "SyncInfo":
|
case "SyncInfo":
|
||||||
{
|
{
|
||||||
@@ -200,13 +202,13 @@ namespace OpenRA.Network
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
if( !order.IsImmediate )
|
if (!order.IsImmediate)
|
||||||
{
|
{
|
||||||
var self = order.Subject;
|
var self = order.Subject;
|
||||||
var health = self.TraitOrDefault<Health>();
|
var health = self.TraitOrDefault<Health>();
|
||||||
if( health == null || !health.IsDead )
|
if (health == null || !health.IsDead)
|
||||||
foreach( var t in self.TraitsImplementing<IResolveOrder>() )
|
foreach (var t in self.TraitsImplementing<IResolveOrder>())
|
||||||
t.ResolveOrder( self, order );
|
t.ResolveOrder(self, order);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|
|||||||
var mapPreview = lobby.Get<MapPreviewWidget>("MAP_PREVIEW");
|
var mapPreview = lobby.Get<MapPreviewWidget>("MAP_PREVIEW");
|
||||||
mapPreview.IsVisible = () => Map != null;
|
mapPreview.IsVisible = () => Map != null;
|
||||||
mapPreview.Map = () => Map;
|
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);
|
mapPreview.SpawnClients = () => LobbyUtils.GetSpawnClients(orderManager, Map);
|
||||||
|
|
||||||
var mapTitle = lobby.GetOrNull<LabelWidget>("MAP_TITLE");
|
var mapTitle = lobby.GetOrNull<LabelWidget>("MAP_TITLE");
|
||||||
|
|||||||
Reference in New Issue
Block a user