diff --git a/osu.Game/Screens/Select/PlaySongSelect.cs b/osu.Game/Screens/Select/PlaySongSelect.cs index 9d2debb8aa..1496727469 100644 --- a/osu.Game/Screens/Select/PlaySongSelect.cs +++ b/osu.Game/Screens/Select/PlaySongSelect.cs @@ -279,20 +279,28 @@ private void selectBeatmap(BeatmapInfo beatmap) /// private void selectionChanged(BeatmapGroup group, BeatmapInfo beatmap) { + bool beatmapSetChange = false; if (!beatmap.Equals(Beatmap?.BeatmapInfo)) { if (beatmap.BeatmapSetID == Beatmap?.BeatmapInfo.BeatmapSetID) + { sampleChangeDifficulty.Play(); + beatmapSetChange = false; + } 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 +311,8 @@ private async Task ensurePlayingSelected() if (track != null) { trackManager.SetExclusive(track); + if (preview) + track.Seek(Beatmap.Beatmap.Metadata.PreviewTime); track.Start(); } });