8 http://www.newbreedsoftware.com/supertux/
10 December 20, 2003 - December 29, 2003
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)
46 drawcenteredtext("Sound ON", 224, letters_red, NO_UPDATE, 2);
50 drawcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE, 2);
53 if(menuaction == MN_HIT)
54 { /* Disable/Enable sound */
69 drawcenteredtext("Sound ON", 224, letters_blue, NO_UPDATE, 2);
71 drawcenteredtext("Sound OFF", 224, letters_blue, NO_UPDATE, 2);
75 { /* if audio_device != YES */
76 /* let the user move over the deactivated option */
79 drawcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE, 2);
83 drawcenteredtext("Sound OFF", 224, letters_black, NO_UPDATE, 2);
89 /* ---- Menu Options - Item Music On/off ----*/
90 void menu_option_music()
92 if (audio_device == YES)
98 drawcenteredtext("Music ON", 256, letters_red, NO_UPDATE, 2);
102 drawcenteredtext("Music OFF", 256, letters_red, NO_UPDATE, 2);
104 if(menuaction == MN_HIT)
105 { /* Disable/Enable music */
107 { /* In the menu no music is played, so we have to check only use_music */
115 if (!playing_music())
117 switch (current_music)
120 play_music(level_song, 2);
123 play_music(herring_song, 2);
125 case HURRYUP_MUSIC: // keep the compiler happy
126 case NO_MUSIC: // keep the compiler happy for the moment :-)
134 } /* if menuitem != 2 : print normal blue font */
139 drawcenteredtext("Music ON", 256, letters_blue, NO_UPDATE, 2);
143 drawcenteredtext("Music OFF", 256, letters_blue, NO_UPDATE, 2);
148 { /* if audio_device != YES */
149 /* let the user move over the deactivated option */
152 drawcenteredtext("Music OFF", 256, letters_red, NO_UPDATE, 2);
156 drawcenteredtext("Music OFF", 256, letters_black, NO_UPDATE, 2);
163 /* Does the menu item exist? If not, we reset to the most down item */
164 if(menuitem > MENU_MAIN_ITEM_MAX)
166 else if(menuitem < 0)
167 menuitem = MENU_MAIN_ITEM_MAX;
169 /*The menu looks different, when the game is started */
172 drawcenteredtext("Start Game", 192, letters_red, NO_UPDATE, 2);
173 if(menuaction == MN_HIT) /* we are ready to start the game, if this item got hit */
180 drawcenteredtext("Start Game", 192, letters_blue, NO_UPDATE, 2);
184 drawcenteredtext("Options", 224, letters_red, NO_UPDATE, 2);
185 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
187 menumenu = MENU_OPTIONS;
192 drawcenteredtext("Options", 224, letters_blue, NO_UPDATE, 2);
196 drawcenteredtext("Level editor", 256, letters_red, NO_UPDATE, 2);
197 if(menuaction == MN_HIT) /* Set variables, so that the level editor is executed */
199 level_editor_started = YES;
204 drawcenteredtext("Level editor", 256, letters_blue, NO_UPDATE, 2);
208 drawcenteredtext("Quit", 288, letters_red, NO_UPDATE, 2);
209 if(menuaction == MN_HIT) /* Quit a running game or the application */
216 drawcenteredtext("Quit", 288, letters_blue, NO_UPDATE, 2);
224 /* Does the menu item exist? If not, we reset to the most down item */
225 if(menuitem > MENU_GAME_ITEM_MAX)
227 else if(menuitem < 0)
228 menuitem = MENU_GAME_ITEM_MAX;
230 /*The menu looks different, when the game is started */
233 drawcenteredtext("Return To Game", 192, letters_red, NO_UPDATE, 2);
234 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
238 drawcenteredtext("Return To Game", 192, letters_blue, NO_UPDATE, 2);
242 drawcenteredtext("Options", 224, letters_red, NO_UPDATE, 2);
243 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
245 menumenu = MENU_OPTIONS;
250 drawcenteredtext("Options", 224, letters_blue, NO_UPDATE, 2);
254 drawcenteredtext("Quit Game", 256, letters_red, NO_UPDATE, 2);
255 if(menuaction == MN_HIT) /* Quit a running game */
260 drawcenteredtext("Quit Game", 256, letters_blue, NO_UPDATE, 2);
266 int menu_options(void)
268 if(menuitem > MENU_OPTIONS_ITEM_MAX )
270 else if(menuitem < 0)
271 menuitem = MENU_OPTIONS_ITEM_MAX;
276 drawcenteredtext("Fullscreen ON", 192, letters_red, NO_UPDATE, 2);
278 drawcenteredtext("Fullscreen OFF", 192, letters_red, NO_UPDATE, 2);
279 if(menuaction == MN_HIT) /* Disable/Enable fullscreen */
292 drawcenteredtext("Fullscreen ON", 192, letters_blue, NO_UPDATE, 2);
294 drawcenteredtext("Fullscreen OFF", 192, letters_blue, NO_UPDATE, 2);
297 /* handle menu sound on/off option */
300 /* handle menu music on/off option */
305 drawcenteredtext("Back", 288, letters_red, NO_UPDATE, 2);
306 if(menuaction == MN_HIT) /* Go back to main menu. */
309 menumenu = MENU_GAME;
311 menumenu = MENU_MAIN;
316 drawcenteredtext("Back", 288, letters_blue, NO_UPDATE, 2);
321 /* Menu LevelEditor */
322 int menu_leveleditor(void)
324 if(menuitem > MENU_LEVELEDITOR_ITEM_MAX )
326 else if(menuitem < 0)
327 menuitem = MENU_LEVELEDITOR_ITEM_MAX;
331 drawcenteredtext("Return To Level Editor", 192, letters_red, NO_UPDATE, 2);
332 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
336 drawcenteredtext("Return To Level Editor", 192, letters_blue, NO_UPDATE, 2);
340 drawcenteredtext("New Level", 224, letters_red, NO_UPDATE, 2);
341 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
348 drawcenteredtext("New Level", 224, letters_blue, NO_UPDATE, 2);
351 drawcenteredtext("Load Level", 256, letters_red, NO_UPDATE, 2);
352 if(menuaction == MN_HIT) /* Create a new Level and load it into the level-editor. */
359 drawcenteredtext("Load Level", 256, letters_blue, NO_UPDATE, 2);
362 drawcenteredtext("Save Level", 288, letters_red, NO_UPDATE, 2);
363 if(menuaction == MN_HIT) /* Save the current level in the level-editor. */
370 drawcenteredtext("Save Level", 288, letters_blue, NO_UPDATE, 2);
374 drawcenteredtext("Quit Level Editor", 320, letters_red, NO_UPDATE, 2);
375 if(menuaction == MN_HIT) /* Quit the level-editor. (to the main-menu) */
381 drawcenteredtext("Quit Level Editor", 320, letters_blue, NO_UPDATE, 2);
387 /* Draw the menu and execute the (menu)events */
395 if(menuaction == MN_UP)
397 /* Go one menu-item up */
400 else if(menuaction == MN_DOWN)
401 ++menuitem; /* Go one menu-item down */
404 if(menumenu == MENU_MAIN)
408 else if(menumenu == MENU_GAME)
412 else if(menumenu == MENU_OPTIONS)
414 quit = menu_options();
416 else if(menumenu == MENU_LEVELEDITOR)
418 quit = menu_leveleditor();
426 /* Check for menu event */
427 void menu_event(SDLKey key)
438 else if (key == SDLK_DOWN)
442 menuaction = MN_DOWN;
445 else if (key == SDLK_SPACE || key == SDLK_RETURN)
453 /* FIXME: NO JOYSTICK SUPPORT */
455 else if (event.type == SDL_JOYBUTTONDOWN)
457 Joystick button: Continue: