Stylecop ReplayConnection.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
#region Copyright & License Information
|
#region Copyright & License Information
|
||||||
/*
|
/*
|
||||||
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
|
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
* available to you under the terms of the GNU General Public License
|
* available to you under the terms of the GNU General Public License
|
||||||
* as published by the Free Software Foundation. For more information,
|
* as published by the Free Software Foundation. For more information,
|
||||||
@@ -19,41 +19,45 @@ namespace OpenRA.Network
|
|||||||
FileStream replayStream;
|
FileStream replayStream;
|
||||||
List<byte[]> sync = new List<byte[]>();
|
List<byte[]> sync = new List<byte[]>();
|
||||||
|
|
||||||
public ReplayConnection( string replayFilename ) { replayStream = File.OpenRead( replayFilename ); }
|
|
||||||
|
|
||||||
public int LocalClientId { get { return 0; } }
|
public int LocalClientId { get { return 0; } }
|
||||||
public ConnectionState ConnectionState { get { return ConnectionState.Connected; } }
|
public ConnectionState ConnectionState { get { return ConnectionState.Connected; } }
|
||||||
|
|
||||||
// do nothing; ignore locally generated orders
|
public ReplayConnection(string replayFilename)
|
||||||
public void Send( int frame, List<byte[]> orders ) { }
|
|
||||||
public void SendImmediate( List<byte[]> orders ) { }
|
|
||||||
|
|
||||||
public void SendSync( int frame, byte[] syncData )
|
|
||||||
{
|
{
|
||||||
var ms = new MemoryStream();
|
replayStream = File.OpenRead(replayFilename);
|
||||||
ms.Write( BitConverter.GetBytes( frame ) );
|
|
||||||
ms.Write( syncData );
|
|
||||||
sync.Add( ms.ToArray() );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Receive( Action<int, byte[]> packetFn )
|
// do nothing; ignore locally generated orders
|
||||||
|
public void Send(int frame, List<byte[]> orders) { }
|
||||||
|
public void SendImmediate(List<byte[]> orders) { }
|
||||||
|
|
||||||
|
public void SendSync(int frame, byte[] syncData)
|
||||||
{
|
{
|
||||||
while( sync.Count != 0 )
|
var ms = new MemoryStream();
|
||||||
|
ms.Write(BitConverter.GetBytes(frame));
|
||||||
|
ms.Write(syncData);
|
||||||
|
sync.Add(ms.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Receive(Action<int, byte[]> packetFn)
|
||||||
|
{
|
||||||
|
while (sync.Count != 0)
|
||||||
{
|
{
|
||||||
packetFn( LocalClientId, sync[ 0 ] );
|
packetFn(LocalClientId, sync[0]);
|
||||||
sync.RemoveAt( 0 );
|
sync.RemoveAt(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( replayStream == null ) return;
|
if (replayStream == null)
|
||||||
|
return;
|
||||||
|
|
||||||
var reader = new BinaryReader( replayStream );
|
var reader = new BinaryReader(replayStream);
|
||||||
|
|
||||||
while( replayStream.Position < replayStream.Length )
|
while (replayStream.Position < replayStream.Length)
|
||||||
{
|
{
|
||||||
var client = reader.ReadInt32();
|
var client = reader.ReadInt32();
|
||||||
var packetLen = reader.ReadInt32();
|
var packetLen = reader.ReadInt32();
|
||||||
var packet = reader.ReadBytes( packetLen );
|
var packet = reader.ReadBytes(packetLen);
|
||||||
packetFn( client, packet );
|
packetFn(client, packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
replayStream = null;
|
replayStream = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user