X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fglobals.cpp;h=e8419f5b9fec4ba461b5559c4c3d67c65a33781c;hb=e147eea9f117721dbcf79d1465452b6ae91fe33c;hp=3830285775ee3aa1f0da925d5b81d4777416bbde;hpb=ed8b08f0568d887c3459568b6a479356af09e36f;p=supertux.git diff --git a/src/globals.cpp b/src/globals.cpp index 383028577..e8419f5b9 100644 --- a/src/globals.cpp +++ b/src/globals.cpp @@ -21,12 +21,12 @@ text_type black_text, gold_text, blue_text, red_text, yellow_nums, white_text, w MouseCursor * mouse_cursor; bool use_gl; -bool use_joystick; +bool use_joystick; bool use_fullscreen; bool debug_mode; bool show_fps; -int joystick_num = 0; +int joystick_num = 0; char* level_startup_file = 0; bool launch_worldmap_mode = false; @@ -35,4 +35,60 @@ char *st_dir, *st_save_dir; SDL_Joystick * js; +/* Returns 1 for every button event, 2 for a quit event and 0 for no event. */ +int wait_for_event(SDL_Event& event,unsigned int min_delay, unsigned int max_delay, bool empty_events) +{ + int i; + timer_type maxdelay; + timer_type mindelay; + + maxdelay.init(false); + mindelay.init(false); + if(max_delay < min_delay) + max_delay = min_delay; + + maxdelay.start(max_delay); + mindelay.start(min_delay); + + if(empty_events) + while (SDL_PollEvent(&event)) + {} + + /* Handle events: */ + + for(i = 0; maxdelay.check() || !i; ++i) + { + while (SDL_PollEvent(&event)) + { + if(!mindelay.check()) + { + if (event.type == SDL_QUIT) + { + /* Quit event - quit: */ + return 2; + } + else if (event.type == SDL_KEYDOWN) + { + /* Keypress - skip intro: */ + + return 1; + } + else if (event.type == SDL_JOYBUTTONDOWN) + { + /* Fire button - skip intro: */ + + return 1; + } + else if (event.type == SDL_MOUSEBUTTONDOWN) + { + /* Mouse button - skip intro: */ + return 1; + } + } + } + SDL_Delay(10); + } + + return 0; +}