private void HandleGameMenu() { for (AsciiKey press = Messager.GetNextKeyPress(); press.Key != Keys.None; press = Messager.GetNextKeyPress()) { string readable = Readable(press); Log.Info($"At menu, pressed [{readable}]"); // Quit if (press.Key == Keys.Q) { if (ConfirmExit()) { Game.Instance.Exit(); } } //0.0: Load saved game and resume play if (press.Key == Keys.L) { GameMode.PopEngineMode(); MenuWindow.Hide(); LoadSavedGame(); // 1.+.SAVE: Hardcore/roguelike load game mode: // delete save file return; } if (GameInProgress) { // Return to game if (press.Key == Keys.R || press.Key == Keys.Escape) { GameMode.PopEngineMode(); MenuWindow.Hide(); return; } //0.0: Save current game if (press.Key == Keys.S) { SaveTheGame(); // 1.+.SAVE: Hardcore/roguelike save game mode: // GameInProgress = false; // UnloadGane(); // redraw menu options } } else { // Begin new game if (press.Key == Keys.B) { GameMode.PopEngineMode(); MenuWindow.Hide(); BeginNewGame(); return; } //0.0: Generate new seed, or enter new seed } } }