diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/Match/BeatmapSelectionControl.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/Match/BeatmapSelectionControl.cs
index 2e94e51385..6f1817a77c 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/Match/BeatmapSelectionControl.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/Match/BeatmapSelectionControl.cs
@@ -52,7 +52,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
Action = () =>
{
if (matchSubScreen.IsCurrentScreen())
- matchSubScreen.Push(new MultiplayerMatchSongSelect());
+ matchSubScreen.Push(new MultiplayerMatchSongSelect(matchSubScreen.Room));
},
Alpha = 0
}
diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs
index 3733b85a5e..ad4bb90551 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs
@@ -24,9 +24,11 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
///
/// Construct a new instance of multiplayer song select.
///
+ /// The room.
/// An optional initial beatmap selection to perform.
/// An optional initial ruleset selection to perform.
- public MultiplayerMatchSongSelect(WorkingBeatmap beatmap = null, RulesetInfo ruleset = null)
+ public MultiplayerMatchSongSelect(Room room, WorkingBeatmap beatmap = null, RulesetInfo ruleset = null)
+ : base(room)
{
if (beatmap != null || ruleset != null)
{
diff --git a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs
index 06e60903aa..c0c6f183fb 100644
--- a/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSubScreen.cs
@@ -412,7 +412,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
return;
}
- this.Push(new MultiplayerMatchSongSelect(beatmap, ruleset));
+ this.Push(new MultiplayerMatchSongSelect(Room, beatmap, ruleset));
}
protected override void Dispose(bool isDisposing)
diff --git a/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs b/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs
index de1b990573..1a063fd6c6 100644
--- a/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs
+++ b/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs
@@ -33,9 +33,6 @@ namespace osu.Game.Screens.OnlinePlay
[Resolved(typeof(Room), nameof(Room.Playlist))]
protected BindableList Playlist { get; private set; }
- [Resolved]
- private Room room { get; set; }
-
protected override UserActivity InitialActivity => new UserActivity.InLobby(room);
protected readonly Bindable> FreeMods = new Bindable>(Array.Empty());
@@ -45,14 +42,17 @@ namespace osu.Game.Screens.OnlinePlay
private IBindable selectedItem { get; set; }
private readonly FreeModSelectOverlay freeModSelectOverlay;
+ private readonly Room room;
private WorkingBeatmap initialBeatmap;
private RulesetInfo initialRuleset;
private IReadOnlyList initialMods;
private bool itemSelected;
- protected OnlinePlaySongSelect()
+ protected OnlinePlaySongSelect(Room room)
{
+ this.room = room;
+
Padding = new MarginPadding { Horizontal = HORIZONTAL_OVERFLOW_PADDING };
freeModSelectOverlay = new FreeModSelectOverlay
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs
index 98fed3b467..63a46433aa 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsRoomSubScreen.cs
@@ -189,7 +189,7 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
EditPlaylist = () =>
{
if (this.IsCurrentScreen())
- this.Push(new PlaylistsSongSelect());
+ this.Push(new PlaylistsSongSelect(Room));
},
};
diff --git a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs
index 076fa77336..03c95ec060 100644
--- a/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs
+++ b/osu.Game/Screens/OnlinePlay/Playlists/PlaylistsSongSelect.cs
@@ -16,6 +16,11 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
[Resolved]
private BeatmapManager beatmaps { get; set; }
+ public PlaylistsSongSelect(Room room)
+ : base(room)
+ {
+ }
+
protected override BeatmapDetailArea CreateBeatmapDetailArea() => new MatchBeatmapDetailArea
{
CreateNewItem = createNewItem