summaryrefslogtreecommitdiff
path: root/src/noise.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-06-25 16:32:09 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-06-25 16:32:09 +0300
commitaed9e809a19bffdf911f75dd9d718efb8decd2c1 (patch)
treebce949a0722a7bf007f4c50822dc3f69292e3c05 /src/noise.h
parente8a731adc502d19a8ae3bfeee5b985f90ab8a507 (diff)
downloadminetest-aed9e809a19bffdf911f75dd9d718efb8decd2c1.tar.gz
minetest-aed9e809a19bffdf911f75dd9d718efb8decd2c1.tar.bz2
minetest-aed9e809a19bffdf911f75dd9d718efb8decd2c1.zip
mapgen stuff
Diffstat (limited to 'src/noise.h')
-rw-r--r--src/noise.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/noise.h b/src/noise.h
index 6e4fedbc4..c8d8985c6 100644
--- a/src/noise.h
+++ b/src/noise.h
@@ -20,6 +20,45 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#ifndef NOISE_HEADER
#define NOISE_HEADER
+#include "debug.h"
+
+class PseudoRandom
+{
+public:
+ PseudoRandom(): m_next(0)
+ {
+ }
+ PseudoRandom(int seed): m_next(seed)
+ {
+ }
+ void seed(int seed)
+ {
+ m_next = seed;
+ }
+ // Returns 0...32767
+ int next()
+ {
+ m_next = m_next * 1103515245 + 12345;
+ return((unsigned)(m_next/65536) % 32768);
+ }
+ int range(int min, int max)
+ {
+ if(max-min > 32768/10)
+ {
+ //dstream<<"WARNING: PseudoRandom::range: max > 32767"<<std::endl;
+ assert(0);
+ }
+ if(min > max)
+ {
+ assert(0);
+ return max;
+ }
+ return (next()%(max-min+1))+min;
+ }
+private:
+ int m_next;
+};
+
double easeCurve(double t);
// Return value: -1 ... 1