diff --git a/osu.Game/Screens/Multi/Components/CreateRoomOverlay.cs b/osu.Game/Screens/Multi/Components/CreateRoomOverlay.cs
index 7e08e980a3..3a6224da26 100644
--- a/osu.Game/Screens/Multi/Components/CreateRoomOverlay.cs
+++ b/osu.Game/Screens/Multi/Components/CreateRoomOverlay.cs
@@ -3,6 +3,7 @@
using osu.Framework.Allocation;
using osu.Game.Online.API;
+using osu.Game.Online.Multiplayer;
namespace osu.Game.Screens.Multi.Components
{
@@ -16,5 +17,17 @@ namespace osu.Game.Screens.Multi.Components
{
Room.Host.Value = api.LocalUser;
}
+
+ public override Room Room
+ {
+ get => base.Room;
+ set
+ {
+ base.Room = value;
+
+ if (api != null && value != null)
+ value.Host.Value = api.LocalUser;
+ }
+ }
}
}
diff --git a/osu.Game/Screens/Multi/Components/RoomSettingsOverlay.cs b/osu.Game/Screens/Multi/Components/RoomSettingsOverlay.cs
index 896017b219..f50eefe4c6 100644
--- a/osu.Game/Screens/Multi/Components/RoomSettingsOverlay.cs
+++ b/osu.Game/Screens/Multi/Components/RoomSettingsOverlay.cs
@@ -163,7 +163,7 @@ namespace osu.Game.Screens.Multi.Components
///
/// The room which settings are being applied to.
///
- public Room Room
+ public virtual Room Room
{
get => room;
set
diff --git a/osu.Game/Screens/Multi/Screens/Lounge/Lounge.cs b/osu.Game/Screens/Multi/Screens/Lounge/Lounge.cs
index 26d25aabfc..f307032600 100644
--- a/osu.Game/Screens/Multi/Screens/Lounge/Lounge.cs
+++ b/osu.Game/Screens/Multi/Screens/Lounge/Lounge.cs
@@ -19,7 +19,7 @@ namespace osu.Game.Screens.Multi.Screens.Lounge
{
private readonly Container content;
private readonly SearchContainer search;
- private readonly RoomSettingsOverlay settings;
+ private readonly CreateRoomOverlay createRoomOverlay;
protected readonly FilterControl Filter;
protected readonly FillFlowContainer RoomsContainer;
@@ -71,7 +71,7 @@ namespace osu.Game.Screens.Multi.Screens.Lounge
new Container
{
RelativeSizeAxes = Axes.Both,
- Child = settings = new CreateRoomOverlay
+ Child = createRoomOverlay = new CreateRoomOverlay
{
RelativeSizeAxes = Axes.Both,
Height = 0.9f,
@@ -86,7 +86,7 @@ namespace osu.Game.Screens.Multi.Screens.Lounge
Filter.Tabs.Current.ValueChanged += t => filterRooms();
Filter.Search.Exit += Exit;
- settings.Applied = () => createRoom(settings.Room);
+ createRoomOverlay.Applied = () => createRoom(createRoomOverlay.Room);
}
protected override void UpdateAfterChildren()
@@ -147,7 +147,7 @@ namespace osu.Game.Screens.Multi.Screens.Lounge
{
base.OnResuming(last);
- settings.Room = new Room();
+ createRoomOverlay.Room = new Room();
Filter.Search.HoldFocus = true;
}
@@ -161,9 +161,9 @@ namespace osu.Game.Screens.Multi.Screens.Lounge
private void filterRooms()
{
if (Filter.Tabs.Current.Value == LoungeTab.Create)
- settings.Show();
+ createRoomOverlay.Show();
else
- settings.Hide();
+ createRoomOverlay.Hide();
search.SearchTerm = Filter.Search.Current.Value ?? string.Empty;