Bugfix: don't highlight air nodes.
[oweals/minetest.git] / src / noise.h
index ace6d7eb4cb714e48c5aa40fa3e022f522e89c63..9f9e2af6df4210de55f1c9da1578a5902532a89d 100644 (file)
@@ -68,12 +68,28 @@ struct NoiseParams {
        int seed;
        int octaves;
        float persist;
+
+       NoiseParams() {}
+
+       NoiseParams(float offset_, float scale_, v3f spread_,
+               int seed_, int octaves_, float persist_)
+       {
+               offset  = offset_;
+               scale   = scale_;
+               spread  = spread_;
+               seed    = seed_;
+               octaves = octaves_;
+               persist = persist_;
+       }
 };
 
 
 // Convenience macros for getting/setting NoiseParams in Settings
-#define getNoiseParams(x) getStruct<NoiseParams>((x), "f,f,v3,s32,s32,f")
-#define setNoiseParams(x, y) setStruct((x), "f,f,v3,s32,s32,f", (y))
+
+#define NOISEPARAMS_FMT_STR "f,f,v3,s32,s32,f"
+
+#define getNoiseParams(x, y) getStruct((x), NOISEPARAMS_FMT_STR, &(y), sizeof(y))
+#define setNoiseParams(x, y) setStruct((x), NOISEPARAMS_FMT_STR, &(y))
 
 class Noise {
 public:
@@ -88,7 +104,7 @@ public:
 
        Noise(NoiseParams *np, int seed, int sx, int sy);
        Noise(NoiseParams *np, int seed, int sx, int sy, int sz);
-       ~Noise();
+       virtual ~Noise();
 
        virtual void init(NoiseParams *np, int seed, int sx, int sy, int sz);
        void setSize(int sx, int sy);