Fix alpha for liquid nodes (#5494)
[oweals/minetest.git] / src / mapgen_v7.cpp
index c4583578f412fd5c281218c50f782035b06ba0ad..dbf2b02ae38fbf76a649436bff22b244e2b1fc63 100644 (file)
@@ -97,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;
 }
 
 
@@ -282,12 +292,12 @@ void MapgenV7::makeChunk(BlockMakeData *data)
 
        // Generate caverns, tunnels and classic caves
        if (flags & MG_CAVES) {
-               bool has_cavern = false;
+               bool near_cavern = false;
                // Generate caverns
                if (spflags & MGV7_CAVERNS)
-                       has_cavern = generateCaverns(stone_surface_max_y);
+                       near_cavern = generateCaverns(stone_surface_max_y);
                // Generate tunnels and classic caves
-               if (has_cavern)
+               if (near_cavern)
                        // Disable classic caves in this mapchunk by setting
                        // 'large cave depth' to world base. Avoids excessive liquid in
                        // large caverns and floating blobs of overgenerated liquid.