From 3b72af2e9b00d3f849eaef354e7814d35fc9e76d Mon Sep 17 00:00:00 2001 From: alzeih Date: Sat, 24 Jul 2010 17:57:54 +1200 Subject: [PATCH] AllowCheats --- OpenRA.FileFormats/Session.cs | 1 + OpenRA.Game/Game.cs | 1 + OpenRA.Game/Server/Server.cs | 3 ++- .../Widgets/Delegates/CreateServerMenuDelegate.cs | 2 +- .../Widgets/Delegates/DeveloperModeDelegate.cs | 15 +++++++++++---- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/OpenRA.FileFormats/Session.cs b/OpenRA.FileFormats/Session.cs index ec5b33f993..1699ca96de 100644 --- a/OpenRA.FileFormats/Session.cs +++ b/OpenRA.FileFormats/Session.cs @@ -47,6 +47,7 @@ namespace OpenRA.FileFormats public int OrderLatency = 3; public int RandomSeed = 0; public bool LockTeams = false; // don't allow team changes after game start. + public bool AllowCheats = false; } } diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index bdddf25f13..8d81fdbc0d 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -162,6 +162,7 @@ namespace OpenRA CurrentPort = port; orderManager = new OrderManager(new NetworkConnection(host, port), ChooseReplayFilename()); + Game.Settings.DeveloperMode = LobbyInfo.GlobalSettings.AllowCheats; } static string ChooseReplayFilename() diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 859f28eec0..60111cc633 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -45,7 +45,7 @@ namespace OpenRA.Server static string masterServerUrl; static bool isInitialPing; - public static void ServerMain(bool internetServer, string masterServerUrl, string name, int port, int extport, string[] mods, string map) + public static void ServerMain(bool internetServer, string masterServerUrl, string name, int port, int extport, string[] mods, string map, bool cheats) { isInitialPing = true; Server.masterServerUrl = masterServerUrl; @@ -59,6 +59,7 @@ namespace OpenRA.Server lobbyInfo.GlobalSettings.Mods = mods; lobbyInfo.GlobalSettings.RandomSeed = randomSeed; lobbyInfo.GlobalSettings.Map = map; + lobbyInfo.GlobalSettings.AllowCheats = cheats; Console.WriteLine("Initial mods: "); foreach( var m in lobbyInfo.GlobalSettings.Mods ) diff --git a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs index 2d0ecff83f..94497f2495 100644 --- a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs @@ -44,7 +44,7 @@ namespace OpenRA.Widgets.Delegates Game.Settings.Save(); Server.Server.ServerMain(Game.Settings.AdvertiseOnline, Game.Settings.MasterServer, Game.Settings.LastServerTitle, - Game.Settings.ListenPort, Game.Settings.ExternalPort, mods, map); + Game.Settings.ListenPort, Game.Settings.ExternalPort, mods, map, Game.Settings.DeveloperMode); Game.JoinServer(IPAddress.Loopback.ToString(), Game.Settings.ListenPort); return true; diff --git a/OpenRA.Game/Widgets/Delegates/DeveloperModeDelegate.cs b/OpenRA.Game/Widgets/Delegates/DeveloperModeDelegate.cs index 960f7b0486..f4aeb432d9 100644 --- a/OpenRA.Game/Widgets/Delegates/DeveloperModeDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/DeveloperModeDelegate.cs @@ -44,6 +44,7 @@ namespace OpenRA.Widgets.Delegates () => Game.world.LocalPlayer.Shroud.Disabled; devmodeBG.GetWidget("SETTINGS_CHECKBOX_SHROUD").OnMouseDown = mi => { + if (!Game.LobbyInfo.GlobalSettings.AllowCheats) return true; Game.world.LocalPlayer.Shroud.Disabled ^= true; TriggerCheatingMessage(); return true; @@ -51,7 +52,9 @@ namespace OpenRA.Widgets.Delegates devmodeBG.GetWidget("SETTINGS_CHECKBOX_UNITDEBUG").Checked = () => {return Game.Settings.UnitDebug;}; - devmodeBG.GetWidget("SETTINGS_CHECKBOX_UNITDEBUG").OnMouseDown = mi => { + devmodeBG.GetWidget("SETTINGS_CHECKBOX_UNITDEBUG").OnMouseDown = mi => + { + if (!Game.LobbyInfo.GlobalSettings.AllowCheats) return true; Game.Settings.UnitDebug ^= true; TriggerCheatingMessage(); return true; @@ -59,7 +62,9 @@ namespace OpenRA.Widgets.Delegates devmodeBG.GetWidget("SETTINGS_CHECKBOX_PATHDEBUG").Checked = () => {return Game.Settings.PathDebug;}; - devmodeBG.GetWidget("SETTINGS_CHECKBOX_PATHDEBUG").OnMouseDown = mi => { + devmodeBG.GetWidget("SETTINGS_CHECKBOX_PATHDEBUG").OnMouseDown = mi => + { + if (!Game.LobbyInfo.GlobalSettings.AllowCheats) return true; Game.Settings.PathDebug ^= true; TriggerCheatingMessage(); return true; @@ -67,7 +72,9 @@ namespace OpenRA.Widgets.Delegates devmodeBG.GetWidget("SETTINGS_CHECKBOX_INDEXDEBUG").Checked = () => {return Game.Settings.IndexDebug;}; - devmodeBG.GetWidget("SETTINGS_CHECKBOX_INDEXDEBUG").OnMouseDown = mi => { + devmodeBG.GetWidget("SETTINGS_CHECKBOX_INDEXDEBUG").OnMouseDown = mi => + { + if (!Game.LobbyInfo.GlobalSettings.AllowCheats) return true; Game.Settings.IndexDebug ^= true; TriggerCheatingMessage(); return true; @@ -101,7 +108,7 @@ namespace OpenRA.Widgets.Delegates void TriggerCheatingMessage() { - var order = Order.Chat("I used a developer mode option that is considered a cheat!".F(Game.world.LocalPlayer.PlayerName.ToString())); + var order = Order.Chat("I used a developer mode option"); Game.IssueOrder(order); } }