nwnss: add seedRandQuad runtime wrapper

This commit is contained in:
ChatGPT
2026-06-18 06:13:39 +00:00
committed by Mario Fetka
parent e829c399c5
commit 91c7fd1a7d
2 changed files with 32 additions and 0 deletions

View File

@@ -64,6 +64,11 @@ void srandQuad(QUAD seed)
haveRandState = 1;
}
void seedRandQuad(SQUAD seed)
{
srandQuad((QUAD)seed);
}
SQUAD randQuad(void)
{
nwnssRandEnsureSeeded();

View File

@@ -1,3 +1,4 @@
#include <library/omni.h>
#include <library/rand.h>
#include <library/xStdlib.h>
@@ -44,6 +45,31 @@ static int check_repeatable_quad_seed(void)
return 0;
}
static int check_seed_rand_quad_wrapper(void)
{
SQUAD seq_a[3];
SQUAD seq_b[3];
int i;
srandQuad(0x123456789abcdef0LL);
for (i = 0; i < 3; ++i)
seq_a[i] = randQuad();
seedRandQuad(0x123456789abcdef0LL);
for (i = 0; i < 3; ++i)
seq_b[i] = randQuad();
for (i = 0; i < 3; ++i)
CHECK(seq_a[i] == seq_b[i]);
seedRandQuad(-1LL);
seq_a[0] = randQuad();
seedRandQuad(-1LL);
CHECK(randQuad() == seq_a[0]);
return 0;
}
static int check_repeatable_rnd_quad_seed(void)
{
SQUAD seq_a[3];
@@ -170,6 +196,7 @@ static int check_stdlib_rand_wrappers(void)
int main(void)
{
CHECK(check_repeatable_quad_seed() == 0);
CHECK(check_seed_rand_quad_wrapper() == 0);
CHECK(check_repeatable_rnd_quad_seed() == 0);
CHECK(check_repeatable_long_seed() == 0);
CHECK(check_chi_square() == 0);