diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index d786cb0308..f8f6190e61 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -32,14 +32,8 @@ namespace OpenRA public static MouseButtonPreference mouseButtonPreference = new MouseButtonPreference(); public static ModData modData; - static WorldRenderer worldRenderer; - public static float Zoom - { - get { return worldRenderer.Viewport.Zoom; } - set { worldRenderer.Viewport.Zoom = value; } - } - public static Settings Settings; + static WorldRenderer worldRenderer; internal static OrderManager orderManager; static Server.Server server; @@ -141,7 +135,7 @@ namespace OpenRA // worldRenderer is null during the initial install/download screen if (worldRenderer != null) { - Game.Renderer.BeginFrame(worldRenderer.Viewport.TopLeft.ToFloat2(), Zoom); + Game.Renderer.BeginFrame(worldRenderer.Viewport.TopLeft.ToFloat2(), worldRenderer.Viewport.Zoom); Sound.SetListenerPosition(worldRenderer.Position(worldRenderer.Viewport.CenterLocation)); worldRenderer.Draw(); } diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs index dac3ed06ab..abda62714f 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs @@ -15,6 +15,7 @@ using System.Linq; using OpenRA.FileFormats; using OpenRA.FileFormats.Graphics; using OpenRA.GameRules; +using OpenRA.Graphics; using OpenRA.Mods.RA; using OpenRA.Mods.RA.Widgets; using OpenRA.Mods.RA.Widgets.Logic; @@ -32,7 +33,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic World world; [ObjectCreator.UseCtor] - public CncSettingsLogic(Widget widget, World world, Action onExit) + public CncSettingsLogic(Widget widget, World world, Action onExit, WorldRenderer worldRenderer) { this.world = world; var panel = widget.Get("SETTINGS_PANEL"); @@ -90,7 +91,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic pixelDoubleCheckbox.OnClick = () => { graphicsSettings.PixelDouble ^= true; - Game.Zoom = graphicsSettings.PixelDouble ? 2 : 1; + worldRenderer.Viewport.Zoom = graphicsSettings.PixelDouble ? 2 : 1; }; var showShellmapCheckbox = generalPane.Get("SHOW_SHELLMAP"); diff --git a/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs index fd0655034f..aebc308fe8 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/IngameMenuLogic.cs @@ -9,6 +9,7 @@ #endregion using System; +using OpenRA.Graphics; using OpenRA.Widgets; namespace OpenRA.Mods.RA.Widgets.Logic @@ -16,18 +17,24 @@ namespace OpenRA.Mods.RA.Widgets.Logic class IngameMenuLogic { [ObjectCreator.UseCtor] - public IngameMenuLogic(Widget widget, World world, Action onExit) + public IngameMenuLogic(Widget widget, World world, Action onExit, WorldRenderer worldRenderer) { widget.Get("DISCONNECT").OnClick = () => { onExit(); LeaveGame(world); }; + widget.Get("SETTINGS").OnClick = () => { widget.Visible = false; - Ui.OpenWindow("SETTINGS_MENU", new WidgetArgs { { "onExit", () => { widget.Visible = true; } } }); + Ui.OpenWindow("SETTINGS_MENU", new WidgetArgs() + { + { "onExit", () => widget.Visible = true }, + { "worldRenderer", worldRenderer }, + }); }; + widget.Get("MUSIC").OnClick = () => { widget.Visible = false; diff --git a/OpenRA.Mods.RA/Widgets/Logic/MainMenuButtonsLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/MainMenuButtonsLogic.cs index 540e769f2e..456d7fe4ce 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/MainMenuButtonsLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/MainMenuButtonsLogic.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic widget.Get("MAINMENU_BUTTON_SETTINGS").OnClick = () => { Menu = MenuType.None; - Ui.OpenWindow("SETTINGS_MENU", new WidgetArgs() + Game.OpenWindow("SETTINGS_MENU", new WidgetArgs() { { "onExit", () => Menu = MenuType.Main } }); diff --git a/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs index dcae5aa040..97793acf60 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs @@ -14,6 +14,7 @@ using System.Linq; using OpenRA.FileFormats; using OpenRA.FileFormats.Graphics; using OpenRA.GameRules; +using OpenRA.Graphics; using OpenRA.Widgets; namespace OpenRA.Mods.RA.Widgets.Logic @@ -24,7 +25,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic SoundDevice soundDevice; [ObjectCreator.UseCtor] - public SettingsMenuLogic(Action onExit) + public SettingsMenuLogic(Action onExit, WorldRenderer worldRenderer) { bg = Ui.Root.Get("SETTINGS_MENU"); var tabs = bg.Get("TAB_CONTAINER"); @@ -133,7 +134,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic pixelDoubleCheckbox.OnClick = () => { gs.PixelDouble ^= true; - Game.Zoom = gs.PixelDouble ? 2 : 1; + worldRenderer.Viewport.Zoom = gs.PixelDouble ? 2 : 1; }; var capFrameRateCheckbox = display.Get("CAPFRAMERATE_CHECKBOX");