From 2e1e8fd7e87ce06418d376f7b2922e057a0b2212 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 8 May 2011 21:27:44 +1200 Subject: [PATCH] Apply desat effect on ingame menu too --- OpenRA.Mods.Cnc/Widgets/CncIngameChromeLogic.cs | 4 ++++ OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs | 9 +++++++-- OpenRA.Mods.RA/DesaturatedPaletteEffect.cs | 5 ++++- mods/cnc/maps/shellmap/map.yaml | 1 - mods/cnc/rules/system.yaml | 1 + 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/OpenRA.Mods.Cnc/Widgets/CncIngameChromeLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncIngameChromeLogic.cs index 13172f744f..47598bc665 100755 --- a/OpenRA.Mods.Cnc/Widgets/CncIngameChromeLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncIngameChromeLogic.cs @@ -13,6 +13,7 @@ using OpenRA.Widgets; using System.Drawing; using System.Collections.Generic; using System; +using OpenRA.Mods.RA; namespace OpenRA.Mods.Cnc.Widgets { @@ -88,6 +89,8 @@ namespace OpenRA.Mods.Cnc.Widgets [ObjectCreator.Param] Action onExit) { menu = widget.GetWidget("INGAME_MENU"); + world.WorldActor.Trait().Active = true; + var onQuit = (Action)(() => { Game.DisconnectOnly(); @@ -109,6 +112,7 @@ namespace OpenRA.Mods.Cnc.Widgets menu.GetWidget("RESUME_BUTTON").OnClick = () => { Widget.RootWidget.RemoveChild(menu); + world.WorldActor.Trait().Active = false; onExit(); }; } diff --git a/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs index 8390345699..75bdd2299d 100755 --- a/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs @@ -17,6 +17,7 @@ using System; using System.Drawing; using System.Linq; using OpenRA.GameRules; +using OpenRA.Mods.RA; namespace OpenRA.Mods.Cnc.Widgets { @@ -32,8 +33,11 @@ namespace OpenRA.Mods.Cnc.Widgets MenuType Menu = MenuType.Main; [ObjectCreator.UseCtor] - public CncMenuLogic([ObjectCreator.Param] Widget widget) + public CncMenuLogic([ObjectCreator.Param] Widget widget, + [ObjectCreator.Param] World world) { + world.WorldActor.Trait().Active = true; + // Root level menu var mainMenu = widget.GetWidget("MAIN_MENU"); mainMenu.IsVisible = () => Menu == MenuType.Main; @@ -105,7 +109,8 @@ namespace OpenRA.Mods.Cnc.Widgets void RemoveShellmapUI() { Widget.CloseWindow(); - Widget.RootWidget.RemoveChild(Widget.RootWidget.GetWidget("MENU_BACKGROUND")); + var root = Widget.RootWidget.GetWidget("MENU_BACKGROUND"); + root.Parent.RemoveChild(root); } void OpenLobbyPanel(MenuType menu) diff --git a/OpenRA.Mods.RA/DesaturatedPaletteEffect.cs b/OpenRA.Mods.RA/DesaturatedPaletteEffect.cs index c70bf6a48e..eecc501211 100644 --- a/OpenRA.Mods.RA/DesaturatedPaletteEffect.cs +++ b/OpenRA.Mods.RA/DesaturatedPaletteEffect.cs @@ -19,9 +19,12 @@ namespace OpenRA.Mods.RA public class DesaturatedPaletteEffect : IPaletteModifier { - // Doing this every frame is stupid + public bool Active; + + // TODO: Doing this every frame is stupid public void AdjustPalette(Dictionary palettes) { + if (!Active) return; var excludePalettes = new List(){"cursor", "chrome", "colorpicker", "shroud", "fog"}; foreach (var pal in palettes) { diff --git a/mods/cnc/maps/shellmap/map.yaml b/mods/cnc/maps/shellmap/map.yaml index b61b853892..b39c46446f 100755 --- a/mods/cnc/maps/shellmap/map.yaml +++ b/mods/cnc/maps/shellmap/map.yaml @@ -1013,7 +1013,6 @@ Rules: -MPStartLocations: -CrateSpawner: CncShellmapScript: - DesaturatedPaletteEffect: LoadWidgetAtGameStart: Widget:MENU_BACKGROUND LST: diff --git a/mods/cnc/rules/system.yaml b/mods/cnc/rules/system.yaml index 9876335de6..cf57aafd37 100644 --- a/mods/cnc/rules/system.yaml +++ b/mods/cnc/rules/system.yaml @@ -46,6 +46,7 @@ Player: World: LoadWidgetAtGameStart: Widget: INGAME_ROOT + DesaturatedPaletteEffect: ScreenShaker: NukePaletteEffect: CncWaterPaletteRotation: