From b87cd8c58b4f396e95799c46a0ec11dd4adb85c9 Mon Sep 17 00:00:00 2001
From: kwolekr <mirrorisim@gmail.com>
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);
 
 };
-- 
GitLab