void Game::MainMenu() {

    mmenu_state = MainMenuState();
    
    while (true) 
    {
        // update screen
        MainMenuDraw();

        // process key
        int key = Console::GetInstance().WaitKey();

        if (key == 'w' || key == 's') 
        {
            if (key == 'w') 
            {
                mmenu_state.menu_index = 
                    ( mmenu_state.menu_index - 1 < 0 ? NumMenuItems - 1 : mmenu_state.menu_index - 1 );
            }
            else {
                mmenu_state.menu_index = 
                    ( mmenu_state.menu_index + 1 > NumMenuItems - 1 ? 0 : mmenu_state.menu_index + 1 );
            }
        }
        // select item
        else if (key == 13) 
        {
            if ( mmenu_state.menu_index == 2 ) {

                NextState( G_EXIT );
                break;
            }
            if ( mmenu_state.menu_index == 1 ) {

                NextState( G_HOF_SCREEN );
                break;
            }
            if ( mmenu_state.menu_index == 0 ) {

                NextState( G_NET_MENU );
                break;
            }
        }
        else ;
    }
}
Exemple #2
0
void BeginState::update(TimeDuration)
{
	_runner.setState(MainMenuState(_runner));
}