diff --git a/source/MainMenuState.hx b/source/MainMenuState.hx index e1a1db228..02e40438e 100644 --- a/source/MainMenuState.hx +++ b/source/MainMenuState.hx @@ -22,7 +22,7 @@ class MainMenuState extends MusicBeatState var menuItems:FlxTypedGroup; #if !switch - var optionShit:Array = ['story mode', 'freeplay', 'donate']; + var optionShit:Array = ['story mode', 'freeplay', 'donate', 'options']; #else var optionShit:Array = ['story mode', 'freeplay']; #end diff --git a/source/OptionsMenu.hx b/source/OptionsMenu.hx index 9e9f35408..d4d188d16 100644 --- a/source/OptionsMenu.hx +++ b/source/OptionsMenu.hx @@ -1,14 +1,29 @@ package; +import flash.text.TextField; import flixel.FlxG; import flixel.FlxSprite; +import flixel.addons.display.FlxGridOverlay; +import flixel.group.FlxGroup.FlxTypedGroup; +import flixel.math.FlxMath; +import flixel.text.FlxText; import flixel.util.FlxColor; - +import lime.utils.Assets; + class OptionsMenu extends MusicBeatState { + + var selector:FlxText; + var curSelected:Int = 0; + + var controlsStrings:Array = []; + + private var grpControls:FlxTypedGroup; + override function create() { var menuBG:FlxSprite = new FlxSprite().loadGraphic('assets/images/menuDesat.png'); + controlsStrings = CoolUtil.coolTextFile('assets/data/controls.txt'); menuBG.color = 0xFFea71fd; menuBG.setGraphicSize(Std.int(menuBG.width * 1.1)); menuBG.updateHitbox(); @@ -16,14 +31,69 @@ class OptionsMenu extends MusicBeatState menuBG.antialiasing = true; add(menuBG); + grpControls = new FlxTypedGroup(); + add(grpControls); + + for (i in 0...controlsStrings.length) + { + if(controlsStrings[i].indexOf('set') != -1){ + var controlLabel:Alphabet = new Alphabet(0, (70 * i) + 30, controlsStrings[i].substring(3)+': '+controlsStrings[i+1], true, false); + controlLabel.isMenuItem = true; + controlLabel.targetY = i; + grpControls.add(controlLabel); + } + // DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !! + } + super.create(); } override function update(elapsed:Float) { + super.update(elapsed); + if (controls.BACK) FlxG.switchState(new MainMenuState()); - - super.update(elapsed); + if(controls.UP_P) + changeSelection(-1); + if(controls.DOWN_P) + changeSelection(1); + } + + function changeSelection(change:Int = 0) + { + #if !switch + NGio.logEvent('Fresh'); + #end + + FlxG.sound.play('assets/sounds/scrollMenu' + TitleState.soundExt, 0.4); + + curSelected += change; + + if (curSelected < 0) + curSelected = controlsStrings.length - 1; + if (curSelected >= controlsStrings.length) + curSelected = 0; + + // selector.y = (70 * curSelected) + 30; + + var bullShit:Int = 0; + + for (item in grpControls.members) + { + item.targetY = bullShit - curSelected; + bullShit++; + + item.alpha = 0.6; + // item.setGraphicSize(Std.int(item.width * 0.8)); + + if (item.targetY == 0) + { + item.alpha = 1; + // item.setGraphicSize(Std.int(item.width)); + } + } + } + }