diff options
Diffstat (limited to 'src/mapgen/mapgen_v6.cpp')
-rw-r--r-- | src/mapgen/mapgen_v6.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/mapgen/mapgen_v6.cpp b/src/mapgen/mapgen_v6.cpp index 92f131dcd..43c6f3665 100644 --- a/src/mapgen/mapgen_v6.cpp +++ b/src/mapgen/mapgen_v6.cpp @@ -63,9 +63,11 @@ MapgenV6::MapgenV6(int mapgenid, MapgenV6Params *params, EmergeManager *emerge) heightmap = new s16[csize.X * csize.Z]; - spflags = params->spflags; - freq_desert = params->freq_desert; - freq_beach = params->freq_beach; + spflags = params->spflags; + freq_desert = params->freq_desert; + freq_beach = params->freq_beach; + dungeon_ymin = params->dungeon_ymin; + dungeon_ymax = params->dungeon_ymax; np_cave = ¶ms->np_cave; np_humidity = ¶ms->np_humidity; @@ -166,6 +168,8 @@ void MapgenV6Params::readParams(const Settings *settings) settings->getFlagStrNoEx("mgv6_spflags", spflags, flagdesc_mapgen_v6); settings->getFloatNoEx("mgv6_freq_desert", freq_desert); settings->getFloatNoEx("mgv6_freq_beach", freq_beach); + settings->getS16NoEx("mgv6_dungeon_ymin", dungeon_ymin); + settings->getS16NoEx("mgv6_dungeon_ymax", dungeon_ymax); settings->getNoiseParams("mgv6_np_terrain_base", np_terrain_base); settings->getNoiseParams("mgv6_np_terrain_higher", np_terrain_higher); @@ -186,6 +190,8 @@ void MapgenV6Params::writeParams(Settings *settings) const settings->setFlagStr("mgv6_spflags", spflags, flagdesc_mapgen_v6, U32_MAX); settings->setFloat("mgv6_freq_desert", freq_desert); settings->setFloat("mgv6_freq_beach", freq_beach); + settings->setS16("mgv6_dungeon_ymin", dungeon_ymin); + settings->setS16("mgv6_dungeon_ymax", dungeon_ymax); settings->setNoiseParams("mgv6_np_terrain_base", np_terrain_base); settings->setNoiseParams("mgv6_np_terrain_higher", np_terrain_higher); @@ -553,7 +559,8 @@ void MapgenV6::makeChunk(BlockMakeData *data) updateHeightmap(node_min, node_max); // Add dungeons - if ((flags & MG_DUNGEONS) && (stone_surface_max_y >= node_min.Y)) { + if ((flags & MG_DUNGEONS) && stone_surface_max_y >= node_min.Y && + full_node_min.Y >= dungeon_ymin && full_node_max.Y <= dungeon_ymax) { DungeonParams dp; dp.seed = seed; |