diff --git a/source/OptionsMenu.hx b/source/OptionsMenu.hx index d4d188d16..299944af7 100644 --- a/source/OptionsMenu.hx +++ b/source/OptionsMenu.hx @@ -1,25 +1,26 @@ package; +import Controls.Control; import flash.text.TextField; import flixel.FlxG; import flixel.FlxSprite; import flixel.addons.display.FlxGridOverlay; import flixel.group.FlxGroup.FlxTypedGroup; +import flixel.input.keyboard.FlxKey; 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'); @@ -33,11 +34,12 @@ class OptionsMenu extends MusicBeatState 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); + 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); @@ -52,48 +54,75 @@ class OptionsMenu extends MusicBeatState { super.update(elapsed); - if (controls.BACK) - FlxG.switchState(new MainMenuState()); - if(controls.UP_P) - changeSelection(-1); - if(controls.DOWN_P) - changeSelection(1); - + if (controls.ACCEPT) + { + changeBinding(); + } + + if (isSettingControl) + waitingInput(); + else + { + if (controls.BACK) + FlxG.switchState(new MainMenuState()); + if (controls.UP_P) + changeSelection(-1); + if (controls.DOWN_P) + changeSelection(1); + } + } + + function waitingInput():Void + { + if (FlxG.keys.getIsDown().length > 0) + { + PlayerSettings.player1.controls.replaceBinding(Control.LEFT, Keys, FlxG.keys.getIsDown()[0].ID, null); + } + // PlayerSettings.player1.controls.replaceBinding(Control) + } + + var isSettingControl:Bool = false; + + function changeBinding():Void + { + if (!isSettingControl) + { + isSettingControl = true; + } } 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 = grpControls.length - 1; + if (curSelected >= grpControls.length) + curSelected = 0; + + // selector.y = (70 * curSelected) + 30; + + var bullShit:Int = 0; + + for (item in grpControls.members) { - #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.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)); - } + item.alpha = 1; + // item.setGraphicSize(Std.int(item.width)); } } - + } }