From 57eaf62c697cec91890d9cb28d10385d293d2d3f Mon Sep 17 00:00:00 2001 From: paramat Date: Fri, 21 Apr 2017 02:19:24 +0100 Subject: Mgflat, Mgv7: Only create noise objects if needed --- src/mapgen_flat.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/mapgen_flat.cpp') diff --git a/src/mapgen_flat.cpp b/src/mapgen_flat.cpp index 3c6a112e2..c51b5e12e 100644 --- a/src/mapgen_flat.cpp +++ b/src/mapgen_flat.cpp @@ -60,10 +60,12 @@ MapgenFlat::MapgenFlat(int mapgenid, MapgenFlatParams *params, EmergeManager *em this->hill_threshold = params->hill_threshold; this->hill_steepness = params->hill_steepness; - //// 2D noise - noise_terrain = new Noise(¶ms->np_terrain, seed, csize.X, csize.Z); + // 2D noise noise_filler_depth = new Noise(¶ms->np_filler_depth, seed, csize.X, csize.Z); + if ((spflags & MGFLAT_LAKES) || (spflags & MGFLAT_HILLS)) + noise_terrain = new Noise(¶ms->np_terrain, seed, csize.X, csize.Z); + // 3D noise MapgenBasic::np_cave1 = params->np_cave1; MapgenBasic::np_cave2 = params->np_cave2; } @@ -136,7 +138,9 @@ void MapgenFlatParams::writeParams(Settings *settings) const int MapgenFlat::getSpawnLevelAtPoint(v2s16 p) { s16 level_at_point = ground_level; - float n_terrain = NoisePerlin2D(&noise_terrain->np, p.X, p.Y, seed); + float n_terrain = 0.0f; + if ((spflags & MGFLAT_LAKES) || (spflags & MGFLAT_HILLS)) + n_terrain = NoisePerlin2D(&noise_terrain->np, p.X, p.Y, seed); if ((spflags & MGFLAT_LAKES) && n_terrain < lake_threshold) { level_at_point = ground_level - -- cgit v1.2.3