separated 'index' from 'palette' in player

This commit is contained in:
Chris Forbes
2009-11-01 23:22:08 +13:00
parent e62a0bc717
commit 90ba576cc6
4 changed files with 7 additions and 5 deletions

View File

@@ -43,7 +43,7 @@ namespace OpenRa.Game
Rules.LoadRules(mapName); Rules.LoadRules(mapName);
for (int i = 0; i < 8; i++) 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; localPlayerIndex = localPlayer;

View File

@@ -42,7 +42,7 @@ namespace OpenRa.Game
{ {
var ret = new MemoryStream(); var ret = new MemoryStream();
var w = new BinaryWriter(ret); var w = new BinaryWriter(ret);
w.Write((uint)Player.Palette | 0x80000000u); w.Write((uint)Player.Index | 0x80000000u);
w.Write((byte)0xFF); w.Write((byte)0xFF);
w.Write(OrderString); w.Write(OrderString);
w.Write(Subject == null ? 0xFFFFFFFF : Subject.ActorID); w.Write(Subject == null ? 0xFFFFFFFF : Subject.ActorID);
@@ -61,7 +61,7 @@ namespace OpenRa.Game
{ {
if ((first >> 31) == 0) return null; 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()) switch (r.ReadByte())
{ {
case 0xFF: case 0xFF:

View File

@@ -36,7 +36,7 @@ namespace OpenRa.Game
if( savingReplay != null ) if( savingReplay != null )
savingReplay.Write( frameNumber ); 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) foreach (var order in allOrders)
{ {
UnitOrders.ProcessOrder(order); UnitOrders.ProcessOrder(order);

View File

@@ -9,9 +9,11 @@ namespace OpenRa.Game
public int Kills; public int Kills;
public string PlayerName; public string PlayerName;
public Race Race; 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.Palette = palette;
this.PlayerName = playerName; this.PlayerName = playerName;
this.Race = race; this.Race = race;