X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=misc.c;h=8ea3db40c6cde454344abef1f86fa9b338f1530c;hb=7763e1aa223938cf51a1dcd1f49f220a3f9dcbea;hp=7057bad5272b10ec44239d7ff848008e0564d3c8;hpb=6146406990839864bfc5074327f44f207d3b61c2;p=open-adventure.git diff --git a/misc.c b/misc.c index 7057bad..8ea3db4 100644 --- a/misc.c +++ b/misc.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "main.h" #include "share.h" /* for SETUP */ #include "misc.h" @@ -724,7 +725,8 @@ L2: ATDWRF=I; -/* Utility routines (SETBIT, TSTBIT, set_seed_from_time, get_next_lcg_value, randrange, RNDVOC, BUG) */ +/* Utility routines (SETBIT, TSTBIT, set_seed, get_next_lcg_value, + * randrange, RNDVOC, BUG) */ #undef SETBIT long fSETBIT(long BIT) { @@ -759,11 +761,9 @@ long TSTBIT; #define TSTBIT(MASK,BIT) fTSTBIT(MASK,BIT) -void set_seed_from_time(void) +void set_seed(long seedval) { - /* Use the current system time to get seed the ISO rand() function, from which we get a seed for the LCG. */ - srand(time(NULL)); - lcgstate.x = (unsigned long) rand() % lcgstate.m; + lcgstate.x = (unsigned long) seedval % lcgstate.m; } unsigned long get_next_lcg_value(void) @@ -888,17 +888,18 @@ long I, VAL; if (!oldstyle && SETUP && OPENED == stdin) fputs("> ", stdout); do { - IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED)); + IGNORE(fgets(rawbuf,sizeof(INLINE)-1,OPENED)); } while (!feof(OPENED) && INLINE[1] == '#'); if (feof(OPENED)) { if (logfp && OPENED == stdin) fclose(logfp); } else { - if (logfp) - IGNORE(fputs(INLINE+1, logfp)); + if (logfp && OPENED == stdin) + IGNORE(fputs(rawbuf, logfp)); else if (!isatty(0)) - IGNORE(fputs(INLINE+1, stdout)); + IGNORE(fputs(rawbuf, stdout)); + strcpy(INLINE+1, rawbuf); LNLENG=0; for (I=1; I<=sizeof(INLINE) && INLINE[I]!=0; I++) { VAL=INLINE[I]+1;