From 5ac9cee76cb89422fa2a21fb17b6a7b21228fa3f Mon Sep 17 00:00:00 2001 From: EliteMasterEric Date: Thu, 5 Jun 2025 18:38:08 -0400 Subject: [PATCH] Fix Freeplay -> Chart Editor debug key not being processed properly --- source/funkin/ui/freeplay/FreeplayState.hx | 88 +++++++++++----------- 1 file changed, 46 insertions(+), 42 deletions(-) diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index 03f03bfc4..2a9375811 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -1531,6 +1531,7 @@ class FreeplayState extends MusicBeatSubState } handleDifficultySwitch(); + handleDebugKeys(); #if FEATURE_TOUCH_CONTROLS if (TouchUtil.justReleased) @@ -1617,6 +1618,51 @@ class FreeplayState extends MusicBeatSubState } } + function handleDebugKeys():Void + { + #if FEATURE_CHART_EDITOR + if (controls.DEBUG_CHART && !busy) + { + busy = true; + var targetSongID = grpCapsules.members[curSelected]?.freeplayData?.data.id ?? 'unknown'; + if (targetSongID == 'unknown') + { + trace('CHART RANDOM SONG'); + letterSort.inputEnabled = false; + + var availableSongCapsules:Array = grpCapsules.members.filter(function(cap:SongMenuItem) { + // Dead capsules are ones which were removed from the list when changing filters. + return cap.alive && cap.freeplayData != null; + }); + + trace('Available songs: ${availableSongCapsules.map(function(cap) { + return cap?.freeplayData?.data.songName; + })}'); + + if (availableSongCapsules.length == 0) + { + trace('No songs available!'); + busy = false; + letterSort.inputEnabled = true; + FunkinSound.playOnce(Paths.sound('cancelMenu')); + return; + } + + var targetSong:SongMenuItem = FlxG.random.getObject(availableSongCapsules); + + // Seeing if I can do an animation... + curSelected = grpCapsules.members.indexOf(targetSong); + changeSelection(0); + targetSongID = grpCapsules.members[curSelected]?.freeplayData?.data.id ?? 'unknown'; + } + FlxG.switchState(() -> new ChartEditorState( + { + targetSongId: targetSongID, + })); + } + #end + } + #if FEATURE_TOUCH_CONTROLS private function handleTouchCapsuleClick():Void { @@ -1852,48 +1898,6 @@ class FreeplayState extends MusicBeatSubState freeplayTxtBg.x = FullScreenScaleMode.gameNotchSize.x; _pressedOnFreeplay = false; } - - #if FEATURE_CHART_EDITOR - if (controls.DEBUG_CHART && !busy) - { - busy = true; - var targetSongID = grpCapsules.members[curSelected]?.freeplayData?.data.id ?? 'unknown'; - if (targetSongID == 'unknown') - { - trace('CHART RANDOM SONG'); - letterSort.inputEnabled = false; - - var availableSongCapsules:Array = grpCapsules.members.filter(function(cap:SongMenuItem) { - // Dead capsules are ones which were removed from the list when changing filters. - return cap.alive && cap.freeplayData != null; - }); - - trace('Available songs: ${availableSongCapsules.map(function(cap) { - return cap?.freeplayData?.data.songName; - })}'); - - if (availableSongCapsules.length == 0) - { - trace('No songs available!'); - busy = false; - letterSort.inputEnabled = true; - FunkinSound.playOnce(Paths.sound('cancelMenu')); - return; - } - - var targetSong:SongMenuItem = FlxG.random.getObject(availableSongCapsules); - - // Seeing if I can do an animation... - curSelected = grpCapsules.members.indexOf(targetSong); - changeSelection(0); - targetSongID = grpCapsules.members[curSelected]?.freeplayData?.data.id ?? 'unknown'; - } - FlxG.switchState(() -> new ChartEditorState( - { - targetSongId: targetSongID, - })); - } - #end } #end