]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mapgen_indev.h
Add curl, freetype and luaJIT to CMAKE_BUILD_INFO
[dragonfireclient.git] / src / mapgen_indev.h
index 7ce65dfe3fb164d15a4cf419c1c33d44bfda9216..cfef590412346f39038a4dc8010dfafa9a473be8 100644 (file)
@@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "mapgen.h"
 #include "mapgen_v6.h"
+#include "cavegen.h"
 
 float farscale(float scale, float z);
 float farscale(float scale, float x, float z);
@@ -31,30 +32,33 @@ struct NoiseIndevParams : public NoiseParams {
        float farscale;
        float farspread;
 
-       NoiseIndevParams(){}
-       NoiseIndevParams(float offset_, float scale_, v3f spread_, int seed_, int octaves_, float persist_, float farscale_ = 1, float farspread_ = 1)
+       NoiseIndevParams() {}
+       NoiseIndevParams(float offset_, float scale_, v3f spread_,
+                                        int seed_, int octaves_, float persist_,
+                                         float farscale_ = 1, float farspread_ = 1)
        {
-               offset = offset_;
-               scale = scale_;
-               spread = spread_;
-               seed = seed_;
+               offset  = offset_;
+               scale   = scale_;
+               spread  = spread_;
+               seed    = seed_;
                octaves = octaves_;
                persist = persist_;
 
-               farscale = farscale_;
+               farscale  = farscale_;
                farspread = farspread_;
        }
-
+       
+       ~NoiseIndevParams() {}
 };
 
-#define getNoiseIndevParams(x) getStruct<NoiseIndevParams>((x), "f,f,v3,s32,s32,f,f,f")
-#define setNoiseIndevParams(x, y) setStruct((x), "f,f,v3,s32,s32,f,f,f", (y))
+#define getNoiseIndevParams(x, y) getStruct((x), "f,f,v3,s32,s32,f,f,f", &(y), sizeof(y))
+#define setNoiseIndevParams(x, y) setStruct((x), "f,f,v3,s32,s32,f,f,f", &(y))
 
 class NoiseIndev : public Noise {
-    public:
+public:
        NoiseIndevParams *npindev;
 
-       //NoiseIndev() {};
+       virtual ~NoiseIndev() {};
        NoiseIndev(NoiseIndevParams *np, int seed, int sx, int sy);
        NoiseIndev(NoiseIndevParams *np, int seed, int sx, int sy, int sz);
        void init(NoiseIndevParams *np, int seed, int sx, int sy, int sz);
@@ -76,34 +80,34 @@ extern NoiseIndevParams nparams_indev_def_float_islands;
 */
 
 struct MapgenIndevParams : public MapgenV6Params {
-       NoiseIndevParams *npindev_terrain_base;
-       NoiseIndevParams *npindev_terrain_higher;
-       NoiseIndevParams *npindev_steepness;
+       NoiseIndevParams npindev_terrain_base;
+       NoiseIndevParams npindev_terrain_higher;
+       NoiseIndevParams npindev_steepness;
        //NoiseParams *np_height_select;
        //NoiseParams *np_trees;
-       NoiseIndevParams *npindev_mud;
+       NoiseIndevParams npindev_mud;
        //NoiseParams *np_beach;
-       NoiseIndevParams *npindev_biome;
+       NoiseIndevParams npindev_biome;
        //NoiseParams *np_cave;
-       NoiseIndevParams *npindev_float_islands1;
-       NoiseIndevParams *npindev_float_islands2;
-       NoiseIndevParams *npindev_float_islands3;
+       NoiseIndevParams npindev_float_islands1;
+       NoiseIndevParams npindev_float_islands2;
+       NoiseIndevParams npindev_float_islands3;
 
        MapgenIndevParams() {
                //freq_desert       = 0.45;
                //freq_beach        = 0.15;
-               npindev_terrain_base   = &nparams_indev_def; //&nparams_indev_def_terrain_base;
-               npindev_terrain_higher = &nparams_indev_def; //&nparams_indev_def_terrain_higher;
-               npindev_steepness      = &nparams_indev_def; //&nparams_indev_def_steepness;
+               npindev_terrain_base   = nparams_indev_def; //&nparams_indev_def_terrain_base;
+               npindev_terrain_higher = nparams_indev_def; //&nparams_indev_def_terrain_higher;
+               npindev_steepness      = nparams_indev_def; //&nparams_indev_def_steepness;
                //np_height_select  = &nparams_v6_def_height_select;
                //np_trees          = &nparams_v6_def_trees;
-               npindev_mud            = &nparams_indev_def; //&nparams_indev_def_mud;
+               npindev_mud            = nparams_indev_def; //&nparams_indev_def_mud;
                //np_beach          = &nparams_v6_def_beach;
-               npindev_biome          = &nparams_indev_def; //&nparams_indev_def_biome;
+               npindev_biome          = nparams_indev_def; //&nparams_indev_def_biome;
                //np_cave           = &nparams_v6_def_cave;
-               npindev_float_islands1  = &nparams_indev_def; //&nparams_indev_def_float_islands;
-               npindev_float_islands2  = &nparams_indev_def; //&nparams_indev_def_float_islands;
-               npindev_float_islands3  = &nparams_indev_def; //&nparams_indev_def_float_islands;
+               npindev_float_islands1  = nparams_indev_def; //&nparams_indev_def_float_islands;
+               npindev_float_islands2  = nparams_indev_def; //&nparams_indev_def_float_islands;
+               npindev_float_islands3  = nparams_indev_def; //&nparams_indev_def_float_islands;
 
        }
 
@@ -126,22 +130,23 @@ class MapgenIndev : public MapgenV6 {
        NoiseIndev *noiseindev_float_islands2;
        NoiseIndev *noiseindev_float_islands3;
 
-       MapgenIndev(int mapgenid, MapgenIndevParams *params);
+       MapgenIndev(int mapgenid, MapgenIndevParams *params, EmergeManager *emerge);
        ~MapgenIndev();
        void calculateNoise();
 
        float baseTerrainLevelFromNoise(v2s16 p);
        float baseTerrainLevelFromMap(int index);
        float getMudAmount(int index);
-       void defineCave(Cave & cave, PseudoRandom ps, v3s16 node_min, bool large_cave);
-       void generateSomething();
+       void generateCaves(int max_stone_y);
+       //void defineCave(Cave & cave, PseudoRandom ps, v3s16 node_min, bool large_cave);
+       void generateExperimental();
        
        void generateFloatIslands(int min_y);
 };
 
 struct MapgenFactoryIndev : public MapgenFactoryV6 {
        Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) {
-               return new MapgenIndev(mgid, (MapgenIndevParams *)params);
+               return new MapgenIndev(mgid, (MapgenIndevParams *)params, emerge);
        };
 
        MapgenParams *createMapgenParams() {
@@ -149,4 +154,10 @@ struct MapgenFactoryIndev : public MapgenFactoryV6 {
        };
 };
 
+class CaveIndev : public CaveV6 {
+public:
+       CaveIndev(MapgenIndev *mg, PseudoRandom *ps, PseudoRandom *ps2,
+                       v3s16 node_min, bool is_large_cave);
+};
+
 #endif