OpenClonk
C4Random.h
Go to the documentation of this file.
1 /*
2  * OpenClonk, http://www.openclonk.org
3  *
4  * Copyright (c) 1998-2000, Matthes Bender
5  * Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de/
6  * Copyright (c) 2013-2016, The OpenClonk Team and contributors
7  *
8  * Distributed under the terms of the ISC license; see accompanying file
9  * "COPYING" for details.
10  *
11  * "Clonk" is a registered trademark of Matthes Bender, used with permission.
12  * See accompanying file "TRADEMARK" for details.
13  *
14  * To redistribute this file separately, substitute the full license texts
15  * for the above references.
16  */
17 
18 /* Network-safe random number generator */
19 
20 #ifndef INC_C4Random
21 #define INC_C4Random
22 
23 #include <cinttypes>
24 
25 extern int RandomCount;
26 
27 // Seeds both the synchronized and the unsynchronized RNGs.
28 void FixedRandom(uint64_t dwSeed);
29 // Synchronized RNG.
30 uint32_t Random(uint32_t iRange);
31 // Unsynchronized RNG.
32 uint32_t UnsyncedRandom();
33 uint32_t UnsyncedRandom(uint32_t range);
34 // Generates a single random value from a seed.
35 uint32_t SeededRandom(uint64_t iSeed, uint32_t iRange);
36 
37 // Internal
38 void RecordRandom(uint32_t range, uint32_t val);
39 
40 #endif // INC_C4Random
uint32_t Random(uint32_t iRange)
Definition: C4Random.cpp:50
void RecordRandom(uint32_t range, uint32_t val)
uint32_t SeededRandom(uint64_t iSeed, uint32_t iRange)
Definition: C4Random.cpp:69
int RandomCount
Definition: C4Random.cpp:27
uint32_t UnsyncedRandom()
Definition: C4Random.cpp:58
void FixedRandom(uint64_t dwSeed)
Definition: C4Random.cpp:37