From 97dd34cfc387894d218b1e89129b50f8737449ee Mon Sep 17 00:00:00 2001 From: yugecin Date: Tue, 11 Oct 2016 11:51:29 +0200 Subject: [PATCH] better way to check if display settings changed --- src/itdelatrisu/opsu/Options.java | 22 ++++++-------------- src/itdelatrisu/opsu/states/OptionsMenu.java | 6 +++--- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/itdelatrisu/opsu/Options.java b/src/itdelatrisu/opsu/Options.java index c8e08644..88fa1e67 100644 --- a/src/itdelatrisu/opsu/Options.java +++ b/src/itdelatrisu/opsu/Options.java @@ -134,8 +134,6 @@ public class Options { /** Port binding. */ private static int port = 49250; - public static boolean wasResolutionChanged; - /** * Returns whether the XDG flag in the manifest (if any) is set to "true". * @return true if XDG directories are enabled, false otherwise @@ -311,20 +309,8 @@ public class Options { return resolutionIdx + ""; } }, - ALLOW_LARGER_RESOLUTIONS ("Allow large resolutions", "AllowLargeRes", "Allow resolutions larger than the native resolution", false) { - @Override - public void click(GameContainer container) { - super.click(container); - wasResolutionChanged = true; - } - }, - FULLSCREEN ("Fullscreen Mode", "Fullscreen", "Restart to apply changes.", false) { - @Override - public void click(GameContainer container) { - super.click(container); - wasResolutionChanged = true; - } - }, + ALLOW_LARGER_RESOLUTIONS ("Allow large resolutions", "AllowLargeRes", "Allow resolutions larger than the native resolution", false), + FULLSCREEN ("Fullscreen Mode", "Fullscreen", "Restart to apply changes.", false), SKIN ("Skin", "Skin", "Restart (Ctrl+Shift+F5) to apply skin changes.") { @Override public String getValueString() { return skinName; } @@ -1360,6 +1346,10 @@ public class Options { return resolutionIdx; } + public static boolean allowLargeResolutions() { + return GameOption.ALLOW_LARGER_RESOLUTIONS.getBooleanValue(); + } + /** * Returns the target frame rate. * @return the target FPS diff --git a/src/itdelatrisu/opsu/states/OptionsMenu.java b/src/itdelatrisu/opsu/states/OptionsMenu.java index c9ec6ca8..fcdd4279 100644 --- a/src/itdelatrisu/opsu/states/OptionsMenu.java +++ b/src/itdelatrisu/opsu/states/OptionsMenu.java @@ -509,19 +509,19 @@ public class OptionsMenu extends BasicGameState { } } - private int lastResIdx; + private String resolutionOptions; @Override public void enter(GameContainer container, StateBasedGame game) throws SlickException { UI.enter(); currentTab = OptionTab.DANCE; - lastResIdx = Options.getResolutionIdx(); + resolutionOptions = "" + Options.getResolutionIdx() + Options.isFullscreen() + Options.allowLargeResolutions(); } @Override public void leave(GameContainer container, StateBasedGame game) throws SlickException { - if (Options.wasResolutionChanged || Options.getResolutionIdx() != lastResIdx) { + if (!("" + Options.getResolutionIdx() + Options.isFullscreen() + Options.allowLargeResolutions()).equals(resolutionOptions)) { container.setForceExit(false); container.exit(); }