Allow the server to ack no or multiple packets in the same frame.
This commit is contained in:
@@ -627,13 +627,14 @@ namespace OpenRA.Server
|
||||
return ms.GetBuffer();
|
||||
}
|
||||
|
||||
byte[] CreateAckFrame(int frame)
|
||||
byte[] CreateAckFrame(int frame, byte count)
|
||||
{
|
||||
var ms = new MemoryStream(13);
|
||||
ms.WriteArray(BitConverter.GetBytes(5));
|
||||
var ms = new MemoryStream(14);
|
||||
ms.WriteArray(BitConverter.GetBytes(6));
|
||||
ms.WriteArray(BitConverter.GetBytes(0));
|
||||
ms.WriteArray(BitConverter.GetBytes(frame));
|
||||
ms.WriteByte((byte)OrderType.Ack);
|
||||
ms.WriteByte(count);
|
||||
return ms.GetBuffer();
|
||||
}
|
||||
|
||||
@@ -813,7 +814,7 @@ namespace OpenRA.Server
|
||||
if (data.Length == 0 || data[0] != (byte)OrderType.SyncHash)
|
||||
{
|
||||
frame += OrderLatency;
|
||||
DispatchFrameToClient(conn, conn.PlayerIndex, CreateAckFrame(frame));
|
||||
DispatchFrameToClient(conn, conn.PlayerIndex, CreateAckFrame(frame, 1));
|
||||
|
||||
// Track the last frame for each client so the disconnect handling can write
|
||||
// an EndOfOrders marker with the correct frame number.
|
||||
|
||||
Reference in New Issue
Block a user