Mgv6: Fix uninitialised heightmap used by cavegen
authorparamat <mat.gregory@virginmedia.com>
Wed, 11 Mar 2015 05:28:07 +0000 (05:28 +0000)
committerparamat <mat.gregory@virginmedia.com>
Wed, 11 Mar 2015 06:04:07 +0000 (06:04 +0000)
src/mapgen_v6.cpp

index d4b9201d936e51681338c72ab6b833816c850f02..fcf59562f1b096dc2850b88f153aacbb18c2594c 100644 (file)
@@ -56,7 +56,6 @@ MapgenV6::MapgenV6(int mapgenid, MapgenParams *params, EmergeManager *emerge)
        this->ystride = csize.X; //////fix this
 
        this->heightmap = new s16[csize.X * csize.Z];
-       memset(this->heightmap, 0, csize.X * csize.Z * sizeof(*this->heightmap));
 
        MapgenV6Params *sp = (MapgenV6Params *)params->sparams;
        this->spflags     = sp->spflags;
@@ -480,6 +479,9 @@ void MapgenV6::makeChunk(BlockMakeData *data)
 
        generateExperimental();
 
+       // Create initial heightmap to limit caves
+       updateHeightmap(node_min, node_max);
+
        const s16 max_spread_amount = MAP_BLOCKSIZE;
        // Limit dirt flow area by 1 because mud is flown into neighbors.
        s16 mudflow_minpos = -max_spread_amount + 1;
@@ -504,7 +506,7 @@ void MapgenV6::makeChunk(BlockMakeData *data)
 
        }
 
-       // Create heightmap after mudflow
+       // Update heightmap after mudflow
        updateHeightmap(node_min, node_max);
 
        // Add dungeons