From 5a34f40d80ea1a339b599bc11db549a6bd86912f Mon Sep 17 00:00:00 2001 From: kwolekr Date: Mon, 3 Feb 2014 22:42:10 -0500 Subject: Huge overhaul of the entire MapgenParams system MapgenParams is no longer a polymorphic class, eliminating the need for messy and bug-prone reallocations. Separation between the common and mapgen-specific parameters is now strongly defined. Mapgen parameters objects are now properly encapsulated within the proper subsystems. --- src/mapgen_indev.h | 53 +++++++++-------------------------------------------- 1 file changed, 9 insertions(+), 44 deletions(-) (limited to 'src/mapgen_indev.h') diff --git a/src/mapgen_indev.h b/src/mapgen_indev.h index cfef59041..a5b0a6678 100644 --- a/src/mapgen_indev.h +++ b/src/mapgen_indev.h @@ -65,72 +65,38 @@ public: void transformNoiseMapFarScale(float xx = 0, float yy = 0, float zz = 0); }; -extern NoiseIndevParams nparams_indev_def; -/* -extern NoiseIndevParams nparams_indev_def_terrain_base; -extern NoiseIndevParams nparams_indev_def_terrain_higher; -extern NoiseIndevParams nparams_indev_def_steepness; -//extern NoiseIndevParams nparams_indev_def_height_select; -//extern NoiseIndevParams nparams_indev_def_trees; -extern NoiseIndevParams nparams_indev_def_mud; -//extern NoiseIndevParams nparams_indev_def_beach; -extern NoiseIndevParams nparams_indev_def_biome; -//extern NoiseIndevParams nparams_indev_def_cave; -extern NoiseIndevParams nparams_indev_def_float_islands; -*/ struct MapgenIndevParams : public MapgenV6Params { + s16 float_islands; NoiseIndevParams npindev_terrain_base; NoiseIndevParams npindev_terrain_higher; NoiseIndevParams npindev_steepness; - //NoiseParams *np_height_select; - //NoiseParams *np_trees; NoiseIndevParams npindev_mud; - //NoiseParams *np_beach; NoiseIndevParams npindev_biome; - //NoiseParams *np_cave; NoiseIndevParams npindev_float_islands1; NoiseIndevParams npindev_float_islands2; NoiseIndevParams npindev_float_islands3; - MapgenIndevParams() { - //freq_desert = 0.45; - //freq_beach = 0.15; - npindev_terrain_base = nparams_indev_def; //&nparams_indev_def_terrain_base; - npindev_terrain_higher = nparams_indev_def; //&nparams_indev_def_terrain_higher; - npindev_steepness = nparams_indev_def; //&nparams_indev_def_steepness; - //np_height_select = &nparams_v6_def_height_select; - //np_trees = &nparams_v6_def_trees; - npindev_mud = nparams_indev_def; //&nparams_indev_def_mud; - //np_beach = &nparams_v6_def_beach; - npindev_biome = nparams_indev_def; //&nparams_indev_def_biome; - //np_cave = &nparams_v6_def_cave; - npindev_float_islands1 = nparams_indev_def; //&nparams_indev_def_float_islands; - npindev_float_islands2 = nparams_indev_def; //&nparams_indev_def_float_islands; - npindev_float_islands3 = nparams_indev_def; //&nparams_indev_def_float_islands; + MapgenIndevParams(); + ~MapgenIndevParams() {} - } - - bool readParams(Settings *settings); + void readParams(Settings *settings); void writeParams(Settings *settings); }; class MapgenIndev : public MapgenV6 { - public: +public: NoiseIndev *noiseindev_terrain_base; NoiseIndev *noiseindev_terrain_higher; NoiseIndev *noiseindev_steepness; - //NoiseIndev *noise_height_select; - //NoiseIndev *noise_trees; NoiseIndev *noiseindev_mud; - //NoiseIndev *noise_beach; NoiseIndev *noiseindev_biome; - //NoiseIndevParams *np_cave; NoiseIndev *noiseindev_float_islands1; NoiseIndev *noiseindev_float_islands2; NoiseIndev *noiseindev_float_islands3; + s16 float_islands; - MapgenIndev(int mapgenid, MapgenIndevParams *params, EmergeManager *emerge); + MapgenIndev(int mapgenid, MapgenParams *params, EmergeManager *emerge); ~MapgenIndev(); void calculateNoise(); @@ -138,7 +104,6 @@ class MapgenIndev : public MapgenV6 { float baseTerrainLevelFromMap(int index); float getMudAmount(int index); void generateCaves(int max_stone_y); - //void defineCave(Cave & cave, PseudoRandom ps, v3s16 node_min, bool large_cave); void generateExperimental(); void generateFloatIslands(int min_y); @@ -146,10 +111,10 @@ class MapgenIndev : public MapgenV6 { struct MapgenFactoryIndev : public MapgenFactoryV6 { Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) { - return new MapgenIndev(mgid, (MapgenIndevParams *)params, emerge); + return new MapgenIndev(mgid, params, emerge); }; - MapgenParams *createMapgenParams() { + MapgenSpecificParams *createMapgenParams() { return new MapgenIndevParams(); }; }; -- cgit v1.2.3