From b87cd8c58b4f396e95799c46a0ec11dd4adb85c9 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Mon, 21 Jan 2013 13:40:05 -0500 Subject: [PATCH] Use a string identifier for a mapgen instead of version --- src/defaultsettings.cpp | 2 +- src/map.cpp | 10 +++++----- src/mapgen.cpp | 29 +++++++++++++++-------------- src/mapgen.h | 6 +++--- 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index b2d14d3c4..e6526d3d7 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -174,7 +174,7 @@ void set_default_settings(Settings *settings) settings->setDefault("remote_media", ""); //mapgen related things - settings->setDefault("mg_version", "6"); + settings->setDefault("mg_name", "v6"); settings->setDefault("water_level", "1"); settings->setDefault("chunksize", "5"); settings->setDefault("mg_flags", "19"); diff --git a/src/map.cpp b/src/map.cpp index dff30940d..6a058bb51 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -3079,15 +3079,15 @@ void ServerMap::saveMapMeta() Settings params; - params.setS16("mg_version", m_emerge->params->mg_version); + params.set("mg_name", m_emerge->params->mg_name); params.setU64("seed", m_emerge->params->seed); params.setS16("water_level", m_emerge->params->water_level); params.setS16("chunksize", m_emerge->params->chunksize); params.setS32("mg_flags", m_emerge->params->flags); - switch (m_emerge->params->mg_version) { +/* switch (m_emerge->params->mg_version) { case 6: - { + {*/ MapgenV6Params *v6params = (MapgenV6Params *)m_emerge->params; params.setFloat("mgv6_freq_desert", v6params->freq_desert); @@ -3101,11 +3101,11 @@ void ServerMap::saveMapMeta() params.setNoiseParams("mgv6_np_beach", v6params->np_beach); params.setNoiseParams("mgv6_np_biome", v6params->np_biome); params.setNoiseParams("mgv6_np_cave", v6params->np_cave); - break; + /* break; } default: ; //complain here - } + }*/ params.writeLines(os); diff --git a/src/mapgen.cpp b/src/mapgen.cpp index e68394a19..c86743459 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -78,16 +78,16 @@ EmergeManager::~EmergeManager() { Mapgen *EmergeManager::getMapgen() { if (!mapgen) { - switch (params->mg_version) { - case 6: + /*switch (params->mg_version) { + case 6:*/ mapgen = new MapgenV6(0, (MapgenV6Params *)params); - break; + /* break; default: errorstream << "EmergeManager: Unsupported mapgen version " << params->mg_version << ", falling back to V6" << std::endl; params->mg_version = 6; mapgen = new MapgenV6(0, (MapgenV6Params *)params); - } + }*/ } return mapgen; } @@ -127,28 +127,29 @@ u32 EmergeManager::getBlockSeed(v3s16 p) { } -MapgenParams *MapgenParams::createMapgenParams(int mgver) { - switch (mgver) { +MapgenParams *MapgenParams::createMapgenParams(std::string &mgstr) { + return new MapgenV6Params(); // this will be fixed later + /*switch (mgver) { case 6: return new MapgenV6Params(); default: //instead of complaining, default to 6 return new MapgenV6Params(); - } + }*/ } MapgenParams *MapgenParams::getParamsFromSettings(Settings *settings) { - int mg_version = settings->getS16("mg_version"); - MapgenParams *mgparams = MapgenParams::createMapgenParams(mg_version); - mgparams->mg_version = mg_version; + std::string mg_name = settings->get("mg_name"); + MapgenParams *mgparams = MapgenParams::createMapgenParams(mg_name); + mgparams->mg_name = mg_name; 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"); - switch (mg_version) { +/* switch (mg_version) { case 6: - { + {*/ MapgenV6Params *v6params = (MapgenV6Params *)mgparams; v6params->freq_desert = settings->getFloat("mgv6_freq_desert"); @@ -170,13 +171,13 @@ MapgenParams *MapgenParams::getParamsFromSettings(Settings *settings) { delete mgparams; return NULL; } - +/* break; } default: delete mgparams; return NULL; - } + }*/ return mgparams; diff --git a/src/mapgen.h b/src/mapgen.h index 34957d181..d508d37a8 100644 --- a/src/mapgen.h +++ b/src/mapgen.h @@ -83,21 +83,21 @@ struct BlockMakeData { struct MapgenParams { - int mg_version; + std::string mg_name; int chunksize; u64 seed; int water_level; u32 flags; MapgenParams() { - mg_version = 6; + mg_name = "v6"; seed = 0; water_level = 1; chunksize = 5; flags = MG_TREES | MG_CAVES | MGV6_BIOME_BLEND; } - static MapgenParams *createMapgenParams(int mgver); + static MapgenParams *createMapgenParams(std::string &mgname); static MapgenParams *getParamsFromSettings(Settings *settings); };