public void NextMenu() { try { currentScreen = screens[screens.IndexOf(currentScreen) + 1]; } finally { } }
/// <summary> /// /// </summary> /// <param name="type">Type of menu option</param> /// <param name="text"></param> private MenuOption(MenuOptionType type, string text, MenuScreen link, MenuCommand command) { this.type = type; this.text = text; this.link = link; this.command = command; }
public MenuOption(MenuOptionType type, string text, MenuScreen link) : this(type, text, link, MenuCommand.NONE) { }
/// <summary> /// Initialize the game menus /// </summary> public void InitializeMenus() { // Set up main screen MenuScreen mainScreen = new MenuScreen(520.0f, 180.0f, 50.0f); //floorsScreen = new MenuScreen(520.0f, 150.0f, 50.0f, true); floorsScreen = new MenuScreenGraphical(); introductionRoomsScreen = new RoomSelectionMenu(); recreationRoomsScreen = new RoomSelectionMenu(); engineeringRoomsScreen = new RoomSelectionMenu(); coreRoomsScreen = new RoomSelectionMenu(); mainScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Reset Game", MenuCommand.New)); //mainScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Unlock All", MenuCommand.LoadCompleted)); //mainScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Load Game", MenuCommand.Load)); mainScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Sector Select", floorsScreen)); //mainScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Launch Editor", MenuCommand.LaunchEditor)); mainScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Exit", MenuCommand.ExitProgram)); //floorsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Introduction", MenuCommand.LoadGenesis)); //floorsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Recreation", MenuCommand.LoadExodus)); //floorsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Engineering", MenuCommand.LoadLeviticus)); //floorsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Core", MenuCommand.LoadNumbers)); floorsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Introduction", introductionRoomsScreen)); floorsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Recreation", recreationRoomsScreen)); floorsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Engineering", engineeringRoomsScreen)); floorsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Core", coreRoomsScreen)); floorsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Credits", MenuCommand.LoadDeuteronomy)); floorsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Main Menu", mainScreen)); savedgame.disabledOptions.AddRange(new List<int> { 1, 2, 3 }); /*if (savedgame.LoadGame()) // if there is a saved game, load it instead of the hardcoded starter version above { mainScreen.Options[0] = new MenuOption(MenuOptionType.Command, "Continue", MenuCommand.Continue); }*/ introductionRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "introduction1", MenuCommand.LoadIntroduction)); introductionRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "introduction2", MenuCommand.LoadIntroduction)); introductionRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "introduction3", MenuCommand.LoadIntroduction)); introductionRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "introduction4", MenuCommand.LoadIntroduction)); introductionRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "introduction5", MenuCommand.LoadIntroduction)); introductionRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Sector Select", floorsScreen)); recreationRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "recreation1", MenuCommand.LoadRecreation)); recreationRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "recreation2", MenuCommand.LoadRecreation)); recreationRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "recreation3", MenuCommand.LoadRecreation)); recreationRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "recreation4", MenuCommand.LoadRecreation)); recreationRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "recreation5", MenuCommand.LoadRecreation)); recreationRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Sector Select", floorsScreen)); engineeringRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "engineering1", MenuCommand.LoadEngineering)); engineeringRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "engineering2", MenuCommand.LoadEngineering)); engineeringRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "engineering3", MenuCommand.LoadEngineering)); engineeringRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "engineering4", MenuCommand.LoadEngineering)); engineeringRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "engineering5", MenuCommand.LoadEngineering)); engineeringRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Sector Select", floorsScreen)); coreRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "core1", MenuCommand.LoadCore)); coreRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "core2", MenuCommand.LoadCore)); coreRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "core3", MenuCommand.LoadCore)); coreRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "core4", MenuCommand.LoadCore)); coreRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Command, "core5", MenuCommand.LoadCore)); coreRoomsScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Sector Select", floorsScreen)); savedgame.LoadGame(); startMenu.Screens.Add(mainScreen); startMenu.Screens.Add(floorsScreen); startMenu.Screens.Add(introductionRoomsScreen); startMenu.Screens.Add(recreationRoomsScreen); startMenu.Screens.Add(engineeringRoomsScreen); startMenu.Screens.Add(coreRoomsScreen); // Pause screen pauseScreen = new MenuScreen(520.0f, 180.0f, 50.0f); pauseScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Resume", MenuCommand.Resume)); //pauseScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Load", MenuCommand.Load)); //pauseScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Main Menu", MenuCommand.LinkToMainMenu)); // Can link between engines... //pauseScreen.Options.Add(new MenuOption(MenuOptionType.Command, "Return to Rooms", MenuCommand.LinkToRooms)); pauseScreen.Options.Add(new MenuOption(MenuOptionType.Link, "Sector Select", floorsScreen)); //pauseMenu.Screens.Add(pauseScreen); startMenu.Screens.Add(pauseScreen); SetCurrentMenu(startMenu); }
public void Reset() { currentScreen = screens[0]; }
public void Update() { //currentScreen.Update(); if (currentScreen is MenuScreenGraphical) ((MenuScreenGraphical)currentScreen).Update(); else if (currentScreen is RoomSelectionMenu) ((RoomSelectionMenu)currentScreen).Update(); else currentScreen.Update(); MenuOption selected = currentScreen.ReturnCommand(); // command returned by user if (selected != null) { switch (selected.Type) { case MenuOptionType.Link: KeyboardState prevks = currentScreen.controller.keyState; MouseState prevms = currentScreen.ms; currentScreen = selected.Link; // pass along the previous keystate the first time so we don't duplicate selection currentScreen.controller.prevState = prevks; currentScreen.prevms = prevms; break; case MenuOptionType.Command: command = selected.Command; break; } } }