Fix for bug #8680: GameLogic.getRandomFloat() returns very small
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Sun, 29 Jun 2008 20:53:17 +0000 (20:53 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Sun, 29 Jun 2008 20:53:17 +0000 (20:53 +0000)
values on 64 bit, instead of range 0..1. Also a warning fix.

intern/iksolver/intern/IK_QTask.h
intern/moto/include/MT_random.h
intern/moto/intern/MT_random.cpp

index c291a0e7e50eb27060e2f034b273c068b1a3065a..4d469d737f8d51466f3b8e0392c771b6f10ebfbe 100644 (file)
@@ -74,7 +74,7 @@ public:
 
        virtual bool PositionTask() const { return false; }
 
-       virtual void Scale(float scale) {}
+       virtual void Scale(float) {}
 
 protected:
        int m_id;
index d7da546cf03b3d9ec6be0b5444808fbcb0ce2bbe..3afe1dd16622271f3ef57ba079d846e86eb97a69 100644 (file)
 
 #include <limits.h>
 
-#define MT_RAND_MAX ULONG_MAX
+#define MT_RAND_MAX UINT_MAX
 
-extern void          MT_srand(unsigned long);
-extern unsigned long MT_rand();
+extern void          MT_srand(unsigned int);
+extern unsigned int  MT_rand();
 
 #endif
 
index 96cb394d3da324bd025e46544d6b3558266e3c52..b8302e093ca8ef1cc15d6d85c7c7818a7c14b7eb 100644 (file)
 #define TEMPERING_SHIFT_T(y)  (y << 15)
 #define TEMPERING_SHIFT_L(y)  (y >> 18)
 
-static unsigned long mt[N]; /* the array for the state vector  */
+static unsigned int mt[N]; /* the array for the state vector  */
 static int mti = N+1; /* mti==N+1 means mt[N] is not initialized */
 
 /* initializing the array with a NONZERO seed */
-void MT_srand(unsigned long seed)
+void MT_srand(unsigned int seed)
 {
     /* setting initial seeds to mt[N] using         */
     /* the generator Line 25 of Table 1 in          */
@@ -91,12 +91,12 @@ void MT_srand(unsigned long seed)
         mt[mti] = (69069 * mt[mti-1]) & 0xffffffff;
 }
 
-unsigned long MT_rand()
+unsigned int MT_rand()
 {
-    static unsigned long mag01[2] = { 0x0, MATRIX_A };
+    static unsigned int mag01[2] = { 0x0, MATRIX_A };
     /* mag01[x] = x * MATRIX_A  for x=0,1 */
 
-    unsigned long y;
+    unsigned int y;
 
     if (mti >= N) { /* generate N words at one time */
         int kk;