Rendering continues while waiting for network; added "network" and "port" settings.

This commit is contained in:
Bob
2009-11-16 19:22:08 +13:00
parent a966b31b32
commit 4c2171997f
3 changed files with 77 additions and 22 deletions

View File

@@ -40,6 +40,9 @@ namespace OpenRa.Game
public static string Replay;
public static string NetworkHost;
public static int NetworkPort;
public static bool skipMakeAnims = true;
public static void Initialize(string mapName, Renderer renderer, int2 clientSize, int localPlayer)
@@ -79,9 +82,15 @@ namespace OpenRa.Game
soundEngine = new ISoundEngine();
sounds = new Cache<string, ISoundSource>(LoadSound);
orderManager = (Replay == "")
? new OrderManager(new OrderSource[] { new LocalOrderSource(), new NetworkOrderSource( new TcpClient( "127.0.0.1", 1234 ) ) }, "replay.rep")
: new OrderManager(new OrderSource[] { new ReplayOrderSource( Replay ) });
if( Replay != "" )
orderManager = new OrderManager( new OrderSource[] { new ReplayOrderSource( Replay ) } );
else
{
var orderSources = ( string.IsNullOrEmpty( NetworkHost ) )
? new OrderSource[] { new LocalOrderSource() }
: new OrderSource[] { new LocalOrderSource(), new NetworkOrderSource( new TcpClient( NetworkHost, NetworkPort ) ) };
orderManager = new OrderManager(orderSources, "replay.rep" );
}
PlaySound("intro.aud", false);
@@ -155,8 +164,9 @@ namespace OpenRa.Game
{
lastTime += timestep;
if (orderManager.Tick())
if( orderManager.IsReadyForNextFrame )
{
orderManager.Tick();
if (controller.orderGenerator != null)
controller.orderGenerator.Tick();
@@ -172,6 +182,8 @@ namespace OpenRa.Game
foreach (var player in players.Values)
player.Tick();
}
else if( orderManager.FrameNumber == 0 )
lastTime = Environment.TickCount;
}
PerfHistory.Tick();