Diffstat (limited to 'noncore/games/sfcave-sdl/menu.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/sfcave-sdl/menu.cpp | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/noncore/games/sfcave-sdl/menu.cpp b/noncore/games/sfcave-sdl/menu.cpp index 0a7366f..a4a4216 100644 --- a/noncore/games/sfcave-sdl/menu.cpp +++ b/noncore/games/sfcave-sdl/menu.cpp @@ -9,5 +9,5 @@ #include "starfield.h" -MenuOption :: MenuOption( QString text, int id ) +MenuOption :: MenuOption( string text, int id ) { menuText = text; @@ -116,4 +116,5 @@ Menu :: Menu( SFCave *p ) // Game Difficulty menu + MenuOption *customMenu = 0; Menu *gameDifficulty = new Menu( options ); item = gameDifficulty->addMenuOption( "Easy", MENU_DIFFICULTY_EASY ); @@ -123,4 +124,5 @@ Menu :: Menu( SFCave *p ) item = gameDifficulty->addMenuOption( "Hard", MENU_DIFFICULTY_HARD ); item->setNextMenu( options, false ); + customMenu = gameDifficulty->addMenuOption( "Custom", MENU_DIFFICULTY_CUSTOM ); item = gameDifficulty->addMenuOption( "Back", MENU_BACK ); item->setNextMenu( options, false ); @@ -137,4 +139,27 @@ Menu :: Menu( SFCave *p ) soundsMenu->setNextMenu( sounds ); + // Custom Menu + Menu *custom = new Menu( gameDifficulty ); + Menu *updown = new Menu( custom ); + item = custom->addMenuOption( "Thrust", MENU_CUSTOM_THRUST ); + item->setNextMenu( updown ); + item = custom->addMenuOption( "Gravity", MENU_CUSTOM_GRAVITY ); + item->setNextMenu( updown ); + item = custom->addMenuOption( "Max Speed Up", MENU_CUSTOM_MAXSPEEDUP ); + item->setNextMenu( updown ); + item = custom->addMenuOption( "Max Speed Down", MENU_CUSTOM_MAXSPEEDDOWN ); + item->setNextMenu( updown ); + item = custom->addMenuOption( "Back", MENU_BACK ); + item->setNextMenu( gameDifficulty, false ); + customMenu->setNextMenu( custom ); + + // Up down menu + item = updown->addMenuOption( "Increase", MENU_CUSTOM_INCREASE ); + item = updown->addMenuOption( "Decrease", MENU_CUSTOM_DECREASE ); + item = updown->addMenuOption( "Save", MENU_CUSTOM_SAVE ); + item->setNextMenu( custom, false ); + item = updown->addMenuOption( "Cancel", MENU_CUSTOM_CANCEL ); + item->setNextMenu( custom, false ); + // Set static variables for menu selection up mainMenu = this; @@ -216,5 +241,4 @@ int Menu :: handleKeys( SDL_KeyboardEvent &key ) return -1; - statusText = ""; switch( key.keysym.sym ) { @@ -277,6 +301,6 @@ int Menu :: handleKeys( SDL_KeyboardEvent &key ) if ( currentMenu->parentMenu != 0 ) { + statusText = ""; currentMenu = currentMenu->parentMenu; - printf( "HERE\n" ); return -1; @@ -287,7 +311,9 @@ int Menu :: handleKeys( SDL_KeyboardEvent &key ) case SDLK_SPACE: { + statusText = ""; // select menu item int id = currentMenu->currentMenuOption->getMenuId(); -// // if the current item has a child menu then move to that menu + + // if the current item has a child menu then move to that menu Menu *next = currentMenu->currentMenuOption->getNextMenu(); if ( next != 0 ) @@ -297,10 +323,7 @@ int Menu :: handleKeys( SDL_KeyboardEvent &key ) if ( down ) initCurrentMenu(); -// return -1; } -// else - { + return id; - } break; @@ -314,5 +337,5 @@ int Menu :: handleKeys( SDL_KeyboardEvent &key ) } -MenuOption *Menu :: addMenuOption( QString text, int id ) +MenuOption *Menu :: addMenuOption( string text, int id ) { MenuOption *item = new MenuOption( text, id ); |