about summary refs log tree commit diff stats
path: root/Source/Random.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Random.cpp')
-rw-r--r--Source/Random.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Source/Random.cpp b/Source/Random.cpp index 61fd30f..d9fe678 100644 --- a/Source/Random.cpp +++ b/Source/Random.cpp
@@ -1,7 +1,7 @@
1#include <chrono> 1#include <chrono>
2#include "Random.h" 2#include "Random.h"
3 3
4int Random::s_seed = static_cast<int>(time(nullptr)); // Seed from the time in milliseconds 4uint32_t Random::s_seed = static_cast<int>(time(nullptr)); // Seed from the time in milliseconds
5 5
6void Random::SetSeed(int seed) { 6void Random::SetSeed(int seed) {
7 s_seed = seed; 7 s_seed = seed;
@@ -9,6 +9,7 @@ void Random::SetSeed(int seed) {
9 9
10// Returns a random integer in [min, max] 10// Returns a random integer in [min, max]
11int Random::RandInt(int min, int max) { 11int Random::RandInt(int min, int max) {
12 s_seed = (214013 * s_seed + 2531011) % 2147483648; 12 s_seed = (214013 * s_seed + 2531011); // Implicit unsigned integer overflow
13 return (s_seed % (max - min + 1)) + min; 13 int32_t maskedSeed = ((s_seed >> 16) & 0x7fff); // Only use bits 16-30
14 return (maskedSeed % (max - min + 1)) + min;
14} 15}