diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs index 458746cf5a..bc1bd8a468 100644 --- a/OpenRa.Game/Game.cs +++ b/OpenRa.Game/Game.cs @@ -61,8 +61,11 @@ namespace OpenRa.Game for (int i = 0; i < 8; i++) { + var race = players.ContainsKey(i) ? players[i].Race : Race.Allies; + var name = players.ContainsKey(i) ? players[i].PlayerName : "Player {0}".F(i+1); + var a = new Actor(null, new int2(int.MaxValue, int.MaxValue), null); - players[i] = new Player(a, i, i, "Multi{0}".F(i), Race.Allies); + players[i] = new Player(a, i, i, name, race, "Multi{0}".F(i)); a.Owner = players[i]; a.traits.Add(new Traits.ProductionQueue(a)); Game.world.Add(a); @@ -133,7 +136,7 @@ namespace OpenRa.Game var parts = s.Value.Split( ',' ); var loc = int.Parse(parts[3]); world.Add(new Actor(Rules.UnitInfo[parts[1].ToLowerInvariant()], new int2(loc % 128, loc / 128), - players.Values.FirstOrDefault(p => p.PlayerName == parts[0]) ?? players[0])); + players.Values.FirstOrDefault(p => p.InternalName == parts[0]) ?? players[0])); } } diff --git a/OpenRa.Game/Player.cs b/OpenRa.Game/Player.cs index a175b27af7..55c9a039d1 100644 --- a/OpenRa.Game/Player.cs +++ b/OpenRa.Game/Player.cs @@ -14,6 +14,7 @@ namespace OpenRa.Game public int Palette; public int Kills; public string PlayerName; + public string InternalName; public Race Race; public readonly int Index; public int Cash; @@ -25,11 +26,12 @@ namespace OpenRa.Game public bool IsReady; - public Player( Actor playerActor, int index, int palette, string playerName, Race race ) + public Player( Actor playerActor, int index, int palette, string playerName, Race race, string internalName ) { this.PlayerActor = playerActor; this.Index = index; this.Palette = palette; + this.InternalName = internalName; this.PlayerName = playerName; this.Race = race; this.Cash = 10000;