Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@MingxuanGame
Copy link

Like SongSelectV1, when current beatmapset is changed from outside (like playlist) and the beatmap isn't in line with the current ruleset, switch to the new ruleset (or beatmaps whose ruleset is current).

2025-12-14.16-11-50-cut.mp4

Comment on lines +378 to 380
checkAndApplyRuleset();

ensureGlobalBeatmapValid();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know about any of this.

This is approaching too many levels of adjustments. Previously a global change happening was handled pretty simply: check if it's valid selection for song select, and if not, choose something else valid. But this? Now with this it's

  • when receiving an external beatmap change, maybe change the external beatmap to something else again, or maybe change the ruleset to a different one
  • and then immediately after doing that validate the selection that you just potentially modified

Like which one is it? Is external selection going to impose state of song select, or is it going to yield selection validity to song select? You can't have it both ways.

@peppy would want you to look at this as well and express your view.

Comment on lines +578 to +579
// try to find a beatmap whose ruleset is current.
var beatmapWithinCurrentRuleset = Beatmap.Value.BeatmapSetInfo.Beatmaps.FirstOrDefault(b => b.Ruleset.Equals(Ruleset.Value));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does not appear to take converts into account


if (beatmapWithinCurrentRuleset != null)
{
Beatmap.Value = beatmaps.GetWorkingBeatmap(beatmapWithinCurrentRuleset);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does this unconditionally touch the global beatmap again? inside a global beatmap change callback? that's recursive. why doesn't it only perform the change when necessary?

debounceQueueSelection(groupedBeatmap.Beatmap);
}

private bool checkAndApplyRuleset()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does this have a return value if it's never checked?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants