X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmapgen_v7.cpp;h=420d771851a1a4559e7bae9d7cadf2257c2a7ec7;hb=b662a4577d692329b9ca83525e6039f2ddcd1ac1;hp=c9b6b48e097d3f8a045374bbf282e67c5a6c03ad;hpb=1eca9ecf7d42efde5eec13caeb6e9ad5080ebb35;p=minetest.git diff --git a/src/mapgen_v7.cpp b/src/mapgen_v7.cpp index c9b6b48e0..420d77185 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(¶ms->np_terrain_base, seed, csize.X, csize.Z); - noise_terrain_alt = new Noise(¶ms->np_terrain_alt, seed, csize.X, csize.Z); - noise_terrain_persist = new Noise(¶ms->np_terrain_persist, seed, csize.X, csize.Z); - noise_height_select = new Noise(¶ms->np_height_select, seed, csize.X, csize.Z); - noise_filler_depth = new Noise(¶ms->np_filler_depth, seed, csize.X, csize.Z); - noise_mount_height = new Noise(¶ms->np_mount_height, seed, csize.X, csize.Z); - noise_ridge_uwater = new Noise(¶ms->np_ridge_uwater, seed, csize.X, csize.Z); - noise_floatland_base = new Noise(¶ms->np_floatland_base, seed, csize.X, csize.Z); - noise_float_base_height = new Noise(¶ms->np_float_base_height, seed, csize.X, csize.Z); - - //// 3d terrain noise - // 1-up 1-down overgeneration - noise_mountain = new Noise(¶ms->np_mountain, seed, csize.X, csize.Y + 2, csize.Z); - noise_ridge = new Noise(¶ms->np_ridge, seed, csize.X, csize.Y + 2, csize.Z); - // 1 down overgeneration + // 2D noise + noise_terrain_base = new Noise(¶ms->np_terrain_base, seed, csize.X, csize.Z); + noise_terrain_alt = new Noise(¶ms->np_terrain_alt, seed, csize.X, csize.Z); + noise_terrain_persist = new Noise(¶ms->np_terrain_persist, seed, csize.X, csize.Z); + noise_height_select = new Noise(¶ms->np_height_select, seed, csize.X, csize.Z); + noise_filler_depth = new Noise(¶ms->np_filler_depth, seed, csize.X, csize.Z); + + if (spflags & MGV7_MOUNTAINS) + noise_mount_height = new Noise(¶ms->np_mount_height, seed, csize.X, csize.Z); + + if (spflags & MGV7_FLOATLANDS) { + noise_floatland_base = new Noise(¶ms->np_floatland_base, seed, csize.X, csize.Z); + noise_float_base_height = new Noise(¶ms->np_float_base_height, seed, csize.X, csize.Z); + } + + if (spflags & MGV7_RIDGES) { + noise_ridge_uwater = new Noise(¶ms->np_ridge_uwater, seed, csize.X, csize.Z); + // 3D noise, 1-up 1-down overgeneration + noise_ridge = new Noise(¶ms->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(¶ms->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; }