mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 10:23:02 +08:00
Merge pull request #29322 from peppy/daily-challenge-import-improvement
Fix clicking the beatmap import notification at the daily challenge screen exiting to main menu
This commit is contained in:
commit
a06cb9a0de
@ -642,10 +642,10 @@ namespace osu.Game
|
|||||||
Live<BeatmapSetInfo> databasedSet = null;
|
Live<BeatmapSetInfo> databasedSet = null;
|
||||||
|
|
||||||
if (beatmap.OnlineID > 0)
|
if (beatmap.OnlineID > 0)
|
||||||
databasedSet = BeatmapManager.QueryBeatmapSet(s => s.OnlineID == beatmap.OnlineID);
|
databasedSet = BeatmapManager.QueryBeatmapSet(s => s.OnlineID == beatmap.OnlineID && !s.DeletePending);
|
||||||
|
|
||||||
if (beatmap is BeatmapSetInfo localBeatmap)
|
if (beatmap is BeatmapSetInfo localBeatmap)
|
||||||
databasedSet ??= BeatmapManager.QueryBeatmapSet(s => s.Hash == localBeatmap.Hash);
|
databasedSet ??= BeatmapManager.QueryBeatmapSet(s => s.Hash == localBeatmap.Hash && !s.DeletePending);
|
||||||
|
|
||||||
if (databasedSet == null)
|
if (databasedSet == null)
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ using osuTK;
|
|||||||
namespace osu.Game.Screens.OnlinePlay.DailyChallenge
|
namespace osu.Game.Screens.OnlinePlay.DailyChallenge
|
||||||
{
|
{
|
||||||
[Cached(typeof(IPreviewTrackOwner))]
|
[Cached(typeof(IPreviewTrackOwner))]
|
||||||
public partial class DailyChallenge : OsuScreen, IPreviewTrackOwner
|
public partial class DailyChallenge : OsuScreen, IPreviewTrackOwner, IHandlePresentBeatmap
|
||||||
{
|
{
|
||||||
private readonly Room room;
|
private readonly Room room;
|
||||||
private readonly PlaylistItem playlistItem;
|
private readonly PlaylistItem playlistItem;
|
||||||
@ -546,5 +546,24 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
|
|||||||
if (metadataClient.IsNotNull())
|
if (metadataClient.IsNotNull())
|
||||||
metadataClient.MultiplayerRoomScoreSet -= onRoomScoreSet;
|
metadataClient.MultiplayerRoomScoreSet -= onRoomScoreSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Resolved]
|
||||||
|
private OsuGame? game { get; set; }
|
||||||
|
|
||||||
|
public void PresentBeatmap(WorkingBeatmap beatmap, RulesetInfo ruleset)
|
||||||
|
{
|
||||||
|
if (!this.IsCurrentScreen())
|
||||||
|
return;
|
||||||
|
|
||||||
|
// We can only handle the current daily challenge beatmap.
|
||||||
|
// If the import was for a different beatmap, pass the duty off to global handling.
|
||||||
|
if (beatmap.BeatmapSetInfo.OnlineID != playlistItem.Beatmap.BeatmapSet!.OnlineID)
|
||||||
|
{
|
||||||
|
this.Exit();
|
||||||
|
game?.PresentBeatmap(beatmap.BeatmapSetInfo, b => b.ID == beatmap.BeatmapInfo.ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
// And if we're handling, we don't really have much to do here.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user