diff options
author | est31 <MTest31@outlook.com> | 2015-03-13 04:35:34 +0100 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2015-03-18 13:03:02 -0400 |
commit | 538036d004f914f31c276090d7735d61139fc58e (patch) | |
tree | 6d8d067c49d2c96dfa9469798150a02e0bd594c4 /src/subgame.cpp | |
parent | 467fc0ddc912ae38c3bf9fcb99e0b66d7478eec0 (diff) | |
download | minetest-538036d004f914f31c276090d7735d61139fc58e.tar.gz minetest-538036d004f914f31c276090d7735d61139fc58e.tar.bz2 minetest-538036d004f914f31c276090d7735d61139fc58e.zip |
Fix game minetest.conf default settings
This was a regression introduced by f6e4c5d9cf459e8278a76a2beaee59732e841458 .
Diffstat (limited to 'src/subgame.cpp')
-rw-r--r-- | src/subgame.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/subgame.cpp b/src/subgame.cpp index a3edcda2e..864732876 100644 --- a/src/subgame.cpp +++ b/src/subgame.cpp @@ -267,25 +267,31 @@ std::vector<WorldSpec> getAvailableWorlds() return worlds; } -bool initializeWorld(const std::string &path, const std::string &gameid) +bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec) { + // Override defaults with those provided by the game. + // We clear and reload the defaults because the defaults + // might have been overridden by other subgame config + // files that were loaded before. + g_settings->clearDefaults(); + set_default_settings(g_settings); + Settings game_defaults; + getGameMinetestConfig(gamespec.path, game_defaults); + override_default_settings(g_settings, &game_defaults); + infostream << "Initializing world at " << path << std::endl; fs::CreateAllDirs(path); - // Initialize default settings and override defaults with those - // provided by the game - Settings game_defaults; - getGameMinetestConfig(path, game_defaults); - override_default_settings(g_settings, &game_defaults); - // Create world.mt if does not already exist std::string worldmt_path = path + DIR_DELIM "world.mt"; if (!fs::PathExists(worldmt_path)) { std::ostringstream ss(std::ios_base::binary); - ss << "gameid = " << gameid << "\nbackend = sqlite3\n" - << "creative_mode = " << g_settings->get("creative_mode") - << "\nenable_damage = " << g_settings->get("enable_damage") << "\n"; + ss << "gameid = " << gamespec.id + << "\nbackend = sqlite3" + << "\ncreative_mode = " << g_settings->get("creative_mode") + << "\nenable_damage = " << g_settings->get("enable_damage") + << "\n"; if (!fs::safeWriteToFile(worldmt_path, ss.str())) return false; |