diff --git a/src/emerge.cpp b/src/emerge.cpp index 2926b0c0b..c485caffa 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -167,13 +167,6 @@ EmergeManager::~EmergeManager() void EmergeManager::loadMapgenParams() { loadParamsFromSettings(g_settings); - - if (g_settings->get("fixed_map_seed").empty()) { - params.seed = (((u64)(myrand() & 0xffff) << 0) - | ((u64)(myrand() & 0xffff) << 16) - | ((u64)(myrand() & 0xffff) << 32) - | ((u64)(myrand() & 0xffff) << 48)); - } } @@ -368,8 +361,15 @@ 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)) + if (settings->getNoEx(setname, seed_str) && !seed_str.empty()) { params.seed = read_seed(seed_str.c_str()); + } else { + params.seed = + ((u64)(myrand() & 0xffff) << 0) | + ((u64)(myrand() & 0xffff) << 16) | + ((u64)(myrand() & 0xffff) << 32) | + ((u64)(myrand() & 0xffff) << 48); + } settings->getNoEx("mg_name", params.mg_name); settings->getS16NoEx("water_level", params.water_level);