Noise: Prevent unittest crash caused by division by zero
[oweals/minetest.git] / src / mg_decoration.h
index 6a48796d808854e93abc33920cc2b36219205b01..a7fdb97fe907e92607db9af27a4208c0d4879802 100644 (file)
@@ -64,25 +64,26 @@ struct CutoffData {
 
 class Decoration : public ObjDef, public NodeResolver {
 public:
-       Decoration();
-       virtual ~Decoration();
+       Decoration() {};
+       virtual ~Decoration() {};
 
        virtual void resolveNodeNames();
 
        bool canPlaceDecoration(MMVManip *vm, v3s16 p);
-       size_t placeDeco(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
+       size_t placeDeco(Mapgen *mg, u32 blockseed,
+               v3s16 nmin, v3s16 nmax, s16 deco_zero_level);
        //size_t placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
 
        virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p) = 0;
        virtual int getHeight() = 0;
 
-       u32 flags;
-       int mapseed;
+       u32 flags = 0;
+       int mapseed = 0;
        std::vector<content_t> c_place_on;
-       s16 sidelen;
+       s16 sidelen = 1;
        s16 y_min;
        s16 y_max;
-       float fill_ratio;
+       float fill_ratio = 0.0f;
        NoiseParams np;
        std::vector<content_t> c_spawnby;
        s16 nspawnby;
@@ -104,13 +105,13 @@ public:
 
 class DecoSchematic : public Decoration {
 public:
-       DecoSchematic();
+       DecoSchematic() {};
 
        virtual size_t generate(MMVManip *vm, PcgRandom *pr, v3s16 p);
        virtual int getHeight();
 
        Rotation rotation;
-       Schematic *schematic;
+       Schematic *schematic = nullptr;
 };
 
 
@@ -145,7 +146,8 @@ public:
                }
        }
 
-       size_t placeAllDecos(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax);
+       size_t placeAllDecos(Mapgen *mg, u32 blockseed,
+               v3s16 nmin, v3s16 nmax, s16 deco_zero_level = 0);
 };
 
 #endif