Extract OrderIO.SerializeOrders helper.
Note: This changes immediate orders to no longer be individually framed in their own packets.
This commit is contained in:
@@ -52,22 +52,12 @@ namespace OpenRA.Network
|
||||
|
||||
public virtual void Send(int frame, IEnumerable<Order> orders)
|
||||
{
|
||||
var ms = new MemoryStream();
|
||||
ms.WriteArray(BitConverter.GetBytes(frame));
|
||||
foreach (var o in orders)
|
||||
ms.WriteArray(o.Serialize());
|
||||
Send(ms.ToArray());
|
||||
Send(OrderIO.SerializeOrders(frame, orders));
|
||||
}
|
||||
|
||||
public virtual void SendImmediate(IEnumerable<Order> orders)
|
||||
{
|
||||
foreach (var o in orders)
|
||||
{
|
||||
var ms = new MemoryStream();
|
||||
ms.WriteArray(BitConverter.GetBytes(0));
|
||||
ms.WriteArray(o.Serialize());
|
||||
Send(ms.ToArray());
|
||||
}
|
||||
Send(OrderIO.SerializeOrders(0, orders));
|
||||
}
|
||||
|
||||
public virtual void SendSync(int frame, int syncHash, ulong defeatState)
|
||||
|
||||
@@ -79,6 +79,15 @@ namespace OpenRA.Network
|
||||
return ms.GetBuffer();
|
||||
}
|
||||
|
||||
public static byte[] SerializeOrders(int frame, IEnumerable<Order> orders)
|
||||
{
|
||||
var ms = new MemoryStream();
|
||||
ms.WriteArray(BitConverter.GetBytes(frame));
|
||||
foreach (var o in orders)
|
||||
ms.WriteArray(o.Serialize());
|
||||
return ms.ToArray();
|
||||
}
|
||||
|
||||
public static bool TryParseDisconnect(byte[] packet, out int clientId)
|
||||
{
|
||||
if (packet.Length == Order.DisconnectOrderLength + 4 && packet[4] == (byte)OrderType.Disconnect)
|
||||
|
||||
Reference in New Issue
Block a user