start breaking things

This commit is contained in:
Chris Forbes
2010-08-23 21:21:03 +12:00
parent 825743b225
commit 16402f26fe
5 changed files with 25 additions and 7 deletions

View File

@@ -18,7 +18,8 @@ namespace OpenRA.FileFormats
public string Palette; public string Palette;
public string Race; public string Race;
public bool OwnsWorld = false; public bool OwnsWorld = false;
public bool NonCombatant = false; public bool NonCombatant = false;
public bool Playable = false;
public Color Color = Color.FromArgb(238,238,238); public Color Color = Color.FromArgb(238,238,238);
public Color Color2 = Color.FromArgb(44,28,24); public Color Color2 = Color.FromArgb(44,28,24);

View File

@@ -43,6 +43,7 @@ namespace OpenRA.Network
public int Index; public int Index;
public string Bot; // trait name of the bot to initialize in this slot, or null otherwise. public string Bot; // trait name of the bot to initialize in this slot, or null otherwise.
public bool Closed; // host has explicitly closed this slot. public bool Closed; // host has explicitly closed this slot.
public string MapPlayer; // playerReference to bind against.
// todo: more stuff? // todo: more stuff?
} }

View File

@@ -115,9 +115,25 @@ namespace OpenRA.Server
} ) { IsBackground = true }.Start(); } ) { IsBackground = true }.Start();
} }
static Session.Slot MakeSlotFromPlayerReference(PlayerReference pr)
{
if (!pr.Playable) return null;
return new Session.Slot
{
MapPlayer = pr.Name,
Bot = null, /* todo: allow the map to specify a bot class? */
Closed = false,
};
}
static void LoadMap() static void LoadMap()
{ {
Map = new Map(ModData.AvailableMaps[lobbyInfo.GlobalSettings.Map].Package); Map = new Map(ModData.AvailableMaps[lobbyInfo.GlobalSettings.Map].Package);
lobbyInfo.Slots = Map.Players
.Select(p => MakeSlotFromPlayerReference(p.Value))
.Where(s => s != null)
.Select((s, i) => { s.Index = i; return s; })
.ToList();
} }
static int ChooseFreePlayerIndex() static int ChooseFreePlayerIndex()
@@ -423,7 +439,9 @@ namespace OpenRA.Server
}; };
} }
break; break;
case "Chat": case "TeamChat":
case "Chat":
case "TeamChat":
foreach (var c in conns.Except(conn).ToArray()) foreach (var c in conns.Except(conn).ToArray())
DispatchOrdersToClient(c, GetClient(conn).Index, 0, so.Serialize()); DispatchOrdersToClient(c, GetClient(conn).Index, 0, so.Serialize());
break; break;

View File

@@ -8,8 +8,7 @@
*/ */
#endregion #endregion
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using OpenRA.Traits; using OpenRA.Traits;
namespace OpenRA.Mods.RA namespace OpenRA.Mods.RA

View File

@@ -6,9 +6,8 @@
* as published by the Free Software Foundation. For more information, * as published by the Free Software Foundation. For more information,
* see LICENSE. * see LICENSE.
*/ */
#endregion #endregion
using System.Collections.Generic;
using System.Linq; using System.Linq;
using OpenRA.Traits; using OpenRA.Traits;