make GetSpawnOccupants more robust against invalid list queries

fixes #5588
This commit is contained in:
Matthias Mailänder
2014-07-02 12:29:19 +02:00
parent b8756d9de7
commit 5a891daa59

View File

@@ -150,14 +150,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
var spawns = preview.SpawnPoints; var spawns = preview.SpawnPoints;
return lobbyInfo.Clients return lobbyInfo.Clients
.Where(c => c.SpawnPoint != 0) .Where(c => (c.SpawnPoint - 1 >= 0) && (c.SpawnPoint - 1 < spawns.Count))
.ToDictionary(c => spawns[c.SpawnPoint - 1], c => new SpawnOccupant(c)); .ToDictionary(c => spawns[c.SpawnPoint - 1], c => new SpawnOccupant(c));
} }
public static Dictionary<CPos, SpawnOccupant> GetSpawnOccupants(IEnumerable<GameInformation.Player> players, MapPreview preview) public static Dictionary<CPos, SpawnOccupant> GetSpawnOccupants(IEnumerable<GameInformation.Player> players, MapPreview preview)
{ {
var spawns = preview.SpawnPoints; var spawns = preview.SpawnPoints;
return players return players
.Where(c => c.SpawnPoint != 0) .Where(c => (c.SpawnPoint - 1 >= 0) && (c.SpawnPoint - 1 < spawns.Count))
.ToDictionary(c => spawns[c.SpawnPoint - 1], c => new SpawnOccupant(c)); .ToDictionary(c => spawns[c.SpawnPoint - 1], c => new SpawnOccupant(c));
} }