From d3ba0251f013356a8153d3a6cd377fd4565bca42 Mon Sep 17 00:00:00 2001 From: Ralty <78720179+Raltyro@users.noreply.github.com> Date: Sun, 27 Jul 2025 10:43:42 +0700 Subject: [PATCH] Move Quality Option to Advanced instead --- .../options/categories/AppearanceOptions.hx | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/source/funkin/options/categories/AppearanceOptions.hx b/source/funkin/options/categories/AppearanceOptions.hx index 57e48e03..0f55e496 100644 --- a/source/funkin/options/categories/AppearanceOptions.hx +++ b/source/funkin/options/categories/AppearanceOptions.hx @@ -9,10 +9,6 @@ class AppearanceOptions extends TreeMenuScreen { 'framerate', __changeFPS )); add(new Checkbox(getNameID('flashingMenu'), getDescID('flashingMenu'), 'flashingMenu')); - add(new ArrayOption(getNameID('quality'), getDescID('quality'), - [0, 1, 2], [getID('quality-low'), getID('quality-high'), getID('quality-custom')], - 'quality', __changeQuality, null - )); add(new Checkbox(getNameID('colorHealthBar'), getDescID('colorHealthBar'), 'colorHealthBar')); add(new Checkbox(getNameID('week6PixelPerfect'), getDescID('week6PixelPerfect'), 'week6PixelPerfect')); @@ -26,27 +22,39 @@ class AppearanceOptions extends TreeMenuScreen { if (FlxG.updateFramerate < framerate) FlxG.drawFramerate = FlxG.updateFramerate = framerate; else FlxG.updateFramerate = FlxG.drawFramerate = framerate; } - - private function __changeQuality(value:Dynamic) { - var antialiasing = value == 0 ? false : (value == 1 ? true : Options.antialiasing); - FlxG.game.stage.quality = (FlxG.enableAntialiasing = antialiasing) ? BEST : LOW; - } } class AdvancedAppearanceOptions extends TreeMenuScreen { + var qualityOptions:Array = []; + public function new() { super('optionsMenu.advanced', 'optionsTree.appearance.advanced-desc', 'AppearanceOptions.Advanced.'); - for (option in [ + add(new ArrayOption(getNameID('quality'), getDescID('quality'), + [0, 1, 2], [getID('quality-low'), getID('quality-high'), getID('quality-custom')], + 'quality', __changeQuality, null + )); + + for (option in (qualityOptions = [ new Checkbox(getNameID('antialiasing'), getDescID('antialiasing'), 'antialiasing', __changeAntialiasing), new Checkbox(getNameID('lowMemoryMode'), getDescID('lowMemoryMode'), 'lowMemoryMode'), new Checkbox(getNameID('gameplayShaders'), getDescID('gameplayShaders'), 'gameplayShaders') - ]) { + ])) add(option); - if (option.locked = Options.quality != 2) option.rawDesc = 'AppearanceOptions.quality-optionDisabled-desc'; - } add(new Checkbox(getNameID('gpuOnlyBitmaps'), getDescID('gpuOnlyBitmaps'), 'gpuOnlyBitmaps')); + + updateQualityOptions(); + } + + private function updateQualityOptions() { + for (option in qualityOptions) option.locked = Options.quality != 2; + } + + private function __changeQuality(value:Dynamic) { + var antialiasing = value == 0 ? false : (value == 1 ? true : Options.antialiasing); + FlxG.game.stage.quality = (FlxG.enableAntialiasing = antialiasing) ? BEST : LOW; + updateQualityOptions(); } private function __changeAntialiasing() {