Revert client colours to their preferred colours after the map is changed to a map which doesn't lock colours.

This commit is contained in:
Scott_NZ
2013-03-02 16:18:09 +13:00
parent 46f4685eec
commit 63467cd000
4 changed files with 8 additions and 3 deletions

View File

@@ -42,7 +42,9 @@ namespace OpenRA.Network
public class Client public class Client
{ {
public int Index; public int Index;
public ColorRamp ColorRamp; public ColorRamp PreferredColorRamp; // Color that the client normally uses from settings.yaml.
public ColorRamp ColorRamp; // Actual color that the client is using.
// Usually the same as PreferredColorRamp but can be different on maps with locked colors.
public string Country; public string Country;
public int SpawnPoint; public int SpawnPoint;
public string Name; public string Name;

View File

@@ -119,6 +119,7 @@ namespace OpenRA.Network
var info = new Session.Client() var info = new Session.Client()
{ {
Name = Game.Settings.Player.Name, Name = Game.Settings.Player.Name,
PreferredColorRamp = Game.Settings.Player.ColorRamp,
ColorRamp = Game.Settings.Player.ColorRamp, ColorRamp = Game.Settings.Player.ColorRamp,
Country = "random", Country = "random",
SpawnPoint = 0, SpawnPoint = 0,

View File

@@ -374,6 +374,8 @@ namespace OpenRA.Server
return; return;
if (pr.LockColor) if (pr.LockColor)
c.ColorRamp = pr.ColorRamp; c.ColorRamp = pr.ColorRamp;
else
c.ColorRamp = c.PreferredColorRamp;
if (pr.LockRace) if (pr.LockRace)
c.Country = pr.Race; c.Country = pr.Race;
if (pr.LockSpawn) if (pr.LockSpawn)

View File

@@ -230,7 +230,7 @@ namespace OpenRA.Mods.RA.Server
var hue = (byte)server.Random.Next(255); var hue = (byte)server.Random.Next(255);
var sat = (byte)server.Random.Next(255); var sat = (byte)server.Random.Next(255);
var lum = (byte)server.Random.Next(51,255); var lum = (byte)server.Random.Next(51,255);
bot.ColorRamp = new ColorRamp(hue, sat, lum, 10); bot.ColorRamp = bot.PreferredColorRamp = new ColorRamp(hue, sat, lum, 10);
server.lobbyInfo.Clients.Add(bot); server.lobbyInfo.Clients.Add(bot);
} }
@@ -472,7 +472,7 @@ namespace OpenRA.Mods.RA.Server
return true; return true;
var ci = parts[1].Split(',').Select(cc => int.Parse(cc)).ToArray(); var ci = parts[1].Split(',').Select(cc => int.Parse(cc)).ToArray();
targetClient.ColorRamp = new ColorRamp((byte)ci[0], (byte)ci[1], (byte)ci[2], (byte)ci[3]); targetClient.ColorRamp = targetClient.PreferredColorRamp = new ColorRamp((byte)ci[0], (byte)ci[1], (byte)ci[2], (byte)ci[3]);
server.SyncLobbyInfo(); server.SyncLobbyInfo();
return true; return true;
}} }}