text: 
  
  #ifndef TRANDOM_INCLUDED
  #define TRANDOM_INCLUDED
  
  #include "tcommon.h"
  
  #undef DVAPI
  #undef DVVAR
  #ifdef TNZCORE_EXPORTS
  #define DVAPI DV_EXPORT_API
  #define DVVAR DV_EXPORT_VAR
  #else
  #define DVAPI DV_IMPORT_API
  #define DVVAR DV_IMPORT_VAR
  #endif
  
  /*! Generates a pseudorandom sequence
  */
  class DVAPI TRandom
  {
  public:
  	TRandom(UINT seed = 0);
  	~TRandom();
  
  	/*! resets the pseudorandom engine to the first number of the sequence */
  	void reset();
  
  	/*! set a new seed for the pseudorandom engine and reset the sequence */
  	void setSeed(UINT seed);
  
  	/*! returns an unsigned integer number in the range [0, end[ */
  	UINT getUInt(UINT end = c_maxuint); // [0,end[
  
  	/*! returns an integer number in the range [begin, end[ */
  	int getInt(int begin, int end);
  
  	/*! returns a float number in the range [0, 1[ */
  	float getFloat();
  
  	/*! returns a float number in the range [0, end[ */
  	float getFloat(float end);
  
  	/*! returns a float number in the range [begin, end[ */
  	float getFloat(float begin, float end);
  
  	/*! returns a random bool value */
  	bool getBool();
  
  	/*! returns a double number in the range [0, 1[ */
  	double getDouble();
  
  private:
  	UINT seed;
  	int idx1, idx2;
  	UINT ran[56];
  
  	enum RANDOM_FLOAT_TYPE {
  		RANDOM_FLOAT_TYPE_NONE,
  		RANDOM_FLOAT_TYPE_1,
  		RANDOM_FLOAT_TYPE_2,
  		RANDOM_FLOAT_TYPE_HOW_MANY
  	};
  
  	static RANDOM_FLOAT_TYPE RandomFloatType;
  
  	inline UINT getNextUINT();
  	inline void setRandomFloatType();
  };
  
  #endif //TRANDOM_INCLUDED
  