From a7cb9a7383912d245b9501f5a1e1c7cba4501978 Mon Sep 17 00:00:00 2001 From: shweet Date: Thu, 29 Aug 2024 22:16:35 -0400 Subject: [PATCH] the final solution to the randomness problem --- include/jsw_rand.c | 4 +++- src/engine/random.c | 2 +- src/game/game.c | 2 +- src/game/state/level/level.c | 2 ++ src/game/state/state.h | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/jsw_rand.c b/include/jsw_rand.c index 24f28e1..19818b1 100644 --- a/include/jsw_rand.c +++ b/include/jsw_rand.c @@ -24,6 +24,8 @@ void jsw_seed ( unsigned long s ) * ( x[i - 1] ^ ( x[i - 1] >> 30 ) ) + i ); x[i] &= 0xffffffffUL; } + + next = 0; } /* Mersenne Twister */ @@ -70,4 +72,4 @@ unsigned jsw_time_seed() seed = seed * ( UCHAR_MAX + 2U ) + p[i]; return seed; -} \ No newline at end of file +} diff --git a/src/engine/random.c b/src/engine/random.c index 221e932..14a41ab 100644 --- a/src/engine/random.c +++ b/src/engine/random.c @@ -9,7 +9,7 @@ random_seed_set(u64 seed) void random_seed_time_set(void) { - jsw_time_seed(); + random_seed_set(jsw_time_seed()); } f32 diff --git a/src/game/game.c b/src/game/game.c index 42d883b..d14ad88 100644 --- a/src/game/game.c +++ b/src/game/game.c @@ -92,7 +92,7 @@ game_init(Game* self) memset(self, '\0', sizeof(Game)); - random_seed_time_set(); + random_seed_set(0); resource_shader_read(&self->resources); diff --git a/src/game/state/level/level.c b/src/game/state/level/level.c index f01a529..a0b3791 100644 --- a/src/game/state/level/level.c +++ b/src/game/state/level/level.c @@ -227,6 +227,8 @@ level_init(Level* self, ECS* ecs, LevelSettings settings, u32 levelValue) level_pause_init(self); level_unpause(self); + random_seed_set(0); + self->settings = settings; self->medal = LEVEL_MEDAL_NONE; self->nextMedal = LEVEL_MEDAL_BRONZE; diff --git a/src/game/state/state.h b/src/game/state/state.h index bc95c52..44ad91b 100644 --- a/src/game/state/state.h +++ b/src/game/state/state.h @@ -396,7 +396,7 @@ static const LevelData LEVEL_DATA_DEFAULT[LEVEL_COUNT] = .time = -1 }, { - .status = LEVEL_STATUS_UNLOCKED, + .status = LEVEL_STATUS_LOCKED, .score = -1, .time = -1 },