39299cda689b25203ebd8a83f360dfaa3ca87142
[supertux.git] / lib / app / globals.h
1 //  $Id$
2 // 
3 //  SuperTux
4 //  Copyright (C) 2004 Bill Kendrick <bill@newbreedsoftware.com>
5 //                     Tobias Glaesser <tobi.web@gmx.de>
6 //                     Ingo Ruhnke <grumbel@gmx.de>
7 //
8 //  This program is free software; you can redistribute it and/or
9 //  modify it under the terms of the GNU General Public License
10 //  as published by the Free Software Foundation; either version 2
11 //  of the License, or (at your option) any later version.
12 //
13 //  This program is distributed in the hope that it will be useful,
14 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 //  GNU General Public License for more details.
17 // 
18 //  You should have received a copy of the GNU General Public License
19 //  along with this program; if not, write to the Free Software
20 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21
22 #ifndef SUPERTUX_GLOBALS_H
23 #define SUPERTUX_GLOBALS_H
24
25 #include <string>
26
27 #include "SDL.h"
28
29 #include "../video/font.h"
30
31 namespace SuperTux
32   {
33
34   class MouseCursor;
35
36   extern std::string datadir;
37   extern std::string package_symbol_name;
38   extern std::string package_name;
39   extern std::string package_version;
40
41   struct JoystickKeymap
42     {
43       int a_button;
44       int b_button;
45       int start_button;
46
47       int x_axis;
48       int y_axis;
49
50       int dead_zone;
51
52       JoystickKeymap();
53     };
54
55   extern JoystickKeymap joystick_keymap;
56
57   extern SDL_Surface* screen;
58
59   extern MouseCursor * mouse_cursor;
60
61   extern bool use_gl;
62   extern bool use_joystick;
63   extern bool use_fullscreen;
64   extern bool debug_mode;
65   extern bool show_fps;
66
67   /** The number of the joystick that will be use in the game */
68   extern int joystick_num;
69   extern char* level_startup_file;
70   extern bool launch_leveleditor_mode;
71   extern bool launch_worldmap_mode;
72   extern bool flip_levels_mode;
73
74   /* SuperTux directory ($HOME/.supertux) and save directory($HOME/.supertux/save) */
75   extern std::string st_dir;
76   extern std::string st_save_dir;
77   
78   extern SDL_Joystick * js;
79
80   int wait_for_event(SDL_Event& event,unsigned int min_delay = 0, unsigned int max_delay = 0, bool empty_events = false);
81
82 } //namespace SuperTux
83
84 #endif /* SUPERTUX_GLOBALS_H */