aboutsummaryrefslogtreecommitdiff
path: root/archive/hgewin/random.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archive/hgewin/random.cpp')
-rwxr-xr-xarchive/hgewin/random.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/archive/hgewin/random.cpp b/archive/hgewin/random.cpp
new file mode 100755
index 0000000..c3332f1
--- /dev/null
+++ b/archive/hgewin/random.cpp
@@ -0,0 +1,32 @@
+/*
+** Haaf's Game Engine 1.8
+** Copyright (C) 2003-2007, Relish Games
+** hge.relishgames.com
+**
+** Core functions implementation: random number generation
+*/
+
+
+#include "hge_impl.h"
+
+
+unsigned int g_seed=0;
+
+void CALL HGE_Impl::Random_Seed(int seed)
+{
+ if(!seed) g_seed=timeGetTime();
+ else g_seed=seed;
+}
+
+int CALL HGE_Impl::Random_Int(int min, int max)
+{
+ g_seed=214013*g_seed+2531011;
+ return min+(g_seed ^ g_seed>>15)%(max-min+1);
+}
+
+float CALL HGE_Impl::Random_Float(float min, float max)
+{
+ g_seed=214013*g_seed+2531011;
+ //return min+g_seed*(1.0f/4294967295.0f)*(max-min);
+ return min+(g_seed>>16)*(1.0f/65535.0f)*(max-min);
+}