diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-03-12 22:15:56 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-03-12 22:15:56 +0200 |
commit | 82073025ccc551c2fd205cc1dc6fcecac61cc7ea (patch) | |
tree | 03108d4dff78fc67ef432028c8ca4fea759f19b5 /src | |
parent | 2c9bb06516418b99c1eac957cfae9d84c9bef954 (diff) | |
download | minetest-82073025ccc551c2fd205cc1dc6fcecac61cc7ea.tar.gz minetest-82073025ccc551c2fd205cc1dc6fcecac61cc7ea.tar.bz2 minetest-82073025ccc551c2fd205cc1dc6fcecac61cc7ea.zip |
Remember selected world by path
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/main.cpp b/src/main.cpp index 7caec19c1..41cf583f5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1277,11 +1277,22 @@ int main(int argc, char *argv[]) i != worldspecs.end(); i++) menudata.worlds.push_back(narrow_to_wide( i->name + " [" + i->gameid + "]")); - // Select if there is only one - if(worldspecs.size() == 1) + // Default to selecting nothing + menudata.selected_world = -1; + // If there is only one world, select it + if(worldspecs.size() == 1){ menudata.selected_world = 0; - else - menudata.selected_world = -1; + } + // Otherwise try to select according to selected_world_path + else if(g_settings->exists("selected_world_path")){ + std::string trypath = g_settings->get("selected_world_path"); + for(u32 i=0; i<worldspecs.size(); i++){ + if(worldspecs[i].path == trypath){ + menudata.selected_world = i; + break; + } + } + } // If a world was commanded, append and select it if(commanded_world != ""){ std::string gameid = getWorldGameId(commanded_world, true); @@ -1390,6 +1401,9 @@ int main(int argc, char *argv[]) g_settings->set("name", playername); g_settings->set("address", address); g_settings->set("port", itos(port)); + if(menudata.selected_world != -1) + g_settings->set("selected_world_path", + worldspecs[menudata.selected_world].path); // Update configuration file if(configpath != "") g_settings->updateConfigFile(configpath.c_str()); |