From bcdbe2993cf65b2a89997d69264d6f94cdc08f6e Mon Sep 17 00:00:00 2001 From: sector-a <82838084+sector-a@users.noreply.github.com> Date: Wed, 9 Apr 2025 19:56:59 +0300 Subject: [PATCH] Fix selection in Freeplay --- source/funkin/ui/freeplay/FreeplayState.hx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index 939b94a90..5329647c4 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -1494,6 +1494,8 @@ class FreeplayState extends MusicBeatSubState @:nullSafety(Off) if (TouchUtil.justReleased && !TouchUtil.overlaps(diffSelRight, funnyCam) && TouchUtil.touch.ticksDeltaSincePress < 200) { + curSelected = Math.round(curSelectedFloat); + for (i in 0...grpCapsules.members.length) { final capsuleHit:FlxObject = grpCapsules.members[i].theActualHitbox; @@ -1615,9 +1617,19 @@ class FreeplayState extends MusicBeatSubState } // Clamp selection to valid range - curSelectedFloat = FlxMath.clamp(curSelectedFloat, 0, grpCapsules.countLiving() - 1); curSelected = Std.int(curSelectedFloat); + for (i in 0...grpCapsules.members.length) + { + if (i == curSelected) + { + grpCapsules.members[i].selected = true; + continue; + } + + grpCapsules.members[i].selected = false; + } + if (!TouchUtil.pressed) { // Reset flick state if clamped