Fix map_seed not changed when creating a new world after login to another
authorfz72 <fz72@gmx.de>
Tue, 17 Feb 2015 15:53:49 +0000 (16:53 +0100)
committerPerttu Ahola <celeron55@gmail.com>
Wed, 18 Feb 2015 12:02:30 +0000 (14:02 +0200)
builtin/mainmenu/dlg_create_world.lua
src/emerge.cpp

index 32e1fbf8304b1779a14a7569417a1942d1114da2..b42d119e016b2665f76b8befdcda522cf65b21f8 100644 (file)
@@ -90,6 +90,8 @@ local function create_world_buttonhandler(this, fields)
 
                        local message = nil
 
+                       core.setting_set("fixed_map_seed", fields["te_seed"])
+
                        if not menudata.worldlist:uid_exists_raw(worldname) then
                                core.setting_set("mg_name",fields["dd_mapgen"])
                                message = core.create_world(worldname,gameindex)
@@ -97,8 +99,6 @@ local function create_world_buttonhandler(this, fields)
                                message = fgettext("A world named \"$1\" already exists", worldname)
                        end
 
-                       core.setting_set("fixed_map_seed", fields["te_seed"])
-
                        if message ~= nil then
                                gamedata.errormessage = message
                        else
index c485caffa60595f2201b4741bd9d483339811b5a..a697bcb0750d33057e7046887e07f0ea11fd6216 100644 (file)
@@ -361,7 +361,10 @@ void EmergeManager::loadParamsFromSettings(Settings *settings)
        std::string seed_str;
        const char *setname = (settings == g_settings) ? "fixed_map_seed" : "seed";
 
-       if (settings->getNoEx(setname, seed_str) && !seed_str.empty()) {
+       if (!settings->getNoEx("seed", seed_str)) {
+               g_settings->getNoEx(setname, seed_str);
+       }
+       if (!seed_str.empty()) {
                params.seed = read_seed(seed_str.c_str());
        } else {
                params.seed =