8 http://www.newbreedsoftware.com/supertux/
15 #include <sys/types.h>
25 #include "leveleditor.h"
37 /* ---- Menu Options - Item Sound On/off ----*/
38 void menu_option_sound()
40 if (audio_device == YES) {
42 if(use_sound == YES) {
43 drawshadedcenteredtext("Sound ON", 224, letters_red, NO_UPDATE);
46 drawshadedcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE);
49 if(menuaction == MN_HIT) { /* Disable/Enable sound */
50 if(use_sound == YES) {
61 drawshadedcenteredtext("Sound ON", 224, letters_blue, NO_UPDATE);
63 drawshadedcenteredtext("Sound OFF", 224, letters_blue, NO_UPDATE);
66 else { /* if audio_device != YES */
67 /* let the user move over the deactivated option */
69 drawshadedcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE);
72 drawshadedcenteredtext("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 drawshadedcenteredtext("Music ON", 256, letters_red, NO_UPDATE);
87 drawshadedcenteredtext("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 drawshadedcenteredtext("Music ON", 256, letters_blue, NO_UPDATE);
120 drawshadedcenteredtext("Music OFF", 256, letters_blue, NO_UPDATE);
124 else { /* if audio_device != YES */
125 /* let the user move over the deactivated option */
127 drawshadedcenteredtext("Music OFF", 256, letters_red, NO_UPDATE);
130 drawshadedcenteredtext("Music OFF", 256, letters_black, NO_UPDATE);
137 /* Does the menu item exist? If not, we reset to the most down item */
138 if(menuitem > MENU_MAIN_ITEM_MAX)
140 else if(menuitem < 0)
141 menuitem = MENU_MAIN_ITEM_MAX;
143 /*The menu looks different, when the game is started */
146 drawshadedcenteredtext("Start Game", 192, letters_red, NO_UPDATE);
147 if(menuaction == MN_HIT) /* we are ready to start the game, if this item got hit */
154 drawshadedcenteredtext("Start Game", 192, letters_blue, NO_UPDATE);
158 drawshadedcenteredtext("Options", 224, letters_red, NO_UPDATE);
159 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
161 menumenu = MENU_OPTIONS;
166 drawshadedcenteredtext("Options", 224, letters_blue, NO_UPDATE);
170 drawshadedcenteredtext("Level editor", 256, letters_red, NO_UPDATE);
171 if(menuaction == MN_HIT) /* Set variables, so that the level editor is executed */
173 level_editor_started = YES;
178 drawshadedcenteredtext("Level editor", 256, letters_blue, NO_UPDATE);
182 drawshadedcenteredtext("Quit", 288, letters_red, NO_UPDATE);
183 if(menuaction == MN_HIT) /* Quit a running game or the application */
190 drawshadedcenteredtext("Quit", 288, letters_blue, NO_UPDATE);
198 /* Does the menu item exist? If not, we reset to the most down item */
199 if(menuitem > MENU_GAME_ITEM_MAX)
201 else if(menuitem < 0)
202 menuitem = MENU_GAME_ITEM_MAX;
204 /*The menu looks different, when the game is started */
207 drawshadedcenteredtext("Return To Game", 192, letters_red, NO_UPDATE);
208 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
212 drawshadedcenteredtext("Return To Game", 192, letters_blue, NO_UPDATE);
216 drawshadedcenteredtext("Options", 224, letters_red, NO_UPDATE);
217 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
219 menumenu = MENU_OPTIONS;
224 drawshadedcenteredtext("Options", 224, letters_blue, NO_UPDATE);
228 drawshadedcenteredtext("Quit Game", 256, letters_red, NO_UPDATE);
229 if(menuaction == MN_HIT) /* Quit a running game */
234 drawshadedcenteredtext("Quit Game", 256, letters_blue, NO_UPDATE);
240 int menu_options(void)
242 if(menuitem > MENU_OPTIONS_ITEM_MAX )
244 else if(menuitem < 0)
245 menuitem = MENU_OPTIONS_ITEM_MAX;
250 drawshadedcenteredtext("Fullscreen ON", 192, letters_red, NO_UPDATE);
252 drawshadedcenteredtext("Fullscreen OFF", 192, letters_red, NO_UPDATE);
253 if(menuaction == MN_HIT) /* Disable/Enable fullscreen */
266 drawshadedcenteredtext("Fullscreen ON", 192, letters_blue, NO_UPDATE);
268 drawshadedcenteredtext("Fullscreen OFF", 192, letters_blue, NO_UPDATE);
271 /* handle menu sound on/off option */
274 /* handle menu music on/off option */
279 drawshadedcenteredtext("Back", 288, letters_red, NO_UPDATE);
280 if(menuaction == MN_HIT) /* Go back to main menu. */
283 menumenu = MENU_GAME;
285 menumenu = MENU_MAIN;
290 drawshadedcenteredtext("Back", 288, letters_blue, NO_UPDATE);
295 /* Menu LevelEditor */
296 int menu_leveleditor(void)
298 if(menuitem > MENU_LEVELEDITOR_ITEM_MAX )
300 else if(menuitem < 0)
301 menuitem = MENU_LEVELEDITOR_ITEM_MAX;
305 drawshadedcenteredtext("Return To Level Editor", 192, letters_red, NO_UPDATE);
306 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
310 drawshadedcenteredtext("Return To Level Editor", 192, letters_blue, NO_UPDATE);
314 drawshadedcenteredtext("New Level", 224, letters_red, NO_UPDATE);
315 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
322 drawshadedcenteredtext("New Level", 224, letters_blue, NO_UPDATE);
325 drawshadedcenteredtext("Load Level", 256, letters_red, NO_UPDATE);
326 if(menuaction == MN_HIT) /* Quit a running game or the application */
333 drawshadedcenteredtext("Load Level", 256, letters_blue, NO_UPDATE);
336 drawshadedcenteredtext("Save Level", 288, letters_red, NO_UPDATE);
337 if(menuaction == MN_HIT) /* Quit a running game or the application */
344 drawshadedcenteredtext("Save Level", 288, letters_blue, NO_UPDATE);
348 drawshadedcenteredtext("Quit Level Editor", 320, letters_red, NO_UPDATE);
349 if(menuaction == MN_HIT) /* Quit a running game or the application */
355 drawshadedcenteredtext("Quit Level Editor", 320, letters_blue, NO_UPDATE);
361 /* Draw the menu and execute the (menu)events */
369 if(menuaction == MN_UP)
371 /* Go one menu-item up */
374 else if(menuaction == MN_DOWN)
375 ++menuitem; /* Go one menu-item down */
378 if(menumenu == MENU_MAIN)
382 else if(menumenu == MENU_GAME)
386 else if(menumenu == MENU_OPTIONS)
388 quit = menu_options();
390 else if(menumenu == MENU_LEVELEDITOR)
392 quit = menu_leveleditor();
400 /* Check for menu event */
401 void menu_event(SDLKey key)
412 else if (key == SDLK_DOWN)
416 menuaction = MN_DOWN;
419 else if (key == SDLK_SPACE || key == SDLK_RETURN)
427 /* FIXME: NO JOYSTICK SUPPORT */
429 else if (event.type == SDL_JOYBUTTONDOWN)
431 Joystick button: Continue: