From 282b16e3fca82e302d43871c17976f6d92125818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 3 Aug 2014 14:38:47 +0200 Subject: [PATCH] disable music installation during a game closes #6058 --- OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs | 1 + OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs | 6 +++++- OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs | 6 +++++- OpenRA.Mods.RA/Widgets/Logic/MainMenuLogic.cs | 1 + OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs | 3 ++- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs index 343fbdb9d7..3826fff390 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs @@ -68,6 +68,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs() { { "onExit", () => hideButtons = false }, + { "world", world } }); }; diff --git a/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs index d9770ab592..2dd149f74d 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs @@ -67,7 +67,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic widget.Get("MUSIC").OnClick = () => { widget.Visible = false; - Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs { { "onExit", () => { widget.Visible = true; } } }); + Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs + { + { "onExit", () => { widget.Visible = true; } }, + { "world", world } + }); }; var resumeButton = widget.Get("RESUME"); diff --git a/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs index 4b089f42a1..6b463e58fa 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/LobbyLogic.cs @@ -511,7 +511,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic var musicButton = lobby.GetOrNull("MUSIC_BUTTON"); if (musicButton != null) - musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs { { "onExit", DoNothing } }); + musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs + { + { "onExit", DoNothing }, + { "world", orderManager.world } + }); var settingsButton = lobby.GetOrNull("SETTINGS_BUTTON"); if (settingsButton != null) diff --git a/OpenRA.Mods.RA/Widgets/Logic/MainMenuLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/MainMenuLogic.cs index e58e1243ca..a1175fa11a 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/MainMenuLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/MainMenuLogic.cs @@ -111,6 +111,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs { { "onExit", () => menuType = MenuType.Extras }, + { "world", world } }); }; diff --git a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs index 4896d83bed..e155941ff0 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs @@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic ScrollItemWidget itemTemplate; [ObjectCreator.UseCtor] - public MusicPlayerLogic(Widget widget, Ruleset modRules, Action onExit) + public MusicPlayerLogic(Widget widget, Ruleset modRules, World world, Action onExit) { this.modRules = modRules; @@ -84,6 +84,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic var installButton = widget.GetOrNull("INSTALL_BUTTON"); if (installButton != null) { + installButton.IsDisabled = () => !world.IsShellmap; var args = new string[] { "Launch.Window=INSTALL_MUSIC_PANEL" }; installButton.OnClick = () => {