コード例 #1
0
        public void setCurrentMenu(MenuState m)
        {
            currentMenu.dist = 0;
            //setOverlayMode = false;

            //Console.WriteLine(m);
            if (!setOverlayMode)
            {
                menuStack.Clear();
            }

            menuStack.Insert(0, currentMenu.getItems());

            switch (m)
            {
            case MenuState.MainMenu:
                currentMenu    = mainMenu;
                setOverlayMode = false;
                break;

            case MenuState.SinglePlayer:
                currentMenu    = singlePlayerMenu;
                setOverlayMode = false;
                break;

            case MenuState.StartGame:
                startGame();
                break;

            case MenuState.SelectMap:
                setOverlayMode = true;
                currentMenu    = selectMapMenu;
                //Load map list from map engine
                break;

            case MenuState.BotOptions:
                setOverlayMode = true;
                currentMenu    = botNumberMenu;
                break;

            case MenuState.SplitScreen:
                setOverlayMode = false;
                Console.WriteLine("SplitScreen Selected from arc");
                break;

            case MenuState.Options:
                setOverlayMode = false;
                Console.WriteLine("Options Selected from arc");
                break;

            case MenuState.Exit:
                coreEngine.Exit();
                break;

            //when storing variable changes
            case MenuState.Null:
                if (currentMenu == selectMapMenu)
                {
                    //store name of chosen map (selected item)
                }
                if (currentMenu == botNumberMenu)
                {
                    //store name of chosen number of bots
                    selectedNumBots = Int16.Parse(currentMenu.getSelectedItem().label);
                    refreshSPMenu();
                }
                setCurrentMenu(currentMenu.previousMenu);
                break;
            }

            //Console.WriteLine("--------------\n"+menuStack.Count);

            if (!setOverlayMode)
            {
                menuStack.Clear();
            }
            else if (menuStack.Count >= currentMenu.level)
            {
                menuStack.RemoveAt(0);
                menuStack.RemoveAt(0);
                //Console.WriteLine(menuStack.Count);
            }

            menuStack.Insert(0, currentMenu.getItems());
            //Console.WriteLine(menuStack.Count);
        }