From 27be84e99a18622474878349d81403f7139e282b Mon Sep 17 00:00:00 2001 From: yugecin Date: Sun, 4 Dec 2016 13:49:35 +0100 Subject: [PATCH] hide options with failing showcondition --- src/itdelatrisu/opsu/states/OptionsMenu.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/itdelatrisu/opsu/states/OptionsMenu.java b/src/itdelatrisu/opsu/states/OptionsMenu.java index 847c129b..60196f92 100644 --- a/src/itdelatrisu/opsu/states/OptionsMenu.java +++ b/src/itdelatrisu/opsu/states/OptionsMenu.java @@ -113,6 +113,7 @@ public class OptionsMenu extends BasicGameState { }), DANCE ("Dance", new GameOption[] { GameOption.DANCE_MOVER, + GameOption.DANCE_QUAD_BEZ_AGRESSIVE, GameOption.DANCE_MOVER_DIRECTION, GameOption.DANCE_SLIDER_MOVER_TYPE, GameOption.DANCE_SPINNER, @@ -277,9 +278,12 @@ public class OptionsMenu extends BasicGameState { if (selectedOption != null) { hoverOption = selectedOption; } - for (int i = 0; i < currentTab.options.length; i++) { + for (int i = 0, j = 0; i < currentTab.options.length; i++) { GameOption option = currentTab.options[i]; - drawOption(option, i, hoverOption == option); + if (!option.showCondition()) { + continue; + } + drawOption(option, j++, hoverOption == option); } // option tabs @@ -602,6 +606,14 @@ public class OptionsMenu extends BasicGameState { if (index >= currentTab.options.length) return null; + int i = index; + while (i >= 0) { + if (!currentTab.options[i--].showCondition()) { + if (++index >= currentTab.options.length) { + return null; + } + } + } return currentTab.options[index]; } }