private void ContinueGame() { MainMenuBackground.Hide(); Engine.Resume(); Engine.Renderer.GUIManager.ShowSoftwareCursor = false; }
IEnumerable <Item> GetMenuItems() { // Quit var Item = new Item(GlblRes.Quit); Item.OnClick = () => { if (GameRunning) { ExitConfirmationWindow.ShowModal(); ShowLogo(false); ExitConfirmationWindow.Focused = true; } else { Engine.Exit(); } }; yield return(Item); // Credits Item = new Item(GlblRes.Credits); Item.OnClick = () => { CreditsWindow.Show(); ShowLogo(false); CreditsWindow.Focused = true; }; yield return(Item); // Settings Item = new Item(GlblRes.Settings); Item.OnClick = () => { SettingsWindow.ShowModal(); ShowLogo(false); SettingsWindow.Focused = true; }; yield return(Item); // Load Item = new Item(GlblRes.Load); Item.IsVisible = () => { return(SaveGames.Count > 0); }; Item.OnClick = () => { LoadGameWindow.ShowModal(); ShowLogo(false); LoadGameListbox.Focused = true; }; yield return(Item); // Save Item = new Item(GlblRes.Save); Item.IsVisible = () => { return(GameRunning); }; Item.OnClick = () => { ShowLogo(false); SaveGameWindow.ShowModal(); }; yield return(Item); // Continue Item = new Item(GlblRes.Continue); Item.OnClick = () => { ContinueGame(); }; Item.IsVisible = () => { return(GameRunning); }; yield return(Item); // New Game Item = new Item(GlblRes.New_Game); Item.OnClick = () => { MainMenuBackground.Hide(); Engine.Renderer.GUIManager.ShowSoftwareCursor = false; Engine.StartGame(); }; yield return(Item); }
void AddLoadGameWindow(Manager gui) { var LoadButton = new MenuButton(gui, ClickSound, FocusSound, GameSettings); LoadGameWindow = new Window(gui); LoadGameWindow.Width = 300; LoadGameWindow.Height = 200; LoadGameWindow.CloseButtonVisible = false; LoadGameWindow.Text = GlblRes.Load_Savegame; LoadGameWindow.Parent = MainMenuBackground; LoadGameWindow.Init(); LoadGameWindow.Center(new Point(Game.VIRTUAL_WIDTH, Game.VIRTUAL_HEIGHT)); LoadGameWindow.Visible = false; LoadGameWindow.Resizable = false; LoadGameWindow.IconVisible = false; LoadGameWindow.DragAlpha = 255; LoadGameWindow.Movable = false; var SaveGameScreenshot = new ImageBox(gui); SaveGameScreenshot.Parent = MainMenuBackground; SaveGameScreenshot.Width = MainMenuBackground.Width; SaveGameScreenshot.Height = MainMenuBackground.Height; SaveGameScreenshot.Visible = false; SaveGameScreenshot.SizeMode = SizeMode.Stretched; LoadGameWindow.Closed += (s, e) => { LoadGameListbox.ItemIndex = -1; }; LoadGameListbox = new ListBox(gui); LoadGameListbox.Width = LoadGameWindow.ClientWidth; LoadGameListbox.Parent = LoadGameWindow; LoadGameListbox.Height = LoadGameWindow.ClientHeight - 35; LoadGameListbox.ItemIndexChanged += (s, e) => { ClickSound.Play(GameSettings.SoundEffectVolume, 0f, 0f); MainMenuLabel.Text = string.Empty; if (LoadGameListbox.ItemIndex > -1) { if (SaveGameScreenshot.Image != null) { SaveGameScreenshot.Image.Dispose(); } var Screenshot = SaveGames[SaveGames.Keys.ElementAt(LoadGameListbox.ItemIndex)].Screenshot; if (Screenshot != null) { using (Stream ScreenshotStream = new MemoryStream(Screenshot)) { SaveGameScreenshot.Image = Texture2D.FromStream(Engine.Renderer.GraphicsDevice, ScreenshotStream); } } SaveGameScreenshot.Show(); LoadButton.Enabled = true; } else { SaveGameScreenshot.Hide(); LoadButton.Enabled = false; } }; var Bevel = new Bevel(gui); Bevel.Parent = LoadGameWindow; Bevel.Anchor = Anchors.Bottom | Anchors.Left | Anchors.Right; Bevel.Height = 35; Bevel.Style = BevelStyle.Raised; Bevel.Top = LoadGameWindow.ClientHeight - Bevel.Height; Bevel.Width = LoadGameWindow.ClientWidth; LoadButton.Init(); LoadButton.Parent = Bevel; LoadButton.Enabled = false; LoadButton.Text = GlblRes.Load_Savegame; LoadButton.Click += (s, e) => { MainMenuLabel.Text = string.Empty; try { Engine.LoadState(SaveGames.Keys.ElementAt(LoadGameListbox.ItemIndex)); } catch { MainMenuLabel.Text = GlblRes.Could_not_load_save_game_Maybe_it_was_created_in_an_earlier_game_version; return; } LoadGameWindow.Close(); MainMenuBackground.Hide(); Engine.Resume(); Engine.Renderer.GUIManager.ShowSoftwareCursor = false; }; LoadButton.Width = 130; LoadButton.Left = 5; LoadButton.Top = 5; var CancelButton = new MenuButton(gui, ClickSound, FocusSound, GameSettings); CancelButton.Init(); CancelButton.Parent = Bevel; CancelButton.Text = GlblRes.Cancel; CancelButton.Click += (s, e) => { LoadGameWindow.Close(); ShowLogo(true); }; CancelButton.Width = 130; CancelButton.Left = 150; CancelButton.Top = 5; gui.Add(LoadGameWindow); }