summaryrefslogtreecommitdiff
path: root/src/mapgen.cpp
diff options
context:
space:
mode:
authorparamat <mat.gregory@virginmedia.com>2017-03-23 00:18:59 +0000
committerparamat <mat.gregory@virginmedia.com>2017-03-27 03:18:09 +0100
commitec0c4d33db9e0b7b3e541757e34c04c08c3b48c9 (patch)
treea1d31e46b60906c71c9aa29a0588d6016b63f6d3 /src/mapgen.cpp
parent09f2cd0264993e7b81d84d77bfc670b40ef82444 (diff)
downloadminetest-ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9.tar.gz
minetest-ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9.tar.bz2
minetest-ec0c4d33db9e0b7b3e541757e34c04c08c3b48c9.zip
Map generation limit: Make per-world
The setting limits map generation but affects nothing else. Add 'mapgen_limit' to global mapgen parameters. Move 'blockpos_over_mapgen_limit()' to the only place it is called from: map.cpp. Allow teleportation to any part of the world even if over the set mapgen limit. Simplify the reading of this limit in mgvalleys. Remove the 'map_generation_limit' setting.
Diffstat (limited to 'src/mapgen.cpp')
-rw-r--r--src/mapgen.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/mapgen.cpp b/src/mapgen.cpp
index a0b9990b7..6f3ea7cb0 100644
--- a/src/mapgen.cpp
+++ b/src/mapgen.cpp
@@ -97,11 +97,12 @@ STATIC_ASSERT(
Mapgen::Mapgen()
{
- generating = false;
- id = -1;
- seed = 0;
- water_level = 0;
- flags = 0;
+ generating = false;
+ id = -1;
+ seed = 0;
+ water_level = 0;
+ mapgen_limit = 0;
+ flags = 0;
vm = NULL;
ndef = NULL;
@@ -114,11 +115,12 @@ Mapgen::Mapgen()
Mapgen::Mapgen(int mapgenid, MapgenParams *params, EmergeManager *emerge) :
gennotify(emerge->gen_notify_on, &emerge->gen_notify_on_deco_ids)
{
- generating = false;
- id = mapgenid;
- water_level = params->water_level;
- flags = params->flags;
- csize = v3s16(1, 1, 1) * (params->chunksize * MAP_BLOCKSIZE);
+ generating = false;
+ id = mapgenid;
+ water_level = params->water_level;
+ mapgen_limit = params->mapgen_limit;
+ flags = params->flags;
+ csize = v3s16(1, 1, 1) * (params->chunksize * MAP_BLOCKSIZE);
/*
We are losing half our entropy by doing this, but it is necessary to
@@ -1005,6 +1007,7 @@ void MapgenParams::readParams(const Settings *settings)
this->mgtype = Mapgen::getMapgenType(mg_name);
settings->getS16NoEx("water_level", water_level);
+ settings->getS16NoEx("mapgen_limit", mapgen_limit);
settings->getS16NoEx("chunksize", chunksize);
settings->getFlagStrNoEx("mg_flags", flags, flagdesc_mapgen);
@@ -1022,6 +1025,7 @@ void MapgenParams::writeParams(Settings *settings) const
settings->set("mg_name", Mapgen::getMapgenName(mgtype));
settings->setU64("seed", seed);
settings->setS16("water_level", water_level);
+ settings->setS16("mapgen_limit", mapgen_limit);
settings->setS16("chunksize", chunksize);
settings->setFlagStr("mg_flags", flags, flagdesc_mapgen, U32_MAX);