ddnet/src/game/prng.h
2020-09-11 00:03:31 +02:00

33 lines
688 B
C++

#ifndef GAME_PRNG_H
#define GAME_PRNG_H
#include <base/system.h>
class CPrng
{
public:
// Creates an unseeded instance.
CPrng();
// The name of the random number generator including the current seed.
const char *Description() const;
// Seeds the random number generator with the given integer. The random
// sequence obtained by calling `RandomBits()` repeatedly is guaranteed
// to be the same for the same seed.
void Seed(uint64 aSeed[2]);
// Generates 32 random bits. `Seed()` must be called before calling
// this function.
unsigned int RandomBits();
private:
char m_aDescription[64];
bool m_Seeded;
uint64 m_State;
uint64 m_Increment;
};
#endif // GAME_PRNG_H