diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs index 0a89612c46..a36067a9ec 100644 --- a/OpenRa.Game/Game.cs +++ b/OpenRa.Game/Game.cs @@ -43,7 +43,7 @@ namespace OpenRa.Game Rules.LoadRules(mapName); for (int i = 0; i < 8; i++) - players.Add(i, new Player(i, string.Format("Multi{0}", i), Race.Allies)); + players.Add(i, new Player(i, i, string.Format("Multi{0}", i), Race.Allies)); localPlayerIndex = localPlayer; diff --git a/OpenRa.Game/Order.cs b/OpenRa.Game/Order.cs index 66675d2d99..e983fc3cb3 100644 --- a/OpenRa.Game/Order.cs +++ b/OpenRa.Game/Order.cs @@ -42,7 +42,7 @@ namespace OpenRa.Game { var ret = new MemoryStream(); var w = new BinaryWriter(ret); - w.Write((uint)Player.Palette | 0x80000000u); + w.Write((uint)Player.Index | 0x80000000u); w.Write((byte)0xFF); w.Write(OrderString); w.Write(Subject == null ? 0xFFFFFFFF : Subject.ActorID); @@ -61,7 +61,7 @@ namespace OpenRa.Game { if ((first >> 31) == 0) return null; - var player = Game.players.Where(x => x.Value.Palette == (first & 0x7FFFFFFF)).First().Value; + var player = Game.players.Where(x => x.Value.Index == (first & 0x7FFFFFFF)).First().Value; switch (r.ReadByte()) { case 0xFF: diff --git a/OpenRa.Game/OrderManager.cs b/OpenRa.Game/OrderManager.cs index 385ed30c5a..4a85c762dc 100755 --- a/OpenRa.Game/OrderManager.cs +++ b/OpenRa.Game/OrderManager.cs @@ -36,7 +36,7 @@ namespace OpenRa.Game if( savingReplay != null ) savingReplay.Write( frameNumber ); - var allOrders = players.SelectMany(p => p.OrdersForFrame(frameNumber)).OrderBy(o => o.Player.Palette); + var allOrders = players.SelectMany(p => p.OrdersForFrame(frameNumber)).OrderBy(o => o.Player.Index); foreach (var order in allOrders) { UnitOrders.ProcessOrder(order); diff --git a/OpenRa.Game/Player.cs b/OpenRa.Game/Player.cs index 17beb34a8f..6163c9ab3b 100644 --- a/OpenRa.Game/Player.cs +++ b/OpenRa.Game/Player.cs @@ -9,9 +9,11 @@ namespace OpenRa.Game public int Kills; public string PlayerName; public Race Race; + public readonly int Index; - public Player( int palette, string playerName, Race race ) + public Player( int index, int palette, string playerName, Race race ) { + this.Index = index; this.Palette = palette; this.PlayerName = playerName; this.Race = race;