X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fgameconfig.cpp;h=060eed074714099b0829ec58dade027f36533eb3;hb=566f8eb2da26d5a2bb4ed5798a5774499f2e511f;hp=f4c28ca18b5bd7c44cabe51feaedb720f8c915d9;hpb=a113d3bd1feddd510e3b2852b0d42522735eee40;p=supertux.git diff --git a/src/gameconfig.cpp b/src/gameconfig.cpp index f4c28ca18..060eed074 100644 --- a/src/gameconfig.cpp +++ b/src/gameconfig.cpp @@ -20,7 +20,7 @@ #include "gameconfig.hpp" -#include +#include #include #include @@ -36,16 +36,21 @@ Config* config = 0; Config::Config() { use_fullscreen = true; + video = AUTO_VIDEO; + try_vsync = true; show_fps = false; sound_enabled = true; music_enabled = true; - cheats_enabled = false; + console_enabled = false; random_seed = 0; // set by time(), by default (unless in config) screenwidth = 800; screenheight = 600; + aspect_ratio = -1; // autodetect enable_script_debugger = false; + + locale = ""; // autodetect } Config::~Config() @@ -55,21 +60,27 @@ void Config::load() { lisp::Parser parser; - std::auto_ptr root (parser.parse("config")); + const lisp::Lisp* root = parser.parse("config"); const lisp::Lisp* config_lisp = root->get_lisp("supertux-config"); if(!config_lisp) throw std::runtime_error("File is not a supertux-config file"); config_lisp->get("show_fps", show_fps); - config_lisp->get("cheats", cheats_enabled); + config_lisp->get("console", console_enabled); + config_lisp->get("locale", locale); config_lisp->get("random_seed", random_seed); const lisp::Lisp* config_video_lisp = config_lisp->get_lisp("video"); if(config_video_lisp) { config_video_lisp->get("fullscreen", use_fullscreen); + std::string video_string; + config_video_lisp->get("video", video_string); + video = get_video_system(video_string); + config_video_lisp->get("vsync", try_vsync); config_video_lisp->get("width", screenwidth); config_video_lisp->get("height", screenheight); + config_video_lisp->get("aspect_ratio", aspect_ratio); } const lisp::Lisp* config_audio_lisp = config_lisp->get_lisp("audio"); @@ -92,12 +103,16 @@ Config::save() writer.start_list("supertux-config"); writer.write_bool("show_fps", show_fps); - writer.write_bool("cheats", cheats_enabled); + writer.write_bool("console", console_enabled); + writer.write_string("locale", locale); writer.start_list("video"); writer.write_bool("fullscreen", use_fullscreen); + writer.write_string("video", get_video_string(video)); + writer.write_bool("vsync", try_vsync); writer.write_int("width", screenwidth); writer.write_int("height", screenheight); + writer.write_float("aspect_ratio", aspect_ratio); writer.end_list("video"); writer.start_list("audio");