From f6e4c5d9cf459e8278a76a2beaee59732e841458 Mon Sep 17 00:00:00 2001 From: ngosang Date: Mon, 26 Jan 2015 12:44:49 +0100 Subject: Respect game mapgen flags and save world noise params --- src/emerge.cpp | 56 +++----------------------------------------------------- 1 file changed, 3 insertions(+), 53 deletions(-) (limited to 'src/emerge.cpp') diff --git a/src/emerge.cpp b/src/emerge.cpp index a697bcb07..89153cdb6 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -166,7 +166,7 @@ EmergeManager::~EmergeManager() void EmergeManager::loadMapgenParams() { - loadParamsFromSettings(g_settings); + params.load(*g_settings); } @@ -344,9 +344,9 @@ Mapgen *EmergeManager::createMapgen(const std::string &mgname, int mgid, MapgenSpecificParams *EmergeManager::createMapgenParams(const std::string &mgname) { u32 i; - for (i = 0; i != ARRLEN(reg_mapgens) && mgname != reg_mapgens[i].name; i++); + for (i = 0; i < ARRLEN(reg_mapgens) && mgname != reg_mapgens[i].name; i++); if (i == ARRLEN(reg_mapgens)) { - errorstream << "EmergeManager; mapgen " << mgname << + errorstream << "EmergeManager: Mapgen " << mgname << " not registered" << std::endl; return NULL; } @@ -356,56 +356,6 @@ MapgenSpecificParams *EmergeManager::createMapgenParams(const std::string &mgnam } -void EmergeManager::loadParamsFromSettings(Settings *settings) -{ - std::string seed_str; - const char *setname = (settings == g_settings) ? "fixed_map_seed" : "seed"; - - 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 = - ((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); - settings->getS16NoEx("chunksize", params.chunksize); - settings->getFlagStrNoEx("mg_flags", params.flags, flagdesc_mapgen); - settings->getNoiseParams("mg_biome_np_heat", params.np_biome_heat); - settings->getNoiseParams("mg_biome_np_humidity", params.np_biome_humidity); - - delete params.sparams; - params.sparams = createMapgenParams(params.mg_name); - - if (params.sparams) { - params.sparams->readParams(g_settings); - params.sparams->readParams(settings); - } -} - - -void EmergeManager::saveParamsToSettings(Settings *settings) -{ - settings->set("mg_name", params.mg_name); - settings->setU64("seed", params.seed); - settings->setS16("water_level", params.water_level); - settings->setS16("chunksize", params.chunksize); - settings->setFlagStr("mg_flags", params.flags, flagdesc_mapgen, (u32)-1); - settings->setNoiseParams("mg_biome_np_heat", params.np_biome_heat); - settings->setNoiseParams("mg_biome_np_humidity", params.np_biome_humidity); - - if (params.sparams) - params.sparams->writeParams(settings); -} - - ////////////////////////////// Emerge Thread ////////////////////////////////// bool EmergeThread::popBlockEmerge(v3s16 *pos, u8 *flags) -- cgit v1.2.3