summaryrefslogtreecommitdiff
path: root/src/mapgen_v7.cpp
diff options
context:
space:
mode:
authorparamat <mat.gregory@virginmedia.com>2017-04-21 02:19:24 +0100
committerparamat <mat.gregory@virginmedia.com>2017-04-22 01:24:03 +0100
commit57eaf62c697cec91890d9cb28d10385d293d2d3f (patch)
tree142e482f197b71d207b4657454a39745f688b7f0 /src/mapgen_v7.cpp
parent58c083f305d77bd3c7d366c1f0e4a54d80a51719 (diff)
downloadminetest-57eaf62c697cec91890d9cb28d10385d293d2d3f.tar.gz
minetest-57eaf62c697cec91890d9cb28d10385d293d2d3f.tar.bz2
minetest-57eaf62c697cec91890d9cb28d10385d293d2d3f.zip
Mgflat, Mgv7: Only create noise objects if needed
Diffstat (limited to 'src/mapgen_v7.cpp')
-rw-r--r--src/mapgen_v7.cpp40
1 files changed, 24 insertions, 16 deletions
diff --git a/src/mapgen_v7.cpp b/src/mapgen_v7.cpp
index c9b6b48e0..c4583578f 100644
--- a/src/mapgen_v7.cpp
+++ b/src/mapgen_v7.cpp
@@ -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;