From 91c7fd1a7d94522ccb7e53382f8e64cb237ca08b Mon Sep 17 00:00:00 2001 From: ChatGPT Date: Thu, 18 Jun 2026 06:13:39 +0000 Subject: [PATCH] nwnss: add seedRandQuad runtime wrapper --- src/nwnss/library/misc/rand.c | 5 +++++ tests/nwnss/rand/test_nwnss_rand.c | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/nwnss/library/misc/rand.c b/src/nwnss/library/misc/rand.c index abff8cc..e1d0e01 100644 --- a/src/nwnss/library/misc/rand.c +++ b/src/nwnss/library/misc/rand.c @@ -64,6 +64,11 @@ void srandQuad(QUAD seed) haveRandState = 1; } +void seedRandQuad(SQUAD seed) +{ + srandQuad((QUAD)seed); +} + SQUAD randQuad(void) { nwnssRandEnsureSeeded(); diff --git a/tests/nwnss/rand/test_nwnss_rand.c b/tests/nwnss/rand/test_nwnss_rand.c index c042e80..e4a8cd3 100644 --- a/tests/nwnss/rand/test_nwnss_rand.c +++ b/tests/nwnss/rand/test_nwnss_rand.c @@ -1,3 +1,4 @@ +#include #include #include @@ -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);