X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=main.c;h=6c5512721c9daddaae1079ad9259ee2bb17a8946;hb=0f126b0cb5f8539f456f2d7f2c06d8f32c2491c2;hp=7a065b2fd91ca3dc4f955be85b93f893f99ca558;hpb=fda1abed97075962560d2e2d12d1a8d931ed371d;p=open-adventure.git diff --git a/main.c b/main.c index 7a065b2..6c55127 100644 --- a/main.c +++ b/main.c @@ -9,16 +9,15 @@ #include #include #include -#include "main.h" +#include "advent.h" #include "database.h" -#include "misc.h" long ABB[186], ATLOC[186], BLKLIN = true, DFLAG, DLOC[7], FIXED[101], HOLDNG, 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 +109,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 +140,7 @@ L1: SETUP= -1; if (logfp) fprintf(logfp, "seed %ld\n", seedval); - + for (;;) { if (!do_command(stdin)) break; @@ -148,13 +148,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 +402,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). */