From c5ac851ba9f280b9bea3b8aa98cee6184f048056 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Fri, 7 Oct 2016 18:34:37 +0900 Subject: [PATCH] Add the ability to exit the game using escape. --- osu.Game/GameModes/Menu/ButtonSystem.cs | 9 +++++++++ osu.Game/GameModes/Menu/Intro.cs | 11 +++++++++++ osu.Game/GameModes/Menu/MainMenu.cs | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/osu.Game/GameModes/Menu/ButtonSystem.cs b/osu.Game/GameModes/Menu/ButtonSystem.cs index dcb13dbbab..87a78c335d 100644 --- a/osu.Game/GameModes/Menu/ButtonSystem.cs +++ b/osu.Game/GameModes/Menu/ButtonSystem.cs @@ -125,6 +125,15 @@ public override void Load() protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) { + if (args.Key == Key.Escape) + { + if (State == MenuState.Initial) + return false; + + State = MenuState.Initial; + return true; + } + osuLogo.TriggerClick(state); return true; } diff --git a/osu.Game/GameModes/Menu/Intro.cs b/osu.Game/GameModes/Menu/Intro.cs index 5bc41572e3..4a7e338cfe 100644 --- a/osu.Game/GameModes/Menu/Intro.cs +++ b/osu.Game/GameModes/Menu/Intro.cs @@ -66,5 +66,16 @@ protected override void OnSuspending(GameMode next) Content.FadeOut(300); base.OnSuspending(next); } + + protected override void OnResuming(GameMode last) + { + //this is an exit + Game.Scheduler.AddDelayed(delegate + { + Game.Exit(); + }, 300); + + base.OnResuming(last); + } } } diff --git a/osu.Game/GameModes/Menu/MainMenu.cs b/osu.Game/GameModes/Menu/MainMenu.cs index 962dde2fbc..5b8900a5e5 100644 --- a/osu.Game/GameModes/Menu/MainMenu.cs +++ b/osu.Game/GameModes/Menu/MainMenu.cs @@ -49,7 +49,7 @@ public override void Load() OnTest = delegate { Push(new TestBrowser()); }, OnExit = delegate { Game.Scheduler.AddDelayed(delegate { - Game.Host.Exit(); + Exit(); }, ButtonSystem.EXIT_DELAY); }, OnSettings = delegate {