1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-13 08:32:57 +08:00

Unify and smiplify exit logic. Now only OsuGame calls the final Exit.

This commit is contained in:
Dean Herbert 2016-10-07 18:46:05 +09:00
parent c5ac851ba9
commit c5228b63cb
4 changed files with 7 additions and 21 deletions

View File

@ -69,11 +69,8 @@ namespace osu.Game.GameModes.Menu
protected override void OnResuming(GameMode last)
{
//this is an exit
Game.Scheduler.AddDelayed(delegate
{
Game.Exit();
}, 300);
//we are just an intro. if we are resumed, we just want to exit after a short delay (to allow the last mode to transition out).
Game.Scheduler.AddDelayed(Exit, 300);
base.OnResuming(last);
}

View File

@ -47,11 +47,7 @@ namespace osu.Game.GameModes.Menu
OnSolo = delegate { Push(new PlaySongSelect()); },
OnMulti = delegate { Push(new Lobby()); },
OnTest = delegate { Push(new TestBrowser()); },
OnExit = delegate {
Game.Scheduler.AddDelayed(delegate {
Exit();
}, ButtonSystem.EXIT_DELAY);
},
OnExit = delegate { Game.Scheduler.AddDelayed(Exit, ButtonSystem.EXIT_DELAY); },
OnSettings = delegate {
osu.Options.PoppedOut = !osu.Options.PoppedOut;
},

View File

@ -64,16 +64,5 @@ namespace osu.Game.GameModes
base.OnExiting(next);
}
protected override void OnResuming(GameMode last)
{
base.OnResuming(last);
}
protected override void OnSuspending(GameMode next)
{
base.OnSuspending(next);
}
}
}

View File

@ -60,6 +60,7 @@ namespace osu.Game
});
intro.ModePushed += modeAdded;
intro.Exited += modeRemoved;
PlayMode = Config.GetBindable<PlayMode>(OsuConfig.PlayMode);
PlayMode.ValueChanged += delegate { Toolbar.SetGameMode(PlayMode.Value); };
@ -89,6 +90,9 @@ namespace osu.Game
Cursor.FadeIn(100);
ModeChanged?.Invoke(newMode);
if (newMode == null)
Host.Exit();
}
private void modeAdded(GameMode newMode)