summaryrefslogtreecommitdiff
path: root/src/mapgen_valleys.h
diff options
context:
space:
mode:
authorDuane Robertson <duane@duanerobertson.com>2016-01-31 02:59:15 -0600
committerparamat <mat.gregory@virginmedia.com>2016-01-31 22:31:25 +0000
commit80c7612e76ca83fa69a6e709213026478edfe5ab (patch)
treece468c12f95982fe1fd62a5896ba379a687baf62 /src/mapgen_valleys.h
parent83583aa2d5f795ede066ab7f8e28162633d3786a (diff)
downloadminetest-80c7612e76ca83fa69a6e709213026478edfe5ab.tar.gz
minetest-80c7612e76ca83fa69a6e709213026478edfe5ab.tar.bz2
minetest-80c7612e76ca83fa69a6e709213026478edfe5ab.zip
Mgvalleys: use standard caves
Replace simple caves with V5 caves, adding unpredictable water and lava settings and massive caves based on subterrain. Remove fast terrain mode and accompanying settings. Remove superfluous temperature/humidity settings. Remove lava/water height setting. Fix errors in humidity handling and remove humidity_break_point setting. Move cave noises to generateCaves. Fix minor formatting/naming issues and use MYMAX/MYMIN/myround.
Diffstat (limited to 'src/mapgen_valleys.h')
-rw-r--r--src/mapgen_valleys.h59
1 files changed, 28 insertions, 31 deletions
diff --git a/src/mapgen_valleys.h b/src/mapgen_valleys.h
index 5fd549096..ee4052d71 100644
--- a/src/mapgen_valleys.h
+++ b/src/mapgen_valleys.h
@@ -31,11 +31,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "mapgen.h"
/////////////////// Mapgen Valleys flags
-#define MG_VALLEYS_ALT_CHILL 0x01
-#define MG_VALLEYS_CLIFFS 0x02
-#define MG_VALLEYS_FAST 0x04
-#define MG_VALLEYS_HUMID_RIVERS 0x08
-#define MG_VALLEYS_RUGGED 0x10
+#define MG_VALLEYS_ALT_CHILL 0x01
+#define MG_VALLEYS_HUMID_RIVERS 0x02
+
+// Feed only one variable into these.
+#define MYSQUARE(x) (x) * (x)
+#define MYCUBE(x) (x) * (x) * (x)
class BiomeManager;
@@ -47,28 +48,25 @@ class BiomeManager;
struct MapgenValleysParams : public MapgenSpecificParams {
u32 spflags;
+ s16 large_cave_depth;
+ s16 massive_cave_depth;
u16 altitude_chill;
- s16 cave_water_max_height;
- s16 humidity;
- s16 humidity_break_point;
- s16 lava_max_height;
+ u16 lava_features;
u16 river_depth;
u16 river_size;
- s16 temperature;
u16 water_features;
NoiseParams np_biome_heat;
NoiseParams np_biome_heat_blend;
NoiseParams np_biome_humidity;
NoiseParams np_biome_humidity_blend;
- NoiseParams np_cliffs;
- NoiseParams np_corr;
+ NoiseParams np_cave1;
+ NoiseParams np_cave2;
NoiseParams np_filler_depth;
NoiseParams np_inter_valley_fill;
NoiseParams np_inter_valley_slope;
NoiseParams np_rivers;
- NoiseParams np_simple_caves_1;
- NoiseParams np_simple_caves_2;
+ NoiseParams np_massive_caves;
NoiseParams np_terrain_height;
NoiseParams np_valley_depth;
NoiseParams np_valley_profile;
@@ -89,8 +87,6 @@ struct TerrainNoise {
float valley_profile;
float *slope;
float inter_valley_fill;
- float cliffs;
- float corr;
};
class MapgenValleys : public Mapgen {
@@ -102,6 +98,8 @@ public:
virtual void makeChunk(BlockMakeData *data);
int getGroundLevelAtPoint(v2s16 p);
+ s16 large_cave_depth;
+
private:
EmergeManager *m_emerge;
BiomeManager *bmgr;
@@ -109,10 +107,9 @@ private:
int ystride;
int zstride;
+ float map_gen_limit;
+
u32 spflags;
- bool cliff_terrain;
- bool fast_terrain;
- bool rugged_terrain;
bool humid_rivers;
bool use_altitude_chill;
@@ -123,8 +120,8 @@ private:
Noise *noise_filler_depth;
- Noise *noise_cliffs;
- Noise *noise_corr;
+ Noise *noise_cave1;
+ Noise *noise_cave2;
Noise *noise_heat;
Noise *noise_heat_blend;
Noise *noise_humidity;
@@ -132,21 +129,21 @@ private:
Noise *noise_inter_valley_fill;
Noise *noise_inter_valley_slope;
Noise *noise_rivers;
- Noise *noise_simple_caves_1;
- Noise *noise_simple_caves_2;
+ Noise *noise_massive_caves;
Noise *noise_terrain_height;
Noise *noise_valley_depth;
Noise *noise_valley_profile;
float altitude_chill;
- float cave_water_max_height;
+ s16 cave_water_max_height;
float humidity_adjust;
- float humidity_break_point;
- float lava_max_height;
- float river_depth;
- float river_size;
- float temperature_adjust;
- s16 water_features;
+ s16 lava_features_lim;
+ s16 lava_max_height;
+ s16 massive_cave_depth;
+ float river_depth_bed;
+ float river_size_factor;
+ float *tcave_cache;
+ s16 water_features_lim;
content_t c_cobble;
content_t c_desert_stone;
@@ -176,7 +173,7 @@ private:
MgStoneType generateBiomes(float *heat_map, float *humidity_map);
void dustTopNodes();
- void generateSimpleCaves(s16 max_stone_y);
+ void generateCaves(s16 max_stone_y);
};
struct MapgenFactoryValleys : public MapgenFactory {