diff --git a/OpenRA.FileFormats/Map/PlayerReference.cs b/OpenRA.FileFormats/Map/PlayerReference.cs index b102c0b04b..a6eeda80d0 100644 --- a/OpenRA.FileFormats/Map/PlayerReference.cs +++ b/OpenRA.FileFormats/Map/PlayerReference.cs @@ -23,13 +23,19 @@ namespace OpenRA.FileFormats public string Bot = null; public bool DefaultStartingUnits = false; public bool AllowBots = true; - + public bool LockRace = false; public string Race; - + public bool LockColor = false; public ColorRamp ColorRamp = new ColorRamp(0,0,238,34); - + + public bool LockSpawn = false; + public int Spawn = 0; + + public bool LockTeam = false; + public int Team = 0; + public int InitialCash = 0; public string[] Allies = {}; public string[] Enemies = {}; diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index d78ceafef4..32f753acc4 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -244,6 +244,10 @@ namespace OpenRA.Server c.ColorRamp = pr.ColorRamp; if (pr.LockRace) c.Country = pr.Race; + if (pr.LockSpawn) + c.SpawnPoint = pr.Spawn; + if (pr.LockTeam) + c.Team = pr.Team; } public void UpdateInFlightFrames(Connection conn) diff --git a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs index dfcfca1efc..05e085ae57 100644 --- a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs +++ b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs @@ -321,8 +321,8 @@ namespace OpenRA.Mods.RA.Server AllowBots = pr.AllowBots, LockRace = pr.LockRace, LockColor = pr.LockColor, - LockTeam = false, - LockSpawn = false + LockTeam = pr.LockTeam, + LockSpawn = pr.LockSpawn }; } diff --git a/mods/cnc/maps/gdi01/map.yaml b/mods/cnc/maps/gdi01/map.yaml index b029da082a..368228303b 100644 --- a/mods/cnc/maps/gdi01/map.yaml +++ b/mods/cnc/maps/gdi01/map.yaml @@ -34,6 +34,11 @@ Players: Race: gdi LockColor: True ColorRamp: 31,222,183,24 + LockTeam: True + Team: 0 + LockSpawn: True + Spawn: 0 + AllowBots: False InitialCash: 20 Allies: GoodGuy Enemies: BadGuy,Creeps