diff options
author | SmallJoker <SmallJoker@users.noreply.github.com> | 2022-11-15 16:45:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-15 16:45:48 +0100 |
commit | 8de9e2ac845e62965d895f217ac3a5acd794f8bb (patch) | |
tree | 74bf5f53d77b40900a6f32bccd80745cad494ce4 | |
parent | cd8a7fe47298be12620cab62be8cf0816fabb095 (diff) | |
download | minetest-8de9e2ac845e62965d895f217ac3a5acd794f8bb.tar.xz |
game.conf: Add setting to use volatile a map backend (#12956)
-rw-r--r-- | doc/lua_api.txt | 2 | ||||
-rw-r--r-- | src/content/subgames.cpp | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 26d105db0..3ac530dd4 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -85,6 +85,8 @@ The game directory can contain the following files: (this does not work for `enable_server`). Only these settings are supported: `enable_damage`, `creative_mode`, `enable_server`. + * `map_persistent`: Specifies whether newly created worlds should use + a persistent map backend. Defaults to `true` (= "sqlite3") * `author`: The author of the game. It only appears when downloaded from ContentDB. * `release`: Ignore this: Should only ever be set by ContentDB, as it is diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp index 3658fa83e..c50c6f429 100644 --- a/src/content/subgames.cpp +++ b/src/content/subgames.cpp @@ -380,11 +380,21 @@ void loadGameConfAndInitWorld(const std::string &path, const std::string &name, // Create world.mt if does not already exist std::string worldmt_path = final_path + DIR_DELIM "world.mt"; if (!fs::PathExists(worldmt_path)) { - Settings conf; + Settings gameconf; + std::string gameconf_path = gamespec.path + DIR_DELIM "game.conf"; + gameconf.readConfigFile(gameconf_path.c_str()); + + Settings conf; // for world.mt conf.set("world_name", name); conf.set("gameid", gamespec.id); - conf.set("backend", "sqlite3"); + + std::string backend = "sqlite3"; + if (gameconf.exists("map_persistent") && !gameconf.getBool("map_persistent")) { + backend = "dummy"; + } + conf.set("backend", backend); + conf.set("player_backend", "sqlite3"); conf.set("auth_backend", "sqlite3"); conf.set("mod_storage_backend", "sqlite3"); |