8 http://www.newbreedsoftware.com/supertux/
10 December 20, 2003 - December 30, 2003
15 #include <sys/types.h>
25 #include "leveleditor.h"
38 /* ---- Menu Options - Item Sound On/off ----*/
39 void menu_option_sound()
41 if (audio_device == YES)
47 drawcenteredtext("Sound ON", 224, letters_red, NO_UPDATE, 2);
51 drawcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE, 2);
54 if(menuaction == MN_HIT)
55 { /* Disable/Enable sound */
70 drawcenteredtext("Sound ON", 224, letters_blue, NO_UPDATE, 2);
72 drawcenteredtext("Sound OFF", 224, letters_blue, NO_UPDATE, 2);
76 { /* if audio_device != YES */
77 /* let the user move over the deactivated option */
80 drawcenteredtext("Sound OFF", 224, letters_red, NO_UPDATE, 2);
84 drawcenteredtext("Sound OFF", 224, letters_black, NO_UPDATE, 2);
90 /* ---- Menu Options - Item Music On/off ----*/
91 void menu_option_music()
93 if (audio_device == YES)
99 drawcenteredtext("Music ON", 256, letters_red, NO_UPDATE, 2);
103 drawcenteredtext("Music OFF", 256, letters_red, NO_UPDATE, 2);
105 if(menuaction == MN_HIT)
106 { /* Disable/Enable music */
108 { /* In the menu no music is played, so we have to check only use_music */
116 if (!playing_music())
118 play_current_music();
123 } /* if menuitem != 2 : print normal blue font */
128 drawcenteredtext("Music ON", 256, letters_blue, NO_UPDATE, 2);
132 drawcenteredtext("Music OFF", 256, letters_blue, NO_UPDATE, 2);
137 { /* if audio_device != YES */
138 /* let the user move over the deactivated option */
141 drawcenteredtext("Music OFF", 256, letters_red, NO_UPDATE, 2);
145 drawcenteredtext("Music OFF", 256, letters_black, NO_UPDATE, 2);
152 /* Does the menu item exist? If not, we reset to the most down item */
153 if(menuitem > MENU_MAIN_ITEM_MAX)
155 else if(menuitem < 0)
156 menuitem = MENU_MAIN_ITEM_MAX;
158 /*The menu looks different, when the game is started */
161 drawcenteredtext("Start Game", 192, letters_red, NO_UPDATE, 2);
162 if(menuaction == MN_HIT) /* we are ready to start the game, if this item got hit */
169 drawcenteredtext("Start Game", 192, letters_blue, NO_UPDATE, 2);
173 drawcenteredtext("Options", 224, letters_red, NO_UPDATE, 2);
174 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
176 menumenu = MENU_OPTIONS;
181 drawcenteredtext("Options", 224, letters_blue, NO_UPDATE, 2);
185 drawcenteredtext("Level editor", 256, letters_red, NO_UPDATE, 2);
186 if(menuaction == MN_HIT) /* Set variables, so that the level editor is executed */
188 level_editor_started = YES;
193 drawcenteredtext("Level editor", 256, letters_blue, NO_UPDATE, 2);
197 drawcenteredtext("Quit", 288, letters_red, NO_UPDATE, 2);
198 if(menuaction == MN_HIT) /* Quit a running game or the application */
205 drawcenteredtext("Quit", 288, letters_blue, NO_UPDATE, 2);
213 /* Does the menu item exist? If not, we reset to the most down item */
214 if(menuitem > MENU_GAME_ITEM_MAX)
216 else if(menuitem < 0)
217 menuitem = MENU_GAME_ITEM_MAX;
219 /*The menu looks different, when the game is started */
222 drawcenteredtext("Return To Game", 192, letters_red, NO_UPDATE, 2);
223 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
227 drawcenteredtext("Return To Game", 192, letters_blue, NO_UPDATE, 2);
231 drawcenteredtext("Save Game", 224, letters_red, NO_UPDATE, 2);
232 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
239 drawcenteredtext("Save Game", 224, letters_blue, NO_UPDATE, 2);
243 drawcenteredtext("Load Game", 256, letters_red, NO_UPDATE, 2);
244 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
246 char *x = NULL; /* In C, you can do this... */
253 drawcenteredtext("Load Game", 256, letters_blue, NO_UPDATE, 2);
257 drawcenteredtext("Options", 288, letters_red, NO_UPDATE, 2);
258 if(menuaction == MN_HIT) /* Switch to the 'Options' menu */
260 menumenu = MENU_OPTIONS;
265 drawcenteredtext("Options", 288, letters_blue, NO_UPDATE, 2);
269 drawcenteredtext("Quit Game", 320, letters_red, NO_UPDATE, 2);
270 if(menuaction == MN_HIT) /* Quit a running game */
275 drawcenteredtext("Quit Game", 320, letters_blue, NO_UPDATE, 2);
281 int menu_options(void)
283 if(menuitem > MENU_OPTIONS_ITEM_MAX )
285 else if(menuitem < 0)
286 menuitem = MENU_OPTIONS_ITEM_MAX;
291 drawcenteredtext("Fullscreen ON", 192, letters_red, NO_UPDATE, 2);
293 drawcenteredtext("Fullscreen OFF", 192, letters_red, NO_UPDATE, 2);
294 if(menuaction == MN_HIT) /* Disable/Enable fullscreen */
307 drawcenteredtext("Fullscreen ON", 192, letters_blue, NO_UPDATE, 2);
309 drawcenteredtext("Fullscreen OFF", 192, letters_blue, NO_UPDATE, 2);
312 /* handle menu sound on/off option */
315 /* handle menu music on/off option */
320 drawcenteredtext("Back", 288, letters_red, NO_UPDATE, 2);
321 if(menuaction == MN_HIT) /* Go back to main menu. */
324 menumenu = MENU_GAME;
326 menumenu = MENU_MAIN;
331 drawcenteredtext("Back", 288, letters_blue, NO_UPDATE, 2);
336 /* Menu LevelEditor */
337 int menu_leveleditor(void)
339 if(menuitem > MENU_LEVELEDITOR_ITEM_MAX )
341 else if(menuitem < 0)
342 menuitem = MENU_LEVELEDITOR_ITEM_MAX;
346 drawcenteredtext("Return To Level Editor", 192, letters_red, NO_UPDATE, 2);
347 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
351 drawcenteredtext("Return To Level Editor", 192, letters_blue, NO_UPDATE, 2);
355 drawcenteredtext("New Level", 224, letters_red, NO_UPDATE, 2);
356 if(menuaction == MN_HIT) /* Don't show the menu anymore, if this item got hit */
363 drawcenteredtext("New Level", 224, letters_blue, NO_UPDATE, 2);
366 drawcenteredtext("Load Level", 256, letters_red, NO_UPDATE, 2);
367 if(menuaction == MN_HIT) /* Create a new Level and load it into the level-editor. */
374 drawcenteredtext("Load Level", 256, letters_blue, NO_UPDATE, 2);
377 drawcenteredtext("Save Level", 288, letters_red, NO_UPDATE, 2);
378 if(menuaction == MN_HIT) /* Save the current level in the level-editor. */
385 drawcenteredtext("Save Level", 288, letters_blue, NO_UPDATE, 2);
389 drawcenteredtext("Quit Level Editor", 320, letters_red, NO_UPDATE, 2);
390 if(menuaction == MN_HIT) /* Quit the level-editor. (to the main-menu) */
396 drawcenteredtext("Quit Level Editor", 320, letters_blue, NO_UPDATE, 2);
402 /* Draw the menu and execute the (menu)events */
410 if(menuaction == MN_UP)
412 /* Go one menu-item up */
415 else if(menuaction == MN_DOWN)
416 ++menuitem; /* Go one menu-item down */
419 if(menumenu == MENU_MAIN)
423 else if(menumenu == MENU_GAME)
427 else if(menumenu == MENU_OPTIONS)
429 quit = menu_options();
431 else if(menumenu == MENU_LEVELEDITOR)
433 quit = menu_leveleditor();
441 /* Check for menu event */
442 void menu_event(SDLKey key)
453 else if (key == SDLK_DOWN)
457 menuaction = MN_DOWN;
460 else if (key == SDLK_SPACE || key == SDLK_RETURN)
468 /* FIXME: NO JOYSTICK SUPPORT */
470 else if (event.type == SDL_JOYBUTTONDOWN)
472 Joystick button: Continue: