diff --git a/OpenRa.Game/Chrome.cs b/OpenRa.Game/Chrome.cs index c9d626ad38..06bf3bfd6c 100644 --- a/OpenRa.Game/Chrome.cs +++ b/OpenRa.Game/Chrome.cs @@ -293,8 +293,8 @@ namespace OpenRa.Game void HandleChronosphereButton() { - Sound.Play("slcttgt1.aud"); - Game.controller.ToggleInputMode(); + if (Game.controller.ToggleInputMode()) + Sound.Play("slcttgt1.aud"); } void DrawChat() diff --git a/OpenRa.Game/Controller.cs b/OpenRa.Game/Controller.cs index cbe2d35fa3..2653cc28d3 100644 --- a/OpenRa.Game/Controller.cs +++ b/OpenRa.Game/Controller.cs @@ -27,12 +27,18 @@ namespace OpenRa.Game orderGenerator = new UnitOrderGenerator(new Actor[] { }); } - public void ToggleInputMode() where T : IOrderGenerator, new() + public bool ToggleInputMode() where T : IOrderGenerator, new() { if (orderGenerator is T) + { CancelInputMode(); + return false; + } else + { orderGenerator = new T(); + return true; + } } List recentOrders = new List();