diff --git a/OpenRA.Server/Server.cs b/OpenRA.Server/Server.cs index 45983d2f0a..3b47febc5c 100644 --- a/OpenRA.Server/Server.cs +++ b/OpenRA.Server/Server.cs @@ -135,7 +135,7 @@ namespace OpenRA.Server }; DispatchOrdersToClient(c, 0, 0, - new ServerOrder(0, "FileChunk", + new ServerOrder("FileChunk", FieldSaver.Save(chunk).Nodes.WriteToString()).Serialize()); } @@ -350,12 +350,12 @@ namespace OpenRA.Server static void SendChatTo(Connection conn, string text) { DispatchOrdersToClient(conn, 0, 0, - new ServerOrder(-1, "Chat", text).Serialize()); + new ServerOrder("Chat", text).Serialize()); } static void SendChat(Connection asConn, string text) { - DispatchOrders(null, 0, new ServerOrder(-1, "Chat", text).Serialize()); + DispatchOrders(null, 0, new ServerOrder("Chat", text).Serialize()); } static void InterpretServerOrder(Connection conn, ServerOrder so) @@ -383,7 +383,7 @@ namespace OpenRA.Server Console.WriteLine("All players are ready. Starting the game!"); GameStarted = true; DispatchOrders(null, 0, - new ServerOrder(0, "StartGame", "").Serialize()); + new ServerOrder("StartGame", "").Serialize()); } } break; @@ -483,7 +483,7 @@ namespace OpenRA.Server clientData["GlobalSettings"] = FieldSaver.Save(lobbyInfo.GlobalSettings); DispatchOrders(null, 0, - new ServerOrder(0, "SyncInfo", clientData.WriteToString()).Serialize()); + new ServerOrder("SyncInfo", clientData.WriteToString()).Serialize()); } } } diff --git a/OpenRA.Server/ServerOrder.cs b/OpenRA.Server/ServerOrder.cs index 6e11eb43cd..218828288f 100644 --- a/OpenRA.Server/ServerOrder.cs +++ b/OpenRA.Server/ServerOrder.cs @@ -5,13 +5,11 @@ namespace OpenRA.Server { class ServerOrder { - public readonly int PlayerId; public readonly string Name; public readonly string Data; - public ServerOrder(int playerId, string name, string data) + public ServerOrder(string name, string data) { - PlayerId = playerId; Name = name; Data = data; } @@ -27,11 +25,10 @@ namespace OpenRA.Server case 0xfe: { - var playerID = r.ReadInt32(); var name = r.ReadString(); var data = r.ReadString(); - return new ServerOrder(playerID, name, data); + return new ServerOrder(name, data); } default: @@ -45,7 +42,6 @@ namespace OpenRA.Server var bw = new BinaryWriter(ms); bw.Write((byte)0xfe); - bw.Write(PlayerId); bw.Write(Name); bw.Write(Data); return ms.ToArray(); diff --git a/OpenRa.FileFormats/ProtocolVersion.cs b/OpenRa.FileFormats/ProtocolVersion.cs index 8d0eef523c..24f01240a8 100644 --- a/OpenRa.FileFormats/ProtocolVersion.cs +++ b/OpenRa.FileFormats/ProtocolVersion.cs @@ -8,6 +8,6 @@ namespace OpenRa.FileFormats public static class ProtocolVersion { // you *must* increment this whenever you make an incompatible protocol change - public static readonly int Version = 1; + public static readonly int Version = 2; } } diff --git a/OpenRa.Game/Network/Order.cs b/OpenRa.Game/Network/Order.cs index 9a29e14327..be0f16eab8 100755 --- a/OpenRa.Game/Network/Order.cs +++ b/OpenRa.Game/Network/Order.cs @@ -47,7 +47,6 @@ namespace OpenRa var ret = new MemoryStream(); var w = new BinaryWriter(ret); w.Write((byte)0xfe); - w.Write(Subject == null ? uint.MaxValue : (uint)Player.Index); w.Write(OrderString); w.Write(TargetString); return ret.ToArray(); @@ -109,13 +108,10 @@ namespace OpenRa case 0xfe: { - var playerID = r.ReadUInt32(); var name = r.ReadString(); var data = r.ReadString(); - var player = (playerID == uint.MaxValue) ? null : LookupPlayer( world, playerID ).PlayerActor; - - return new Order( name, player, data ) { IsImmediate = true }; + return new Order( name, null, data ) { IsImmediate = true }; } default: diff --git a/OpenRa.Game/Network/UnitOrders.cs b/OpenRa.Game/Network/UnitOrders.cs index d951986b81..7c356487f1 100755 --- a/OpenRa.Game/Network/UnitOrders.cs +++ b/OpenRa.Game/Network/UnitOrders.cs @@ -38,8 +38,9 @@ namespace OpenRa.Network default: { - foreach (var t in order.Subject.traits.WithInterface()) - t.ResolveOrder(order.Subject, order); + if( !order.IsImmediate ) + foreach (var t in order.Subject.traits.WithInterface()) + t.ResolveOrder(order.Subject, order); break; } }