summaryrefslogtreecommitdiff
path: root/src/emerge.cpp
diff options
context:
space:
mode:
authorngosang <diegodelasheras@gmail.com>2015-01-26 12:44:49 +0100
committerShadowNinja <shadowninja@minetest.net>2015-03-07 15:53:39 -0500
commitf6e4c5d9cf459e8278a76a2beaee59732e841458 (patch)
tree6748d30881ddd5b5679d89b4ea5838fb5598fe18 /src/emerge.cpp
parent9da99efca226c377d3bc2914561edffd812a9c1a (diff)
downloadminetest-f6e4c5d9cf459e8278a76a2beaee59732e841458.tar.gz
minetest-f6e4c5d9cf459e8278a76a2beaee59732e841458.tar.bz2
minetest-f6e4c5d9cf459e8278a76a2beaee59732e841458.zip
Respect game mapgen flags and save world noise params
Diffstat (limited to 'src/emerge.cpp')
-rw-r--r--src/emerge.cpp56
1 files changed, 3 insertions, 53 deletions
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)