diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs index 9d2debb8aa..bc9c983352 100644 --- a/osu.Game/Screens/Select/PlaySongSelect.cs +++ b/osu.Game/Screens/Select/PlaySongSelect.cs @@ -279,20 +279,23 @@ namespace osu.Game.Screens.Select /// private void selectionChanged(BeatmapGroup group, BeatmapInfo beatmap) { + bool beatmapSetChange = false; + if (!beatmap.Equals(Beatmap?.BeatmapInfo)) { if (beatmap.BeatmapSetID == Beatmap?.BeatmapInfo.BeatmapSetID) sampleChangeDifficulty.Play(); else + { sampleChangeBeatmap.Play(); - + beatmapSetChange = true; + } Beatmap = database.GetWorkingBeatmap(beatmap, Beatmap); } - - ensurePlayingSelected(); + ensurePlayingSelected(beatmapSetChange); } - private async Task ensurePlayingSelected() + private async Task ensurePlayingSelected(bool preview = false) { AudioTrack track = null; @@ -303,6 +306,8 @@ namespace osu.Game.Screens.Select if (track != null) { trackManager.SetExclusive(track); + if (preview) + track.Seek(Beatmap.Beatmap.Metadata.PreviewTime); track.Start(); } });