Hand merge of MR !31: Update the CI infrastructure to be faster
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index 7a065b2fd91ca3dc4f955be85b93f893f99ca558..400abd8b3fd8c5f20fec394b716aebf42cac7296 100644 (file)
--- a/main.c
+++ b/main.c
@@ -18,7 +18,7 @@ long ABB[186], ATLOC[186], BLKLIN = true, DFLAG,
                LINK[201], LNLENG, LNPOSN,
                PARMS[26], PLACE[101],
                SETUP = 0;
-signed char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[129], MAP2[129];
+char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[129], MAP2[129];
 
 long ABBNUM, AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BONUS,
                 BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST, CHLOC, CHLOC2,
@@ -110,7 +110,8 @@ int main(int argc, char *argv[]) {
        lcgstate.a = 1093;
        lcgstate.c = 221587;
        lcgstate.m = 1048576;
-       long seedval = (long)time(NULL);
+       srand(time(NULL));
+       long seedval = (long)rand();
        set_seed(seedval);
 
 /*  Read the database if we have not yet done so */
@@ -140,7 +141,7 @@ L1: SETUP= -1;
 
        if (logfp)
            fprintf(logfp, "seed %ld\n", seedval);
-       
+
        for (;;) {
            if (!do_command(stdin))
                break;
@@ -148,13 +149,15 @@ L1:       SETUP= -1;
        score(1);
 }
 
-static bool fallback_handler(signed char *buf)
+static bool fallback_handler(char *buf)
 /* fallback handler for commands not handled by FORTRANish parser */
 {
     long sv;
     if (sscanf(buf, "seed %ld", &sv) == 1) {
        set_seed(sv);
        printf("Seed set to %ld\n", sv);
+       // autogenerated, so don't charge user time for it.
+       --TURNS;
        // here we reconfigure any global game state that uses random numbers
        ZZWORD=RNDVOC(3,0);
        return true;
@@ -400,8 +403,7 @@ L2600:      if(COND[LOC] < CONDS) goto L2603;
 L2602: /*etc*/ ;
        } /* end loop */
 
-/*  Kick the random number generator just to add variety to the chase.  Also,
- *  if closing time, check for any objects being toted with PROP < 0 and set
+/*  If closing time, check for any objects being toted with PROP < 0 and set
  *  the prop to -1-PROP.  This way objects won't be described until they've
  *  been picked up and put down separate from their respective piles.  Don't
  *  tick CLOCK1 unless well into cave (and not at Y2). */