Possible fix for coverity #29375
[supertux.git] / src / supertux / gameconfig.hpp
1 //  SuperTux=
2 //  Copyright (C) 2006 Matthias Braun <matze@braunis.de>
3 //
4 //  This program is free software: you can redistribute it and/or modify
5 //  it under the terms of the GNU General Public License as published by
6 //  the Free Software Foundation, either version 3 of the License, or
7 //  (at your option) any later version.
8 //
9 //  This program is distributed in the hope that it will be useful,
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 //  GNU General Public License for more details.
13 //
14 //  You should have received a copy of the GNU General Public License
15 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 #ifndef HEADER_SUPERTUX_SUPERTUX_GAMECONFIG_HPP
18 #define HEADER_SUPERTUX_SUPERTUX_GAMECONFIG_HPP
19
20 #include "control/joystick_config.hpp"
21 #include "control/keyboard_config.hpp"
22 #include "math/size.hpp"
23 #include "video/video_system.hpp"
24
25 class Config
26 {
27 public:
28   Config();
29   ~Config();
30
31   void load();
32   void save();
33
34   int profile;
35
36   /** the width/height to be used to display the game in fullscreen */
37   Size fullscreen_size;
38
39   /** refresh rate for use in fullscreen, 0 for auto */
40   int fullscreen_refresh_rate;
41
42   /** the width/height of the window managers window */
43   Size window_size;
44
45   /** the aspect ratio */
46   Size aspect_size;
47
48   float magnification;
49
50   bool use_fullscreen;
51   VideoSystem::Enum video;
52   bool try_vsync;
53   bool show_fps;
54   bool sound_enabled;
55   bool music_enabled;
56   bool console_enabled;
57
58   /** initial random seed.  0 ==> set from time() */
59   int random_seed;
60
61   /** this variable is set if supertux should start in a specific level */
62   std::string start_level;
63   bool enable_script_debugger;
64   std::string start_demo;
65   std::string record_demo;
66
67   /** force SuperTux language to this locale, e.g. "de". A file
68       "data/locale/xx.po" must exist for this to work. An empty string
69       means autodetect. */
70   std::string locale;
71
72   KeyboardConfig keyboard_config;
73   JoystickConfig joystick_config;
74
75   struct Addon
76   {
77     std::string id;
78     bool enabled;
79   };
80   std::vector<Addon> addons;
81
82   bool developer_mode;
83 };
84
85 #endif
86
87 /* EOF */