e8419f5b9fec4ba461b5559c4c3d67c65a33781c
[supertux.git] / src / globals.cpp
1 //
2 // C Implementation: globals
3 //
4 // Description:
5 //
6 //
7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
8 //
9 // Copyright: See COPYING file that comes with this distribution
10 //
11 //
12
13 #include "globals.h"
14
15 /** The datadir prefix prepended when loading game data file */
16 std::string datadir;
17
18 SDL_Surface * screen;
19 text_type black_text, gold_text, blue_text, red_text, yellow_nums, white_text, white_small_text, white_big_text;
20
21 MouseCursor * mouse_cursor;
22
23 bool use_gl;
24 bool use_joystick;
25 bool use_fullscreen;
26 bool debug_mode;
27 bool show_fps;
28
29 int joystick_num = 0;
30 char* level_startup_file = 0;
31 bool launch_worldmap_mode = false;
32
33 /* SuperTux directory ($HOME/.supertux) and save directory($HOME/.supertux/save) */
34 char *st_dir, *st_save_dir;
35
36 SDL_Joystick * js;
37
38 /* Returns 1 for every button event, 2 for a quit event and 0 for no event. */
39 int wait_for_event(SDL_Event& event,unsigned int min_delay, unsigned int max_delay, bool empty_events)
40 {
41   int i;
42   timer_type maxdelay;
43   timer_type mindelay;
44   
45   maxdelay.init(false);
46   mindelay.init(false);
47
48   if(max_delay < min_delay)
49     max_delay = min_delay;
50
51   maxdelay.start(max_delay);
52   mindelay.start(min_delay);
53
54   if(empty_events)
55     while (SDL_PollEvent(&event))
56     {}
57
58   /* Handle events: */
59
60   for(i = 0; maxdelay.check() || !i; ++i)
61     {
62       while (SDL_PollEvent(&event))
63         {
64           if(!mindelay.check())
65             {
66               if (event.type == SDL_QUIT)
67                 {
68                   /* Quit event - quit: */
69                   return 2;
70                 }
71               else if (event.type == SDL_KEYDOWN)
72                 {
73                   /* Keypress - skip intro: */
74
75                   return 1;
76                 }
77               else if (event.type == SDL_JOYBUTTONDOWN)
78                 {
79                   /* Fire button - skip intro: */
80
81                   return 1;
82                 }
83               else if (event.type == SDL_MOUSEBUTTONDOWN)
84                 {
85                   /* Mouse button - skip intro: */
86                   return 1;
87                 }
88             }
89         }
90       SDL_Delay(10);
91     }
92
93   return 0;
94 }