Fix Freeplay -> Chart Editor debug key not being processed properly

This commit is contained in:
EliteMasterEric
2025-06-06 15:05:08 -06:00
committed by Hundrec
parent d81e409d93
commit 5ac9cee76c
+46 -42
View File
@@ -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<SongMenuItem> = 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<SongMenuItem> = 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