diff --git a/osu.Game/Screens/SelectV2/ISongSelect.cs b/osu.Game/Screens/SelectV2/ISongSelect.cs
index 6c5954d82e..b733865748 100644
--- a/osu.Game/Screens/SelectV2/ISongSelect.cs
+++ b/osu.Game/Screens/SelectV2/ISongSelect.cs
@@ -50,5 +50,10 @@ namespace osu.Game.Screens.SelectV2
/// Present the provided score at the results screen.
///
void PresentScore(ScoreInfo score);
+
+ ///
+ /// Selects the provided beatmap and progresses song select to the next screen.
+ ///
+ void SelectAndStart(BeatmapInfo beatmap);
}
}
diff --git a/osu.Game/Screens/SelectV2/SongSelect.cs b/osu.Game/Screens/SelectV2/SongSelect.cs
index 92a8c20b78..202b6814df 100644
--- a/osu.Game/Screens/SelectV2/SongSelect.cs
+++ b/osu.Game/Screens/SelectV2/SongSelect.cs
@@ -455,6 +455,15 @@ namespace osu.Game.Screens.SelectV2
this.Push(new EditorLoader());
}
+ ///
+ /// Finalises selection on the given .
+ ///
+ public void SelectAndStart(BeatmapInfo beatmap)
+ {
+ Beatmap.Value = beatmaps.GetWorkingBeatmap(beatmap);
+ OnStart();
+ }
+
public void Delete(BeatmapSetInfo beatmapSet) => dialogOverlay?.Push(new BeatmapDeleteDialog(beatmapSet));
public void ClearScores(BeatmapInfo beatmap) => dialogOverlay?.Push(new BeatmapClearScoresDialog(beatmap));