restart when the skin changed

This commit is contained in:
yugecin 2016-11-20 13:24:37 +01:00
parent 45dc7260b4
commit b3d8b02cb8
2 changed files with 12 additions and 3 deletions

View File

@ -1419,6 +1419,10 @@ public class Options {
// This class should not be instantiated.
private Options() {}
public static String getSkinName() {
return skinName;
}
public static int getResolutionIdx() {
return resolutionIdx;
}

View File

@ -521,19 +521,24 @@ public class OptionsMenu extends BasicGameState {
}
}
private String resolutionOptions;
/**
* This string is built with option values when entering the options menu.
* When leaving the options menu, this string is checked against the new optionstring with the same options.
* If those do not match, it means some option has change which requires a restart
*/
private String restartOptions;
@Override
public void enter(GameContainer container, StateBasedGame game)
throws SlickException {
UI.enter();
currentTab = OptionTab.DANCE;
resolutionOptions = "" + Options.getResolutionIdx() + Options.isFullscreen() + Options.allowLargeResolutions();
restartOptions = "" + Options.getResolutionIdx() + Options.isFullscreen() + Options.allowLargeResolutions() + Options.getSkinName();
}
@Override
public void leave(GameContainer container, StateBasedGame game) throws SlickException {
if (!("" + Options.getResolutionIdx() + Options.isFullscreen() + Options.allowLargeResolutions()).equals(resolutionOptions)) {
if (!("" + Options.getResolutionIdx() + Options.isFullscreen() + Options.allowLargeResolutions() + Options.getSkinName()).equals(restartOptions)) {
container.setForceExit(false);
container.exit();
}