#include <gameconfig.hpp>
Public Member Functions | |
Config () | |
~Config () | |
void | load () |
void | save () |
Public Attributes | |
int | profile |
Size | fullscreen_size |
Size | window_size |
the width/height of the window managers window | |
Size | aspect_size |
the aspect ratio | |
float | magnification |
bool | use_fullscreen |
VideoSystem::Enum | video |
bool | try_vsync |
bool | show_fps |
bool | sound_enabled |
bool | music_enabled |
bool | console_enabled |
int | random_seed |
std::string | start_level |
this variable is set if supertux should start in a specific level | |
bool | enable_script_debugger |
std::string | start_demo |
std::string | record_demo |
std::string | locale |
force SuperTux language to this locale, e.g. |
Definition at line 23 of file gameconfig.hpp.
Config::Config | ( | ) |
Definition at line 28 of file gameconfig.cpp.
00028 : 00029 profile(1), 00030 fullscreen_size(800, 600), 00031 window_size(800, 600), 00032 aspect_size(0, 0), // auto detect 00033 magnification(0.0f), 00034 use_fullscreen(false), 00035 video(VideoSystem::AUTO_VIDEO), 00036 try_vsync(true), 00037 show_fps(false), 00038 sound_enabled(true), 00039 music_enabled(true), 00040 console_enabled(false), 00041 random_seed(0), // set by time(), by default (unless in config) 00042 start_level(), 00043 enable_script_debugger(false), 00044 start_demo(), 00045 record_demo(), 00046 locale() 00047 { 00048 }
Config::~Config | ( | ) |
void Config::load | ( | ) |
Definition at line 54 of file gameconfig.cpp.
References aspect_size, console_enabled, fullscreen_size, g_jk_controller, lisp::Lisp::get(), AddonManager::get_instance(), lisp::Lisp::get_lisp(), VideoSystem::get_video_system(), Size::height, locale, magnification, music_enabled, lisp::Parser::parse(), random_seed, AddonManager::read(), JoystickKeyboardController::read(), show_fps, sound_enabled, try_vsync, use_fullscreen, video, Size::width, and window_size.
Referenced by Main::init_config().
00055 { 00056 lisp::Parser parser; 00057 const lisp::Lisp* root = parser.parse("config"); 00058 00059 const lisp::Lisp* config_lisp = root->get_lisp("supertux-config"); 00060 if(!config_lisp) 00061 throw std::runtime_error("File is not a supertux-config file"); 00062 00063 config_lisp->get("show_fps", show_fps); 00064 config_lisp->get("console", console_enabled); 00065 config_lisp->get("locale", locale); 00066 config_lisp->get("random_seed", random_seed); 00067 00068 const lisp::Lisp* config_video_lisp = config_lisp->get_lisp("video"); 00069 if(config_video_lisp) { 00070 config_video_lisp->get("fullscreen", use_fullscreen); 00071 std::string video_string; 00072 config_video_lisp->get("video", video_string); 00073 video = VideoSystem::get_video_system(video_string); 00074 config_video_lisp->get("vsync", try_vsync); 00075 00076 config_video_lisp->get("fullscreen_width", fullscreen_size.width); 00077 config_video_lisp->get("fullscreen_height", fullscreen_size.height); 00078 00079 config_video_lisp->get("window_width", window_size.width); 00080 config_video_lisp->get("window_height", window_size.height); 00081 00082 config_video_lisp->get("aspect_width", aspect_size.width); 00083 config_video_lisp->get("aspect_height", aspect_size.height); 00084 00085 config_video_lisp->get("magnification", magnification); 00086 } 00087 00088 const lisp::Lisp* config_audio_lisp = config_lisp->get_lisp("audio"); 00089 if(config_audio_lisp) { 00090 config_audio_lisp->get("sound_enabled", sound_enabled); 00091 config_audio_lisp->get("music_enabled", music_enabled); 00092 } 00093 00094 const lisp::Lisp* config_control_lisp = config_lisp->get_lisp("control"); 00095 if(config_control_lisp && g_jk_controller) { 00096 g_jk_controller->read(*config_control_lisp); 00097 } 00098 00099 const lisp::Lisp* config_addons_lisp = config_lisp->get_lisp("addons"); 00100 if(config_addons_lisp) { 00101 AddonManager::get_instance().read(*config_addons_lisp); 00102 } 00103 }
void Config::save | ( | ) |
Definition at line 106 of file gameconfig.cpp.
References aspect_size, console_enabled, lisp::Writer::end_list(), fullscreen_size, g_jk_controller, AddonManager::get_instance(), VideoSystem::get_video_string(), Size::height, locale, magnification, music_enabled, show_fps, sound_enabled, lisp::Writer::start_list(), try_vsync, use_fullscreen, video, Size::width, window_size, AddonManager::write(), JoystickKeyboardController::write(), and lisp::Writer::write().
Referenced by OptionsMenu::menu_action(), LanguageMenu::menu_action(), ScreenManager::process_events(), and Main::run().
00107 { 00108 lisp::Writer writer("config"); 00109 00110 writer.start_list("supertux-config"); 00111 00112 writer.write("show_fps", show_fps); 00113 writer.write("console", console_enabled); 00114 writer.write("locale", locale); 00115 00116 writer.start_list("video"); 00117 writer.write("fullscreen", use_fullscreen); 00118 writer.write("video", VideoSystem::get_video_string(video)); 00119 writer.write("vsync", try_vsync); 00120 00121 writer.write("fullscreen_width", fullscreen_size.width); 00122 writer.write("fullscreen_height", fullscreen_size.height); 00123 00124 writer.write("window_width", window_size.width); 00125 writer.write("window_height", window_size.height); 00126 00127 writer.write("aspect_width", aspect_size.width); 00128 writer.write("aspect_height", aspect_size.height); 00129 00130 writer.write("magnification", magnification); 00131 00132 writer.end_list("video"); 00133 00134 writer.start_list("audio"); 00135 writer.write("sound_enabled", sound_enabled); 00136 writer.write("music_enabled", music_enabled); 00137 writer.end_list("audio"); 00138 00139 if(g_jk_controller) { 00140 writer.start_list("control"); 00141 g_jk_controller->write(writer); 00142 writer.end_list("control"); 00143 } 00144 00145 writer.start_list("addons"); 00146 AddonManager::get_instance().write(writer); 00147 writer.end_list("addons"); 00148 00149 writer.end_list("supertux-config"); 00150 }
int Config::profile |
Definition at line 32 of file gameconfig.hpp.
Referenced by ProfileMenu::menu_action(), and TitleScreen::start_game().
Definition at line 35 of file gameconfig.hpp.
Referenced by GLRenderer::apply_config(), GLRenderer::GLRenderer(), Main::init_video(), load(), OptionsMenu::menu_action(), OptionsMenu::OptionsMenu(), Main::parse_commandline(), and save().
the width/height of the window managers window
Definition at line 38 of file gameconfig.hpp.
Referenced by GLRenderer::apply_config(), GLRenderer::GLRenderer(), Main::init_video(), load(), Main::parse_commandline(), GLRenderer::resize(), and save().
the aspect ratio
Definition at line 41 of file gameconfig.hpp.
Referenced by GLRenderer::apply_config(), Main::init_video(), load(), OptionsMenu::menu_action(), OptionsMenu::OptionsMenu(), Main::parse_commandline(), and save().
float Config::magnification |
Definition at line 43 of file gameconfig.hpp.
Referenced by GLRenderer::apply_config(), load(), OptionsMenu::menu_action(), OptionsMenu::OptionsMenu(), and save().
Definition at line 45 of file gameconfig.hpp.
Referenced by GLRenderer::apply_config(), GLRenderer::GLRenderer(), Main::init_video(), load(), OptionsMenu::menu_action(), OptionsMenu::OptionsMenu(), Main::parse_commandline(), ScreenManager::process_events(), save(), and SDLRenderer::SDLRenderer().
Definition at line 46 of file gameconfig.hpp.
Referenced by load(), VideoSystem::new_lightmap(), VideoSystem::new_renderer(), VideoSystem::new_surface_data(), VideoSystem::new_texture(), Main::parse_commandline(), and save().
bool Config::try_vsync |
bool Config::show_fps |
Definition at line 48 of file gameconfig.hpp.
Referenced by scripting::debug_show_fps(), ScreenManager::draw(), load(), Main::parse_commandline(), ScreenManager::process_events(), and save().
Definition at line 49 of file gameconfig.hpp.
Referenced by Main::init_audio(), load(), OptionsMenu::menu_action(), OptionsMenu::OptionsMenu(), Main::parse_commandline(), and save().
Definition at line 50 of file gameconfig.hpp.
Referenced by Main::init_audio(), load(), OptionsMenu::menu_action(), OptionsMenu::OptionsMenu(), Main::parse_commandline(), and save().
Definition at line 51 of file gameconfig.hpp.
Referenced by KeyboardMenu::KeyboardMenu(), load(), Main::parse_commandline(), ScreenManager::process_events(), save(), Console::show(), and KeyboardMenu::update().
Definition at line 53 of file gameconfig.hpp.
Referenced by Main::init_rand(), load(), scripting::play_demo(), GameSession::record_demo(), GameSession::restart_level(), and Main::run().
std::string Config::start_level |
this variable is set if supertux should start in a specific level
Definition at line 56 of file gameconfig.hpp.
Referenced by Main::parse_commandline(), and Main::run().
Definition at line 57 of file gameconfig.hpp.
Referenced by Main::parse_commandline(), and Main::run().
std::string Config::start_demo |
Definition at line 58 of file gameconfig.hpp.
Referenced by Main::parse_commandline(), and Main::run().
std::string Config::record_demo |
Definition at line 59 of file gameconfig.hpp.
Referenced by Main::parse_commandline(), and Main::run().
std::string Config::locale |
force SuperTux language to this locale, e.g.
"de". A file "data/locale/xx.po" must exist for this to work. An empty string means autodetect.
Definition at line 61 of file gameconfig.hpp.
Referenced by Main::init_tinygettext(), load(), LanguageMenu::menu_action(), lisp::Parser::Parser(), and save().