]> git.lizzy.rs Git - minetest.git/blobdiff - src/mapgen_v7.cpp
Clean up getTime helpers
[minetest.git] / src / mapgen_v7.cpp
index c9b6b48e097d3f8a045374bbf282e67c5a6c03ad..420d771851a1a4559e7bae9d7cadf2257c2a7ec7 100644 (file)
@@ -64,22 +64,30 @@ MapgenV7::MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge)
        this->cavern_taper        = params->cavern_taper;
        this->cavern_threshold    = params->cavern_threshold;
 
-       //// Terrain noise
-       noise_terrain_base      = new Noise(&params->np_terrain_base,      seed, csize.X, csize.Z);
-       noise_terrain_alt       = new Noise(&params->np_terrain_alt,       seed, csize.X, csize.Z);
-       noise_terrain_persist   = new Noise(&params->np_terrain_persist,   seed, csize.X, csize.Z);
-       noise_height_select     = new Noise(&params->np_height_select,     seed, csize.X, csize.Z);
-       noise_filler_depth      = new Noise(&params->np_filler_depth,      seed, csize.X, csize.Z);
-       noise_mount_height      = new Noise(&params->np_mount_height,      seed, csize.X, csize.Z);
-       noise_ridge_uwater      = new Noise(&params->np_ridge_uwater,      seed, csize.X, csize.Z);
-       noise_floatland_base    = new Noise(&params->np_floatland_base,    seed, csize.X, csize.Z);
-       noise_float_base_height = new Noise(&params->np_float_base_height, seed, csize.X, csize.Z);
-
-       //// 3d terrain noise
-       // 1-up 1-down overgeneration
-       noise_mountain = new Noise(&params->np_mountain, seed, csize.X, csize.Y + 2, csize.Z);
-       noise_ridge    = new Noise(&params->np_ridge,    seed, csize.X, csize.Y + 2, csize.Z);
-       // 1 down overgeneration
+       // 2D noise
+       noise_terrain_base    = new Noise(&params->np_terrain_base,    seed, csize.X, csize.Z);
+       noise_terrain_alt     = new Noise(&params->np_terrain_alt,     seed, csize.X, csize.Z);
+       noise_terrain_persist = new Noise(&params->np_terrain_persist, seed, csize.X, csize.Z);
+       noise_height_select   = new Noise(&params->np_height_select,   seed, csize.X, csize.Z);
+       noise_filler_depth    = new Noise(&params->np_filler_depth,    seed, csize.X, csize.Z);
+
+       if (spflags & MGV7_MOUNTAINS)
+               noise_mount_height = new Noise(&params->np_mount_height, seed, csize.X, csize.Z);
+
+       if (spflags & MGV7_FLOATLANDS) {
+               noise_floatland_base    = new Noise(&params->np_floatland_base,    seed, csize.X, csize.Z);
+               noise_float_base_height = new Noise(&params->np_float_base_height, seed, csize.X, csize.Z);
+       }
+
+       if (spflags & MGV7_RIDGES) {
+               noise_ridge_uwater = new Noise(&params->np_ridge_uwater, seed, csize.X, csize.Z);
+       // 3D noise, 1-up 1-down overgeneration
+               noise_ridge = new Noise(&params->np_ridge, seed, csize.X, csize.Y + 2, csize.Z);
+       }
+       // 3D noise, 1 up, 1 down overgeneration
+       if ((spflags & MGV7_MOUNTAINS) || (spflags & MGV7_FLOATLANDS))
+               noise_mountain = new Noise(&params->np_mountain, seed, csize.X, csize.Y + 2, csize.Z);
+       // 3D noise, 1 down overgeneration
        MapgenBasic::np_cave1  = params->np_cave1;
        MapgenBasic::np_cave2  = params->np_cave2;
        MapgenBasic::np_cavern = params->np_cavern;
@@ -89,16 +97,26 @@ MapgenV7::MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge)
 MapgenV7::~MapgenV7()
 {
        delete noise_terrain_base;
+       delete noise_terrain_alt;
        delete noise_terrain_persist;
        delete noise_height_select;
-       delete noise_terrain_alt;
        delete noise_filler_depth;
-       delete noise_mount_height;
-       delete noise_ridge_uwater;
-       delete noise_floatland_base;
-       delete noise_float_base_height;
-       delete noise_mountain;
-       delete noise_ridge;
+
+       if (spflags & MGV7_MOUNTAINS)
+               delete noise_mount_height;
+
+       if (spflags & MGV7_FLOATLANDS) {
+               delete noise_floatland_base;
+               delete noise_float_base_height;
+       }
+
+       if (spflags & MGV7_RIDGES) {
+               delete noise_ridge_uwater;
+               delete noise_ridge;
+       }
+
+       if ((spflags & MGV7_MOUNTAINS) || (spflags & MGV7_FLOATLANDS))
+               delete noise_mountain;
 }