From 7c1b753536866c5f412f11b2e9f57be5bfcf911e Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sat, 13 Feb 2010 21:26:38 +1300 Subject: [PATCH] fix another minor bug in StartGame() wrt random vs most-distant spawnpoint choice for first auto player --- OpenRa.Game/Game.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs index 3110d60ef3..ab6ffb4b90 100644 --- a/OpenRa.Game/Game.cs +++ b/OpenRa.Game/Game.cs @@ -225,11 +225,11 @@ namespace OpenRa public static void StartGame() { Game.chat.Reset(); - var available = world.Map.SpawnPoints.ToList(); - var taken = new List(); - - available.RemoveAll( p => LobbyInfo.Clients.Any( c => c.SpawnPoint != 0 - && world.Map.SpawnPoints.ElementAt( c.SpawnPoint - 1 ) == p )); + + var taken = LobbyInfo.Clients.Where(c => c.SpawnPoint != 0) + .Select(c => world.Map.SpawnPoints.ElementAt(c.SpawnPoint - 1)).ToList(); + + var available = world.Map.SpawnPoints.Except(taken).ToList(); foreach (var client in LobbyInfo.Clients) { @@ -237,7 +237,8 @@ namespace OpenRa ? ChooseSpawnPoint(available, taken) : world.Map.SpawnPoints.ElementAt(client.SpawnPoint - 1); - foreach (var ssu in world.players[client.Index].PlayerActor.traits.WithInterface()) + foreach (var ssu in world.players[client.Index].PlayerActor + .traits.WithInterface()) ssu.SpawnStartingUnits(world.players[client.Index], sp); }