public override void ExecuteMenuCommand() { GlobalInputController.LockInput(); switch (MenuAction) { case MenuCommand.EXIT_GAME: Application.Quit(); break; case MenuCommand.RESTART: SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex, LoadSceneMode.Single); break; case MenuCommand.CHANGE_SCENE: if (c_itemActiveData.i_nextScene > -1 && c_itemActiveData.i_nextScene < SceneManager.sceneCountInBuildSettings) { MessageServer.OnSceneChange(); SceneManager.LoadScene(c_itemActiveData.i_nextScene, LoadSceneMode.Single); } break; case MenuCommand.RESUME: MessageServer.SendMessage(MessageID.PAUSE, new Message(0)); break; case MenuCommand.CONFIRM: break; } }
public override void ExecuteMenuCommand() { GlobalInputController.LockInput(); switch (MenuAction) { case MenuCommand.EXIT_GAME: Application.Quit(); break; case MenuCommand.RESTART: SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex, LoadSceneMode.Single); break; case MenuCommand.CHANGE_SCENE: if (c_itemActiveData.i_nextScene > -1) { MessageServer.OnSceneChange(); SceneManager.LoadScene(c_itemActiveData.i_nextScene, LoadSceneMode.Single); } break; case MenuCommand.RESUME: MessageServer.SendMessage(MessageID.PAUSE, new Message(0)); break; case MenuCommand.MENU_BACK: MessageServer.SendMessage(MessageID.MENU_BACK, new Message()); break; case MenuCommand.MENU_FORWARD: if (ChildMenuController == null) { return; } MessageServer.SendMessage(MessageID.MENU_FORWARD, new Message(ChildMenuController.GetSuperMenuIndex())); break; case MenuCommand.CONFIRM: break; case MenuCommand.EDIT_DATA: if (DataItem == DataTarget.ERROR_TARGET) { return; } if (ChildEditController == null) { return; } // open data editor, wait for return ChildEditController.Activate(DataItem); MessageServer.SendMessage(MessageID.EDIT_START, new Message()); break; case MenuCommand.RESET_CONTROLS: GlobalGameData.SetControlsToDefault(DataItem == DataTarget.CONTROLLER_CONTROLS ? InputType.CONTROLLER_GENERIC : InputType.KEYBOARD_GENERIC); break; } }
/// <summary> /// Pops the value of the menu stack and then takes the associated value /// and activates it. Used when returning to an "earlier" menu. /// </summary> public void PopMenuStack() { m_bMenuInputActive = false; if (s_controllerStack.Count == 0) { if (EmptyStackReturnsToPrevious) { MessageServer.OnSceneChange(); SceneManager.LoadScene(PreviousSceneID, LoadSceneMode.Single); } return; } int newIndex = s_controllerStack.Pop(); m_activeMenuController.HideMenu(); m_activeMenuControllerIndex = newIndex; m_activeMenuController = MenuControllers[newIndex]; m_activeMenuController.ShowMenu(); m_activeMenuController.UpdateHelpTextOnBack(); }