diff options
author | kwolekr <kwolekr@minetest.net> | 2014-02-03 22:42:10 -0500 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2014-02-03 22:50:14 -0500 |
commit | 5a34f40d80ea1a339b599bc11db549a6bd86912f (patch) | |
tree | 07ead9e3ff4732479af41b739a26b5dc8182c5fd /src/mapgen_v7.h | |
parent | a439343844cf821e4922e23f1638b92e2cfb14ac (diff) | |
download | minetest-5a34f40d80ea1a339b599bc11db549a6bd86912f.tar.gz minetest-5a34f40d80ea1a339b599bc11db549a6bd86912f.tar.bz2 minetest-5a34f40d80ea1a339b599bc11db549a6bd86912f.zip |
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.
Diffstat (limited to 'src/mapgen_v7.h')
-rw-r--r-- | src/mapgen_v7.h | 43 |
1 files changed, 16 insertions, 27 deletions
diff --git a/src/mapgen_v7.h b/src/mapgen_v7.h index e7a72e464..a7c80928f 100644 --- a/src/mapgen_v7.h +++ b/src/mapgen_v7.h @@ -22,17 +22,16 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mapgen.h" -extern NoiseParams nparams_v7_def_terrain_base; -extern NoiseParams nparams_v7_def_terrain_alt; -extern NoiseParams nparams_v7_def_terrain_persist; -extern NoiseParams nparams_v7_def_height_select; -extern NoiseParams nparams_v7_def_filler_depth; -extern NoiseParams nparams_v7_def_mount_height; -extern NoiseParams nparams_v7_def_ridge_uwater; -extern NoiseParams nparams_v7_def_mountain; -extern NoiseParams nparams_v7_def_ridge; - -struct MapgenV7Params : public MapgenParams { +/////////////////// Mapgen V7 flags +#define MGV7_MOUNTAINS 0x01 +#define MGV7_RIDGES 0x02 + + +extern FlagDesc flagdesc_mapgen_v7[]; + + +struct MapgenV7Params : public MapgenSpecificParams { + u32 spflags; NoiseParams np_terrain_base; NoiseParams np_terrain_alt; NoiseParams np_terrain_persist; @@ -43,21 +42,10 @@ struct MapgenV7Params : public MapgenParams { NoiseParams np_mountain; NoiseParams np_ridge; - MapgenV7Params() { - np_terrain_base = nparams_v7_def_terrain_base; - np_terrain_alt = nparams_v7_def_terrain_alt; - np_terrain_persist = nparams_v7_def_terrain_persist; - np_height_select = nparams_v7_def_height_select; - np_filler_depth = nparams_v7_def_filler_depth; - np_mount_height = nparams_v7_def_mount_height; - np_ridge_uwater = nparams_v7_def_ridge_uwater; - np_mountain = nparams_v7_def_mountain; - np_ridge = nparams_v7_def_ridge; - } - + MapgenV7Params(); ~MapgenV7Params() {} - bool readParams(Settings *settings); + void readParams(Settings *settings); void writeParams(Settings *settings); }; @@ -69,6 +57,7 @@ public: int ystride; int zstride; u32 flags; + u32 spflags; u32 blockseed; v3s16 node_min; @@ -103,7 +92,7 @@ public: content_t c_desert_sand; content_t c_desert_stone; - MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge); + MapgenV7(int mapgenid, MapgenParams *params, EmergeManager *emerge); ~MapgenV7(); virtual void makeChunk(BlockMakeData *data); @@ -132,10 +121,10 @@ public: struct MapgenFactoryV7 : public MapgenFactory { Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) { - return new MapgenV7(mgid, (MapgenV7Params *)params, emerge); + return new MapgenV7(mgid, params, emerge); }; - MapgenParams *createMapgenParams() { + MapgenSpecificParams *createMapgenParams() { return new MapgenV7Params(); }; }; |