summaryrefslogtreecommitdiff
path: root/src/mapgen.cpp
diff options
context:
space:
mode:
authorkwolekr <mirrorisim@gmail.com>2013-02-05 15:01:33 -0500
committerkwolekr <mirrorisim@gmail.com>2013-02-06 16:52:48 -0500
commit97260d09a8e658b6ded7d9100b0aa1040fcfe50f (patch)
tree4ca603bb61d133b21ffe17d44d3a33589be28766 /src/mapgen.cpp
parentf148ae58c3c0e2b6d6c22c913492193021cbc4c3 (diff)
downloadminetest-97260d09a8e658b6ded7d9100b0aa1040fcfe50f.tar.gz
minetest-97260d09a8e658b6ded7d9100b0aa1040fcfe50f.tar.bz2
minetest-97260d09a8e658b6ded7d9100b0aa1040fcfe50f.zip
Add flag string settings, flat map option
Diffstat (limited to 'src/mapgen.cpp')
-rw-r--r--src/mapgen.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/mapgen.cpp b/src/mapgen.cpp
index f2745bdb4..5a78a541e 100644
--- a/src/mapgen.cpp
+++ b/src/mapgen.cpp
@@ -35,6 +35,15 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "treegen.h"
#include "mapgen_v6.h"
+FlagDesc flagdesc_mapgen[] = {
+ {"trees", MG_TREES},
+ {"caves", MG_CAVES},
+ {"dungeons", MG_DUNGEONS},
+ {"v6_forests", MGV6_FORESTS},
+ {"v6_biome_blend", MGV6_BIOME_BLEND},
+ {"flat", MG_FLAT},
+ {NULL, 0}
+};
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Emerge Manager ////////////////////////////////
@@ -149,7 +158,7 @@ MapgenParams *EmergeManager::getParamsFromSettings(Settings *settings) {
mgparams->seed = settings->getU64(settings == g_settings ? "fixed_map_seed" : "seed");
mgparams->water_level = settings->getS16("water_level");
mgparams->chunksize = settings->getS16("chunksize");
- mgparams->flags = settings->getS32("mg_flags");
+ mgparams->flags = settings->getFlagStr("mg_flags", flagdesc_mapgen);
if (!mgparams->readParams(settings)) {
delete mgparams;
@@ -159,6 +168,17 @@ MapgenParams *EmergeManager::getParamsFromSettings(Settings *settings) {
}
+void EmergeManager::setParamsToSettings(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);
+
+ params->writeParams(settings);
+}
+
+
bool EmergeManager::registerMapgen(std::string mgname, MapgenFactory *mgfactory) {
mglist.insert(std::make_pair(mgname, mgfactory));
infostream << "EmergeManager: registered mapgen " << mgname << std::endl;