8 http://www.newbreedsoftware.com/supertux/
15 #include <sys/types.h>
38 /* Draw the menu and execute the (menu)events */
46 if(menuaction == MN_UP)
48 /* Go one menu-item up, if possible */
52 else if(menuaction == MN_DOWN)
53 ++menuitem; /* Go one menu-item down */
56 if(menumenu == MENU_MAIN)
58 /* Does the menu item exist? If not, we reset to the most down item */
62 /*The menu looks different, when the game is started */
67 drawcenteredtext("Return To Game", 192, letters_red, NO_UPDATE);
68 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
72 drawcenteredtext("Return To Game", 192, letters_blue, NO_UPDATE);
78 drawcenteredtext("Start Game", 192, letters_red, NO_UPDATE);
79 if(menuaction == MN_HIT) /* we are ready to start the game, if this item got hit */
86 drawcenteredtext("Start Game", 192, letters_blue, NO_UPDATE);
91 drawcenteredtext("Options", 224, letters_red, NO_UPDATE);
92 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
94 menumenu = MENU_OPTIONS;
99 drawcenteredtext("Options", 224, letters_blue, NO_UPDATE);
104 drawcenteredtext("Quit Game", 256, letters_red, NO_UPDATE);
106 drawcenteredtext("Quit", 256, letters_red, NO_UPDATE);
107 if(menuaction == MN_HIT) /* Quit a running game or the application */
115 drawcenteredtext("Quit Game", 256, letters_blue, NO_UPDATE);
117 drawcenteredtext("Quit", 256, letters_blue, NO_UPDATE);
121 else if(menumenu == MENU_OPTIONS)
129 drawcenteredtext("Fullscreen ON", 192, letters_red, NO_UPDATE);
131 drawcenteredtext("Fullscreen OFF", 192, letters_red, NO_UPDATE);
132 if(menuaction == MN_HIT) /* Disable/Enable fullscreen */
145 drawcenteredtext("Fullscreen ON", 192, letters_blue, NO_UPDATE);
147 drawcenteredtext("Fullscreen OFF", 192, letters_blue, NO_UPDATE);
154 drawcenteredtext("Sound ON", 224, letters_red, NO_UPDATE);
156 drawcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE);
157 if(menuaction == MN_HIT) /* Disable/Enable sound */
170 switch (current_music)
173 play_music(level_song, 1);
176 play_music(herring_song, 1);
178 case HURRYUP_MUSIC: // keep the compiler happy
179 case NO_MUSIC: // keep the compiler happy for the moment :-)
191 drawcenteredtext("Sound ON", 224, letters_blue, NO_UPDATE);
193 drawcenteredtext("Sound OFF", 224, letters_blue, NO_UPDATE);
198 drawcenteredtext("Back", 256, letters_red, NO_UPDATE);
199 if(menuaction == MN_HIT) /* Go back to main menu. */
201 menumenu = MENU_MAIN;
206 drawcenteredtext("Back", 256, letters_blue, NO_UPDATE);
217 /* Check for menu event */
218 void menu_event(SDLKey key)
229 else if (key == SDLK_DOWN)
233 menuaction = MN_DOWN;
236 else if (key == SDLK_SPACE || key == SDLK_RETURN)
244 /* FIXME: NO JOYSTICK SUPPORT */
246 else if (event.type == SDL_JOYBUTTONDOWN)
248 Joystick button: Continue: