convert Map.SpawnPoints to int2[]; tidy

This commit is contained in:
Chris Forbes
2011-10-18 20:34:00 +13:00
parent 0f7a744ef7
commit 59fdceb4fd
7 changed files with 23 additions and 14 deletions

View File

@@ -29,8 +29,8 @@ namespace OpenRA.Mods.RA
public void WorldLoaded(World world)
{
var taken = world.LobbyInfo.Clients.Where(c => c.SpawnPoint != 0 && c.Slot != null)
.Select(c => world.Map.SpawnPoints.ElementAt(c.SpawnPoint - 1)).ToList();
var available = world.Map.SpawnPoints.Except(taken).ToList();
.Select(c => world.Map.GetSpawnPoints()[c.SpawnPoint-1]).ToList();
var available = world.Map.GetSpawnPoints().Except(taken).ToList();
// Set spawn
foreach (var kv in world.LobbyInfo.Slots)
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA
var client = world.LobbyInfo.ClientInSlot(kv.Key);
var spid = (client == null || client.SpawnPoint == 0)
? ChooseSpawnPoint(world, available, taken)
: world.Map.SpawnPoints.ElementAt(client.SpawnPoint - 1);
: world.Map.GetSpawnPoints()[client.SpawnPoint-1];
Start.Add(player, spid);
}

View File

@@ -381,7 +381,7 @@ namespace OpenRA.Mods.RA.Server
return true;
int spawnPoint;
if (!int.TryParse(parts[1], out spawnPoint) || spawnPoint < 0 || spawnPoint > server.Map.SpawnPoints.Count())
if (!int.TryParse(parts[1], out spawnPoint) || spawnPoint < 0 || spawnPoint > server.Map.GetSpawnPoints().Length)
{
Log.Write("server", "Invalid spawn point: {0}", parts[1]);
return true;

View File

@@ -70,7 +70,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
|| orderManager.LocalClient.State == Session.ClientState.Ready)
return;
var p = map.SpawnPoints
var p = map.GetSpawnPoints()
.Select((sp, i) => Pair.New(mapPreview.ConvertToPreview(map, sp), i))
.Where(a => (a.First - mi.Location).LengthSquared < 64)
.Select(a => a.Second + 1)

View File

@@ -97,7 +97,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
return item;
};
var options = Graphics.Util.MakeArray(map.SpawnPoints.Count() + 1, i => i).ToList();
var options = Graphics.Util.MakeArray(map.GetSpawnPoints().Length + 1, i => i).ToList();
dropdown.ShowDropDown("TEAM_DROPDOWN_TEMPLATE", 150, options, setupItem);
}
@@ -121,10 +121,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public static Dictionary<int2, Color> GetSpawnColors(OrderManager orderManager, Map map)
{
var spawns = map.GetSpawnPoints();
return orderManager.LobbyInfo.Clients
.Where( c => c.SpawnPoint != 0 )
.ToDictionary(
c => Map.SpawnPoints.ElementAt( c.SpawnPoint - 1 ),
c => spawns[c.SpawnPoint - 1],
c => c.ColorRamp.GetColor(0));
}
}