Add a Order.SyncHashOrderLength const
This commit is contained in:
@@ -188,7 +188,7 @@ namespace OpenRA.Network
|
|||||||
public void DispatchOrders(Connection conn, int frame, byte[] data)
|
public void DispatchOrders(Connection conn, int frame, byte[] data)
|
||||||
{
|
{
|
||||||
// Sync packet - we only care about the last value
|
// Sync packet - we only care about the last value
|
||||||
if (data.Length > 0 && data[0] == (byte)OrderType.SyncHash && frame > LastSyncFrame)
|
if (data.Length == Order.SyncHashOrderLength && data[0] == (byte)OrderType.SyncHash && frame > LastSyncFrame)
|
||||||
{
|
{
|
||||||
LastSyncFrame = frame;
|
LastSyncFrame = frame;
|
||||||
lastSyncPacket = data;
|
lastSyncPacket = data;
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ namespace OpenRA
|
|||||||
|
|
||||||
public sealed class Order
|
public sealed class Order
|
||||||
{
|
{
|
||||||
|
// Length of orders with type OrderType.SyncHash
|
||||||
|
public const int SyncHashOrderLength = 13;
|
||||||
|
|
||||||
public readonly string OrderString;
|
public readonly string OrderString;
|
||||||
public readonly Actor Subject;
|
public readonly Actor Subject;
|
||||||
public readonly bool Queued;
|
public readonly bool Queued;
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace OpenRA.Network
|
|||||||
|
|
||||||
public static byte[] SerializeSync(int sync, ulong defeatState)
|
public static byte[] SerializeSync(int sync, ulong defeatState)
|
||||||
{
|
{
|
||||||
var ms = new MemoryStream(1 + 4 + 8);
|
var ms = new MemoryStream(Order.SyncHashOrderLength);
|
||||||
using (var writer = new BinaryWriter(ms))
|
using (var writer = new BinaryWriter(ms))
|
||||||
{
|
{
|
||||||
writer.Write((byte)OrderType.SyncHash);
|
writer.Write((byte)OrderType.SyncHash);
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ namespace OpenRA.Network
|
|||||||
var frame = BitConverter.ToInt32(packet, 0);
|
var frame = BitConverter.ToInt32(packet, 0);
|
||||||
if (packet.Length == 5 && packet[4] == (byte)OrderType.Disconnect)
|
if (packet.Length == 5 && packet[4] == (byte)OrderType.Disconnect)
|
||||||
frameData.ClientQuit(clientId, frame);
|
frameData.ClientQuit(clientId, frame);
|
||||||
else if (packet.Length == 4 + 1 + 4 + 8 && packet[4] == (byte)OrderType.SyncHash)
|
else if (packet.Length == 4 + Order.SyncHashOrderLength && packet[4] == (byte)OrderType.SyncHash)
|
||||||
CheckSync(packet);
|
CheckSync(packet);
|
||||||
else if (frame == 0)
|
else if (frame == 0)
|
||||||
immediatePackets.Add((clientId, packet));
|
immediatePackets.Add((clientId, packet));
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ namespace OpenRA.Network
|
|||||||
|
|
||||||
if (packet.Length == 5 && packet[4] == (byte)OrderType.Disconnect)
|
if (packet.Length == 5 && packet[4] == (byte)OrderType.Disconnect)
|
||||||
continue; // disconnect
|
continue; // disconnect
|
||||||
else if (packet.Length >= 5 && packet[4] == (byte)OrderType.SyncHash)
|
else if (packet.Length == 4 + Order.SyncHashOrderLength && packet[4] == (byte)OrderType.SyncHash)
|
||||||
continue; // sync
|
continue; // sync
|
||||||
else if (frame == 0)
|
else if (frame == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace OpenRA.Network
|
|||||||
{
|
{
|
||||||
if (data.Length == 5 && data[4] == (byte)OrderType.Disconnect)
|
if (data.Length == 5 && data[4] == (byte)OrderType.Disconnect)
|
||||||
return false;
|
return false;
|
||||||
if (data.Length >= 5 && data[4] == (byte)OrderType.SyncHash)
|
if (data.Length == 4 + Order.SyncHashOrderLength && data[4] == (byte)OrderType.SyncHash)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var frame = BitConverter.ToInt32(data, 0);
|
var frame = BitConverter.ToInt32(data, 0);
|
||||||
|
|||||||
@@ -784,7 +784,7 @@ namespace OpenRA.Server
|
|||||||
{
|
{
|
||||||
recorder.ReceiveFrame(from, frame, data);
|
recorder.ReceiveFrame(from, frame, data);
|
||||||
|
|
||||||
if (data.Length == 1 + 4 + 8 && data[0] == (byte)OrderType.SyncHash)
|
if (data.Length == Order.SyncHashOrderLength && data[0] == (byte)OrderType.SyncHash)
|
||||||
HandleSyncOrder(frame, data);
|
HandleSyncOrder(frame, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user