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 ; } }
void BeginState::update(TimeDuration) { _runner.setState(MainMenuState(_runner)); }