aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.h')
-rw-r--r--src/utils.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/utils.h b/src/utils.h
index db6f7a8..c165e2c 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -38,6 +38,10 @@ typedef enum FTError {
#define TOGGLE_BIT(b, n) (b ^ (0x1 << n))
#define HAS_FLAG(v, f) ((v & f) == f)
+// https://en.wikipedia.org/wiki/Linear_congruential_generator
+#define FT_RANDOM16(seed) (seed = (75 * seed + 74) % 65537)
+#define FT_RANDOM32(seed) (seed = (1664525 * seed + 1013904223) % 4294967296)
+
// Helpful for debugging
#define PRINT_VECTOR2(v) printf("%f %f\n", v.x, v.y)
#define PRINT_VECTOR3(v) printf("%f %f %f\n", v.x, v.y, v.z)