From 3c7dcb5ea1821dc43d3b3f83e2b7a396dd791a6b Mon Sep 17 00:00:00 2001 From: Linus Probert Date: Fri, 14 Dec 2018 08:21:16 +0100 Subject: [PATCH] Begins new random impl --- src/random.c | 25 +++++++++++++++++++------ src/random.h | 3 +++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/random.c b/src/random.c index 5a098c9..2b0f6f4 100644 --- a/src/random.c +++ b/src/random.c @@ -21,15 +21,28 @@ #include #include "random.h" +static unsigned int seed = 0; + +static void +init_seed(void) +{ + if (seed == 0) { + seed = (unsigned int) time(NULL); + srand(seed); + } +} + +unsigned int +get_seed(void) +{ + init_seed(); + return seed; +} + unsigned int get_random(unsigned int max) { - static bool seeded = false; - if (!seeded) { - srand((unsigned int) time(NULL)); - seeded = true; - } - + init_seed(); return rand() % (max + 1); } diff --git a/src/random.h b/src/random.h index 9405e98..d74ccb7 100644 --- a/src/random.h +++ b/src/random.h @@ -19,6 +19,9 @@ #ifndef RANDOM_H_ #define RANDOM_H_ +unsigned int +get_seed(void); + unsigned int get_random(unsigned int max);