From: Eric S. Raymond Date: Sat, 1 Jul 2017 12:59:45 +0000 (-0400) Subject: Move PRNG initialization to simplify cheat.c X-Git-Tag: takebird~160 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=065caace647f86770df0d7bb9f1a3a1ffdd0f188;p=open-adventure.git Move PRNG initialization to simplify cheat.c --- diff --git a/advent.h b/advent.h index ac648fe..6f66d1e 100644 --- a/advent.h +++ b/advent.h @@ -210,7 +210,7 @@ extern int savefile(FILE *, long); extern int suspend(void); extern int resume(void); extern int restore(FILE *); -extern void initialise(void); +extern long initialise(void); extern int action(struct command_t *command); /* Alas, declaring this static confuses the coverage analyzer */ diff --git a/cheat.c b/cheat.c index 5bca67f..89b0f72 100644 --- a/cheat.c +++ b/cheat.c @@ -83,13 +83,6 @@ int main(int argc, char *argv[]) FILE *fp = NULL; - game.lcg_a = 1093; - game.lcg_c = 221587; - game.lcg_m = 1048576; - srand(time(NULL)); - long seedval = (long)rand(); - set_seed(seedval); - /* Initialize game variables */ initialise(); diff --git a/init.c b/init.c index 4d05e0f..fdde548 100644 --- a/init.c +++ b/init.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "advent.h" @@ -9,11 +10,20 @@ * Initialisation */ -void initialise(void) +long initialise(void) { if (oldstyle) printf("Initialising...\n"); + /* Initialize our LCG PRNG with parameters tested against + * Knuth vol. 2. by the original authors */ + game.lcg_a = 1093; + game.lcg_c = 221587; + game.lcg_m = 1048576; + srand(time(NULL)); + long seedval = (long)rand(); + set_seed(seedval); + for (int i = 1; i <= NOBJECTS; i++) { game.place[i] = LOC_NOWHERE; } @@ -57,4 +67,6 @@ void initialise(void) } } game.conds = setbit(11); + + return seedval; } diff --git a/main.c b/main.c index a6027f8..077e3a9 100644 --- a/main.c +++ b/main.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include "advent.h" #include "linenoise/linenoise.h" @@ -138,17 +137,8 @@ int main(int argc, char *argv[]) linenoiseHistorySetMaxLen(350); - /* Initialize our LCG PRNG with parameters tested against - * Knuth vol. 2. by the original authors */ - game.lcg_a = 1093; - game.lcg_c = 221587; - game.lcg_m = 1048576; - srand(time(NULL)); - long seedval = (long)rand(); - set_seed(seedval); - /* Initialize game variables */ - initialise(); + long seedval = initialise(); /* Start-up, dwarf stuff */ make_zzword(game.zzword);