provide a way to grab the laggy clients
This commit is contained in:
@@ -34,12 +34,17 @@ namespace OpenRA.Network
|
|||||||
frameData.Add( clientId, orders );
|
frameData.Add( clientId, orders );
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsReadyForFrame( int frame )
|
public bool IsReadyForFrame(int frame)
|
||||||
{
|
{
|
||||||
var frameData = framePackets.GetOrAdd( frame );
|
return !ClientsNotReadyForFrame(frame).Any();
|
||||||
return ClientsPlayingInFrame( frame )
|
}
|
||||||
.All( client => frameData.ContainsKey( client ) );
|
|
||||||
}
|
public IEnumerable<int> ClientsNotReadyForFrame(int frame)
|
||||||
|
{
|
||||||
|
var frameData = framePackets.GetOrAdd(frame);
|
||||||
|
return ClientsPlayingInFrame(frame)
|
||||||
|
.Where(client => !frameData.ContainsKey(client));
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<ClientOrder> OrdersForFrame( World world, int frame )
|
public IEnumerable<ClientOrder> OrdersForFrame( World world, int frame )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -155,7 +155,19 @@ 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[] {};
|
||||||
|
public IEnumerable<Session.Client> GetClientsNotReadyForNextFrame
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return NetFrameNumber >= 1
|
||||||
|
? frameData.ClientsNotReadyForFrame(NetFrameNumber)
|
||||||
|
.Select(a => LobbyInfo.ClientWithIndex(a))
|
||||||
|
: NoClients;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Tick()
|
public void Tick()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user