00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 #ifndef __RAND_H 00011 #define __RAND_H 00012 00013 #include "Export.h" 00014 00018 extern void RAK_DLL_EXPORT seedMT( unsigned int seed ); 00019 00022 extern unsigned int RAK_DLL_EXPORT reloadMT( void ); 00023 00027 extern unsigned int RAK_DLL_EXPORT randomMT( void ); 00028 00032 extern float RAK_DLL_EXPORT frandomMT( void ); 00033 00036 extern void RAK_DLL_EXPORT fillBufferMT( void *buffer, unsigned int bytes ); 00037 00038 // Same thing as above functions, but not global 00039 class RAK_DLL_EXPORT RakNetRandom 00040 { 00041 public: 00042 RakNetRandom(); 00043 ~RakNetRandom(); 00044 void SeedMT( unsigned int seed ); 00045 unsigned int ReloadMT( void ); 00046 unsigned int RandomMT( void ); 00047 float FrandomMT( void ); 00048 void FillBufferMT( void *buffer, unsigned int bytes ); 00049 00050 protected: 00051 unsigned int state[ 624 + 1 ]; 00052 unsigned int *next; 00053 int left; 00054 }; 00055 00056 #endif