Replace magic numbers with an OrderType enum.
This commit is contained in:
@@ -188,7 +188,7 @@ namespace OpenRA.Network
|
||||
public void DispatchOrders(Connection conn, int frame, byte[] data)
|
||||
{
|
||||
// Sync packet - we only care about the last value
|
||||
if (data.Length > 0 && data[0] == 0x65 && frame > LastSyncFrame)
|
||||
if (data.Length > 0 && data[0] == (byte)OrderType.SyncHash && frame > LastSyncFrame)
|
||||
{
|
||||
LastSyncFrame = frame;
|
||||
lastSyncPacket = data;
|
||||
|
||||
@@ -16,6 +16,13 @@ using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA
|
||||
{
|
||||
public enum OrderType : byte
|
||||
{
|
||||
SyncHash = 0x65,
|
||||
Disconnect = 0xBF,
|
||||
Fields = 0xFF
|
||||
}
|
||||
|
||||
[Flags]
|
||||
enum OrderFields : byte
|
||||
{
|
||||
@@ -68,10 +75,10 @@ namespace OpenRA
|
||||
{
|
||||
try
|
||||
{
|
||||
var magic = r.ReadByte();
|
||||
switch (magic)
|
||||
var type = (OrderType)r.ReadByte();
|
||||
switch (type)
|
||||
{
|
||||
case 0xFF:
|
||||
case OrderType.Fields:
|
||||
{
|
||||
var order = r.ReadString();
|
||||
var flags = (OrderFields)r.ReadByte();
|
||||
@@ -152,7 +159,7 @@ namespace OpenRA
|
||||
|
||||
default:
|
||||
{
|
||||
Log.Write("debug", "Received unknown order with magic {0}", magic);
|
||||
Log.Write("debug", "Received unknown order with type {0}", type);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -236,7 +243,7 @@ namespace OpenRA
|
||||
var ret = new MemoryStream(minLength);
|
||||
var w = new BinaryWriter(ret);
|
||||
|
||||
w.Write((byte)0xFF);
|
||||
w.Write((byte)OrderType.Fields);
|
||||
w.Write(OrderString);
|
||||
|
||||
var fields = OrderFields.None;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace OpenRA.Network
|
||||
var ms = new MemoryStream(1 + 4);
|
||||
using (var writer = new BinaryWriter(ms))
|
||||
{
|
||||
writer.Write((byte)0x65);
|
||||
writer.Write((byte)OrderType.SyncHash);
|
||||
writer.Write(sync);
|
||||
}
|
||||
|
||||
|
||||
@@ -123,9 +123,9 @@ namespace OpenRA.Network
|
||||
(clientId, packet) =>
|
||||
{
|
||||
var frame = BitConverter.ToInt32(packet, 0);
|
||||
if (packet.Length == 5 && packet[4] == 0xBF)
|
||||
if (packet.Length == 5 && packet[4] == (byte)OrderType.Disconnect)
|
||||
frameData.ClientQuit(clientId, frame);
|
||||
else if (packet.Length >= 5 && packet[4] == 0x65)
|
||||
else if (packet.Length >= 5 && packet[4] == (byte)OrderType.SyncHash)
|
||||
CheckSync(packet);
|
||||
else if (frame == 0)
|
||||
immediatePackets.Add(Pair.New(clientId, packet));
|
||||
|
||||
@@ -65,9 +65,9 @@ namespace OpenRA.Network
|
||||
(!lastClientsFrame.ContainsKey(client) || frame > lastClientsFrame[client]))
|
||||
lastClientsFrame[client] = frame;
|
||||
|
||||
if (packet.Length == 5 && packet[4] == 0xBF)
|
||||
if (packet.Length == 5 && packet[4] == (byte)OrderType.Disconnect)
|
||||
continue; // disconnect
|
||||
else if (packet.Length >= 5 && packet[4] == 0x65)
|
||||
else if (packet.Length >= 5 && packet[4] == (byte)OrderType.SyncHash)
|
||||
continue; // sync
|
||||
else if (frame == 0)
|
||||
{
|
||||
@@ -110,7 +110,7 @@ namespace OpenRA.Network
|
||||
continue;
|
||||
|
||||
var packet = tmpPacketPair.Second;
|
||||
if (packet.Length == 5 && packet[4] == 0xBF)
|
||||
if (packet.Length == 5 && packet[4] == (byte)OrderType.Disconnect)
|
||||
{
|
||||
var lastClientFrame = lastClientsFrame[client];
|
||||
var lastFramePacket = BitConverter.GetBytes(lastClientFrame);
|
||||
|
||||
@@ -25,9 +25,9 @@ namespace OpenRA.Network
|
||||
|
||||
static bool IsGameStart(byte[] data)
|
||||
{
|
||||
if (data.Length == 5 && data[4] == 0xbf)
|
||||
if (data.Length == 5 && data[4] == (byte)OrderType.Disconnect)
|
||||
return false;
|
||||
if (data.Length >= 5 && data[4] == 0x65)
|
||||
if (data.Length >= 5 && data[4] == (byte)OrderType.SyncHash)
|
||||
return false;
|
||||
|
||||
var frame = BitConverter.ToInt32(data, 0);
|
||||
|
||||
@@ -834,7 +834,7 @@ namespace OpenRA.Server
|
||||
}
|
||||
}
|
||||
|
||||
DispatchOrders(toDrop, toDrop.MostRecentFrame, new byte[] { 0xbf });
|
||||
DispatchOrders(toDrop, toDrop.MostRecentFrame, new[] { (byte)OrderType.Disconnect });
|
||||
|
||||
// All clients have left: clean up
|
||||
if (!Conns.Any())
|
||||
@@ -944,7 +944,7 @@ namespace OpenRA.Server
|
||||
|
||||
foreach (var c in Conns)
|
||||
foreach (var d in Conns)
|
||||
DispatchOrdersToClient(c, d.PlayerIndex, 0x7FFFFFFF, new byte[] { 0xBF });
|
||||
DispatchOrdersToClient(c, d.PlayerIndex, 0x7FFFFFFF, new[] { (byte)OrderType.Disconnect });
|
||||
|
||||
if (GameSave == null && LobbyInfo.GlobalSettings.GameSavesEnabled)
|
||||
GameSave = new GameSave();
|
||||
|
||||
Reference in New Issue
Block a user