mirror of
https://github.com/ppy/osu.git
synced 2025-01-07 18:33:04 +08:00
Fix multiplayer queue edit button opening to the wrong beatmap
This commit is contained in:
parent
4dcb9387f7
commit
59018ab5ba
@ -402,16 +402,18 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestPlayStartsWithCorrectBeatmapWhileAtSongSelect()
|
public void TestPlayStartsWithCorrectBeatmapWhileAtSongSelect()
|
||||||
{
|
{
|
||||||
createRoom(() => new Room
|
PlaylistItem? item = null;
|
||||||
|
createRoom(() =>
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
item = new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
Playlist =
|
|
||||||
{
|
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
|
||||||
{
|
{
|
||||||
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
|
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
|
||||||
}
|
};
|
||||||
}
|
return new Room
|
||||||
|
{
|
||||||
|
Name = { Value = "Test Room" },
|
||||||
|
Playlist = { item }
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
pressReadyButton();
|
pressReadyButton();
|
||||||
@ -419,7 +421,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
AddStep("Enter song select", () =>
|
AddStep("Enter song select", () =>
|
||||||
{
|
{
|
||||||
var currentSubScreen = ((Screens.OnlinePlay.Multiplayer.Multiplayer)multiplayerComponents.CurrentScreen).CurrentSubScreen;
|
var currentSubScreen = ((Screens.OnlinePlay.Multiplayer.Multiplayer)multiplayerComponents.CurrentScreen).CurrentSubScreen;
|
||||||
((MultiplayerMatchSubScreen)currentSubScreen).OpenSongSelection(multiplayerClient.ClientRoom?.Settings.PlaylistItemId);
|
((MultiplayerMatchSubScreen)currentSubScreen).OpenSongSelection(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddUntilStep("wait for song select", () => this.ChildrenOfType<MultiplayerMatchSongSelect>().FirstOrDefault()?.BeatmapSetsLoaded == true);
|
AddUntilStep("wait for song select", () => this.ChildrenOfType<MultiplayerMatchSongSelect>().FirstOrDefault()?.BeatmapSetsLoaded == true);
|
||||||
@ -440,16 +442,18 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestPlayStartsWithCorrectRulesetWhileAtSongSelect()
|
public void TestPlayStartsWithCorrectRulesetWhileAtSongSelect()
|
||||||
{
|
{
|
||||||
createRoom(() => new Room
|
PlaylistItem? item = null;
|
||||||
|
createRoom(() =>
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
item = new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
Playlist =
|
|
||||||
{
|
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
|
||||||
{
|
{
|
||||||
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
|
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
|
||||||
}
|
};
|
||||||
}
|
return new Room
|
||||||
|
{
|
||||||
|
Name = { Value = "Test Room" },
|
||||||
|
Playlist = { item }
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
pressReadyButton();
|
pressReadyButton();
|
||||||
@ -457,7 +461,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
AddStep("Enter song select", () =>
|
AddStep("Enter song select", () =>
|
||||||
{
|
{
|
||||||
var currentSubScreen = ((Screens.OnlinePlay.Multiplayer.Multiplayer)multiplayerComponents.CurrentScreen).CurrentSubScreen;
|
var currentSubScreen = ((Screens.OnlinePlay.Multiplayer.Multiplayer)multiplayerComponents.CurrentScreen).CurrentSubScreen;
|
||||||
((MultiplayerMatchSubScreen)currentSubScreen).OpenSongSelection(multiplayerClient.ClientRoom?.Settings.PlaylistItemId);
|
((MultiplayerMatchSubScreen)currentSubScreen).OpenSongSelection(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddUntilStep("wait for song select", () => this.ChildrenOfType<MultiplayerMatchSongSelect>().FirstOrDefault()?.BeatmapSetsLoaded == true);
|
AddUntilStep("wait for song select", () => this.ChildrenOfType<MultiplayerMatchSongSelect>().FirstOrDefault()?.BeatmapSetsLoaded == true);
|
||||||
@ -478,16 +482,18 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestPlayStartsWithCorrectModsWhileAtSongSelect()
|
public void TestPlayStartsWithCorrectModsWhileAtSongSelect()
|
||||||
{
|
{
|
||||||
createRoom(() => new Room
|
PlaylistItem? item = null;
|
||||||
|
createRoom(() =>
|
||||||
{
|
{
|
||||||
Name = { Value = "Test Room" },
|
item = new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
||||||
Playlist =
|
|
||||||
{
|
|
||||||
new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First(b => b.Ruleset.OnlineID == 0)).BeatmapInfo)
|
|
||||||
{
|
{
|
||||||
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
|
RulesetID = new OsuRuleset().RulesetInfo.OnlineID
|
||||||
}
|
};
|
||||||
}
|
return new Room
|
||||||
|
{
|
||||||
|
Name = { Value = "Test Room" },
|
||||||
|
Playlist = { item }
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
pressReadyButton();
|
pressReadyButton();
|
||||||
@ -495,7 +501,7 @@ namespace osu.Game.Tests.Visual.Multiplayer
|
|||||||
AddStep("Enter song select", () =>
|
AddStep("Enter song select", () =>
|
||||||
{
|
{
|
||||||
var currentSubScreen = ((Screens.OnlinePlay.Multiplayer.Multiplayer)multiplayerComponents.CurrentScreen).CurrentSubScreen;
|
var currentSubScreen = ((Screens.OnlinePlay.Multiplayer.Multiplayer)multiplayerComponents.CurrentScreen).CurrentSubScreen;
|
||||||
((MultiplayerMatchSubScreen)currentSubScreen).OpenSongSelection(multiplayerClient.ClientRoom?.Settings.PlaylistItemId);
|
((MultiplayerMatchSubScreen)currentSubScreen).OpenSongSelection(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddUntilStep("wait for song select", () => this.ChildrenOfType<MultiplayerMatchSongSelect>().FirstOrDefault()?.BeatmapSetsLoaded == true);
|
AddUntilStep("wait for song select", () => this.ChildrenOfType<MultiplayerMatchSongSelect>().FirstOrDefault()?.BeatmapSetsLoaded == true);
|
||||||
|
@ -49,6 +49,9 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
[Resolved]
|
[Resolved]
|
||||||
private MultiplayerClient client { get; set; }
|
private MultiplayerClient client { get; set; }
|
||||||
|
|
||||||
|
[Resolved]
|
||||||
|
private BeatmapManager beatmapManager { get; set; }
|
||||||
|
|
||||||
private readonly IBindable<bool> isConnected = new Bindable<bool>();
|
private readonly IBindable<bool> isConnected = new Bindable<bool>();
|
||||||
|
|
||||||
private AddItemButton addItemButton;
|
private AddItemButton addItemButton;
|
||||||
@ -145,7 +148,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
new MultiplayerPlaylist
|
new MultiplayerPlaylist
|
||||||
{
|
{
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
RequestEdit = item => OpenSongSelection(item.ID)
|
RequestEdit = item => OpenSongSelection(item)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new[]
|
new[]
|
||||||
@ -223,12 +226,15 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
/// Opens the song selection screen to add or edit an item.
|
/// Opens the song selection screen to add or edit an item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="itemToEdit">An optional playlist item to edit. If null, a new item will be added instead.</param>
|
/// <param name="itemToEdit">An optional playlist item to edit. If null, a new item will be added instead.</param>
|
||||||
internal void OpenSongSelection(long? itemToEdit = null)
|
internal void OpenSongSelection(PlaylistItem itemToEdit = null)
|
||||||
{
|
{
|
||||||
if (!this.IsCurrentScreen())
|
if (!this.IsCurrentScreen())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this.Push(new MultiplayerMatchSongSelect(Room, itemToEdit));
|
var localBeatmap = itemToEdit == null ? null : beatmapManager.QueryBeatmap(b => b.OnlineID == itemToEdit.Beatmap.OnlineID);
|
||||||
|
var workingBeatmap = localBeatmap == null ? null : beatmapManager.GetWorkingBeatmap(localBeatmap);
|
||||||
|
|
||||||
|
this.Push(new MultiplayerMatchSongSelect(Room, itemToEdit?.ID, workingBeatmap));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Drawable CreateFooter() => new MultiplayerMatchFooter();
|
protected override Drawable CreateFooter() => new MultiplayerMatchFooter();
|
||||||
|
Loading…
Reference in New Issue
Block a user