private static void Postfix() { // click on level name in match settings -> jump to level select screen if (MenuManager.m_menu_sub_state == MenuSubState.ACTIVE && MenuManager.m_menu_micro_state == 2 && UIManager.m_menu_selection == 2 && Controls.JustPressed(CCInput.MENU_SELECT) && !UIManager.m_pushed_dir && !MenuManager.reversed_option) { float num = 500f * 1.5f; Vector2 pos = UIManager.SCREEN_CENTER; pos.y -= 217f; pos.y += 62f + 62f; pos.x += num * 0.5f - 123f; var size = new Vector2(24f, 24f); Debug.Log("mouse " + UIManager.m_mouse_pos + " pos " + pos + " size " + size); if (new Rect(pos + Vector2.right * 130f - size, size * 2).Contains(UIManager.m_mouse_pos)) // right button clicked? { return; } // workaround to undo that we have already selected the next level MenuManager.mms_level_num = MenuManager.mms_level_num == 0 ? GameManager.MultiplayerMission.NumLevels - 1 : MenuManager.mms_level_num - 1; MenuManager.SetDefaultSelection(0); MPLevelSelect.InitList(); MenuManager.m_menu_micro_state = 8; MenuManager.UIPulse(2f); MenuManager.PlaySelectSound(1f); } }
private static bool Prefix() { if (MenuManager.m_menu_micro_state != 8 || MenuManager.m_menu_sub_state != MenuSubState.ACTIVE) { return(true); } UIManager.MouseSelectUpdate(); UIManager.ControllerMenu(); if (UIManager.m_menu_selection >= 1000) { int idx = MPLevelSelect.LevelIndex[UIManager.m_menu_selection - 1000]; if (idx >= 0) { UIManager.SetLevelTexture(GameManager.MultiplayerMission, idx); } else { UIManager.SetTexture((Texture)Resources.Load("Textures/default")); } } //bool flag = MenuManager.CheckPaging(ref MenuManager.m_list_items_first, ref MenuManager.m_list_items_last, MenuManager.m_selected_mission.NumLevels, 6); var args = new object[] { MenuManager.m_list_items_first, MenuManager.m_list_items_last, MenuManager.m_list_items_total_count, MenuManager.m_list_items_max_per_page }; bool flag = (bool)_MenuManager_CheckPaging_Method.Invoke(null, args); MenuManager.m_list_items_first = (int)args[0]; MenuManager.m_list_items_last = (int)args[1]; if (!flag) { if (UIManager.PushedSelect(100) || (MenuManager.option_dir && UIManager.PushedDir())) { MenuManager.MaybeReverseOption(); if (UIManager.m_menu_selection == 100) // back { MenuManager.m_menu_micro_state = 2; MenuManager.UIPulse(2f); MenuManager.PlaySelectSound(1f); } else if (UIManager.m_menu_selection == 4) { MenuManager.PlayCycleSound(1f, 1f); MPLevelSelect.OTL = !MPLevelSelect.OTL; MPLevelSelect.InitList(); } else if (UIManager.m_menu_selection >= 1000) // level { MenuManager.mms_level_num = MPLevelSelect.LevelIndex[UIManager.m_menu_selection - 1000]; UIManager.SetLevelTexture(GameManager.MultiplayerMission, MenuManager.mms_level_num); MenuManager.m_menu_micro_state = 2; MenuManager.UIPulse(2f); MenuManager.PlaySelectSound(1f); } } } /* * break; * } * case MenuSubState.BACK: * if (true) //MenuManager.m_menu_state_timer > 0.25f) * { * //MenuManager.ChangeMenuState(MenuState.MAIN_MENU, false); * MenuManager.m_menu_micro_state = 3; * MenuManager.UIPulse(2f); * MenuManager.PlaySelectSound(1f); * } * break; * /* * default: * if (menu_sub_state == MenuSubState.FADE_IN) * { * if (true) // MenuManager.m_menu_state_timer > 0.25f) * { * UIManager.CreateUIElement(UIManager.SCREEN_CENTER, 7000, UIElementType.CHALLENGE_SELECT_MENU); * MenuManager.m_menu_sub_state = MenuSubState.ACTIVE; * MenuManager.SetDefaultSelection(1000); * * MPLevelSelect.InitList(); * //NetworkManager.StartServerWithLocalConnection(); // ??? * } * } * break; */ return(false); }