summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorTommi Sinivuo <[email protected]>2021-09-17 22:26:21 +0300
committerGitHub <[email protected]>2021-09-17 21:26:21 +0200
commit3c55f067a804926f0d145d41601eef6858a138dc (patch)
tree5ac81912b40e266e5ec88c44794917593337214e /src
parent23fabb1d67515c41984bb31daabb3d3b3f6c88a3 (diff)
downloadraylib-3c55f067a804926f0d145d41601eef6858a138dc.tar.gz
raylib-3c55f067a804926f0d145d41601eef6858a138dc.zip
Add SetRandomSeed(unsigned int seed) function (#1994)
Specifying a fixed seed for the random number generator is often used in games for various reasons. By adding an api function for seeding the random number generator we solve two different problems regarding the seeding: 1) The underlying RNG implementation does not leak to client code (as would be the case if we called srand directly from the client code) 2) Seeding the RNG would be simple from other programming languages (especially in cases where calling libc functions is non-trivial)
Diffstat (limited to 'src')
-rw-r--r--src/core.c6
-rw-r--r--src/raylib.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/core.c b/src/core.c
index 711aa889..0cace3a6 100644
--- a/src/core.c
+++ b/src/core.c
@@ -2669,6 +2669,12 @@ int GetRandomValue(int min, int max)
return (rand()%(abs(max - min) + 1) + min);
}
+// Set the seed for the random number generator
+void SetRandomSeed(unsigned int seed)
+{
+ srand(seed);
+}
+
// Check if the file exists
bool FileExists(const char *fileName)
{
diff --git a/src/raylib.h b/src/raylib.h
index 3adc5c52..865d9d45 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -1009,6 +1009,7 @@ RLAPI double GetTime(void); // Get elapsed
// Misc. functions
RLAPI int GetRandomValue(int min, int max); // Get a random value between min and max (both included)
+RLAPI void SetRandomSeed(unsigned int seed); // Set the seed for the random number generator
RLAPI void TakeScreenshot(const char *fileName); // Takes a screenshot of current screen (filename extension defines format)
RLAPI void SetConfigFlags(unsigned int flags); // Setup init configuration flags (view FLAGS)