8 http://www.newbreedsoftware.com/supertux/
15 #include <sys/types.h>
37 /* ---- Menu Options - Item Sound On/off ----*/
38 void menu_option_sound()
40 if (audio_device == YES) {
42 if(use_sound == YES) {
43 drawcenteredtext("Sound ON", 224, letters_red, NO_UPDATE);
46 drawcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE);
49 if(menuaction == MN_HIT) { /* Disable/Enable sound */
50 if(use_sound == YES) {
61 drawcenteredtext("Sound ON", 224, letters_blue, NO_UPDATE);
63 drawcenteredtext("Sound OFF", 224, letters_blue, NO_UPDATE);
66 else { /* if audio_device != YES */
67 /* let the user move over the deactivated option */
69 drawcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE);
72 drawcenteredtext("Sound OFF", 224, letters_black, NO_UPDATE);
78 /* ---- Menu Options - Item Music On/off ----*/
79 void menu_option_music()
81 if (audio_device == YES) {
83 if(use_music == YES) {
84 drawcenteredtext("Music ON", 256, letters_red, NO_UPDATE);
87 drawcenteredtext("Music OFF", 256, letters_red, NO_UPDATE);
89 if(menuaction == MN_HIT) { /* Disable/Enable music */
90 if(use_music == YES) { /* In the menu no music is played, so we have to check only use_music */
97 if (!playing_music()) {
98 switch (current_music) {
100 play_music(level_song, 1);
103 play_music(herring_song, 1);
105 case HURRYUP_MUSIC: // keep the compiler happy
106 case NO_MUSIC: // keep the compiler happy for the moment :-)
114 } /* if menuitem != 2 : print normal blue font */
116 if(use_music == YES) {
117 drawcenteredtext("Music ON", 256, letters_blue, NO_UPDATE);
120 drawcenteredtext("Music OFF", 256, letters_blue, NO_UPDATE);
124 else { /* if audio_device != YES */
125 /* let the user move over the deactivated option */
127 drawcenteredtext("Music OFF", 256, letters_red, NO_UPDATE);
130 drawcenteredtext("Music OFF", 256, letters_black, NO_UPDATE);
136 /* Draw the menu and execute the (menu)events */
144 if(menuaction == MN_UP)
146 /* Go one menu-item up, if possible */
150 else if(menuaction == MN_DOWN)
151 ++menuitem; /* Go one menu-item down */
154 if(menumenu == MENU_MAIN)
156 /* Does the menu item exist? If not, we reset to the most down item */
157 if(menuitem >= MENU_MAIN_ITEM_MAX)
158 menuitem = MENU_MAIN_ITEM_MAX - 1;
160 /*The menu looks different, when the game is started */
165 drawcenteredtext("Return To Game", 192, letters_red, NO_UPDATE);
166 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
170 drawcenteredtext("Return To Game", 192, letters_blue, NO_UPDATE);
176 drawcenteredtext("Start Game", 192, letters_red, NO_UPDATE);
177 if(menuaction == MN_HIT) /* we are ready to start the game, if this item got hit */
184 drawcenteredtext("Start Game", 192, letters_blue, NO_UPDATE);
189 drawcenteredtext("Options", 224, letters_red, NO_UPDATE);
190 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
192 menumenu = MENU_OPTIONS;
197 drawcenteredtext("Options", 224, letters_blue, NO_UPDATE);
202 drawcenteredtext("Quit Game", 256, letters_red, NO_UPDATE);
204 drawcenteredtext("Quit", 256, letters_red, NO_UPDATE);
205 if(menuaction == MN_HIT) /* Quit a running game or the application */
213 drawcenteredtext("Quit Game", 256, letters_blue, NO_UPDATE);
215 drawcenteredtext("Quit", 256, letters_blue, NO_UPDATE);
219 else if(menumenu == MENU_OPTIONS)
221 if(menuitem >= MENU_OPTIONS_ITEM_MAX )
222 menuitem = MENU_OPTIONS_ITEM_MAX - 1;
227 drawcenteredtext("Fullscreen ON", 192, letters_red, NO_UPDATE);
229 drawcenteredtext("Fullscreen OFF", 192, letters_red, NO_UPDATE);
230 if(menuaction == MN_HIT) /* Disable/Enable fullscreen */
243 drawcenteredtext("Fullscreen ON", 192, letters_blue, NO_UPDATE);
245 drawcenteredtext("Fullscreen OFF", 192, letters_blue, NO_UPDATE);
248 /* handle menu sound on/off option */
251 /* handle menu music on/off option */
256 drawcenteredtext("Back", 288, letters_red, NO_UPDATE);
257 if(menuaction == MN_HIT) /* Go back to main menu. */
259 menumenu = MENU_MAIN;
264 drawcenteredtext("Back", 288, letters_blue, NO_UPDATE);
275 /* Check for menu event */
276 void menu_event(SDLKey key)
287 else if (key == SDLK_DOWN)
291 menuaction = MN_DOWN;
294 else if (key == SDLK_SPACE || key == SDLK_RETURN)
302 /* FIXME: NO JOYSTICK SUPPORT */
304 else if (event.type == SDL_JOYBUTTONDOWN)
306 Joystick button: Continue: