rogged: re-seed on game-over; display seed in game-end screen

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0178392036902a87b64fde63f5a5f56a6a6a6964
This commit is contained in:
raf 2026-04-10 11:22:17 +03:00
commit 8bbca55b78
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
3 changed files with 16 additions and 8 deletions

View file

@ -482,9 +482,9 @@ static int handle_input(GameState *gs) {
// Check for restart (works during game over)
if (IsKeyPressed(KEY_R) && gs->game_over) {
unsigned int saved_seed = gs->run_seed;
memset(gs, 0, sizeof(GameState));
gs->run_seed = saved_seed;
// Generate a new random seed for the new run
gs->run_seed = (unsigned int)time(NULL);
init_floor(gs, 1);
return 0;
}
@ -539,9 +539,9 @@ static void game_loop(unsigned int run_seed) {
if (IsKeyPressed(KEY_Q))
break;
if (IsKeyPressed(KEY_R)) {
unsigned int saved_seed = gs.run_seed;
memset(&gs, 0, sizeof(GameState));
gs.run_seed = saved_seed;
// Generate a new random seed for the new run
gs.run_seed = (unsigned int)time(NULL);
gs.game_over = 0;
gs.game_won = 0;
load_audio_assets(&gs);
@ -598,7 +598,7 @@ static void game_loop(unsigned int run_seed) {
}
render_end_screen(gs.game_won, gs.total_kills, gs.items_collected, gs.damage_dealt, gs.damage_taken,
gs.crits_landed, gs.times_hit, gs.potions_used, gs.floors_reached, gs.turn_count,
gs.final_score);
gs.final_score, gs.run_seed);
}
EndDrawing();