mirror of
https://github.com/ppy/osu.git
synced 2024-12-05 10:33:22 +08:00
Compare commits
3 Commits
89f4e4d64e
...
0821356f79
Author | SHA1 | Date | |
---|---|---|---|
|
0821356f79 | ||
|
53dce83b56 | ||
|
9140893249 |
@ -21,7 +21,7 @@ namespace osu.Game.Tests.Visual.Mods
|
||||
protected override TestPlayer CreateModPlayer(Ruleset ruleset)
|
||||
{
|
||||
var player = base.CreateModPlayer(ruleset);
|
||||
player.RestartRequested = _ => restartRequested = true;
|
||||
player.PrepareLoaderForRestart = _ => restartRequested = true;
|
||||
return player;
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ namespace osu.Game.Screens.Play
|
||||
/// </summary>
|
||||
protected virtual bool PauseOnFocusLost => true;
|
||||
|
||||
public Action<bool> RestartRequested;
|
||||
public Action<bool> PrepareLoaderForRestart;
|
||||
|
||||
private bool isRestarting;
|
||||
private bool skipExitTransition;
|
||||
@ -719,10 +719,16 @@ namespace osu.Game.Screens.Play
|
||||
// stopping here is to ensure music doesn't become audible after exiting back to PlayerLoader.
|
||||
musicController.Stop();
|
||||
|
||||
if (RestartRequested != null)
|
||||
skipExitTransition = quickRestart;
|
||||
PrepareLoaderForRestart?.Invoke(quickRestart);
|
||||
|
||||
if (!this.IsCurrentScreen())
|
||||
{
|
||||
skipExitTransition = quickRestart;
|
||||
RestartRequested?.Invoke(quickRestart);
|
||||
// if we're called externally (i.e. from results screen),
|
||||
// use MakeCurrent to exit results screen as well as this player screen
|
||||
// since ValidForResume = false in here
|
||||
Debug.Assert(!ValidForResume);
|
||||
this.MakeCurrent();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -457,7 +457,7 @@ namespace osu.Game.Screens.Play
|
||||
CurrentPlayer = createPlayer();
|
||||
CurrentPlayer.Configuration.AutomaticallySkipIntro |= quickRestart;
|
||||
CurrentPlayer.RestartCount = restartCount++;
|
||||
CurrentPlayer.RestartRequested = restartRequested;
|
||||
CurrentPlayer.PrepareLoaderForRestart = prepareForRestart;
|
||||
|
||||
LoadTask = LoadComponentAsync(CurrentPlayer, _ =>
|
||||
{
|
||||
@ -470,13 +470,11 @@ namespace osu.Game.Screens.Play
|
||||
{
|
||||
}
|
||||
|
||||
private void restartRequested(bool quickRestartRequested)
|
||||
private void prepareForRestart(bool quickRestartRequested)
|
||||
{
|
||||
quickRestart = quickRestartRequested;
|
||||
hideOverlays = true;
|
||||
ValidForResume = true;
|
||||
|
||||
this.MakeCurrent();
|
||||
}
|
||||
|
||||
private void contentIn(double delayBeforeSideDisplays = 0)
|
||||
|
Loading…
Reference in New Issue
Block a user