X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=main.c;h=378c1886e1ac4947c8b4e771f2f0aa47b37b8822;hb=943b3a62e680e733ffe57552657d22ce148fed5f;hp=49acfa61625999806b3d4e51a455771f958a2ae5;hpb=01b2c05cbb7299241571f7f039a591e09088aeec;p=open-adventure.git diff --git a/main.c b/main.c index 49acfa6..378c188 100644 --- a/main.c +++ b/main.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "main.h" #include "misc.h" @@ -39,6 +40,7 @@ long ABBNUM, ACTSPK[36], AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BO TRVSIZ = 885, TTEXT[6], TURNS, URN, V1, V2, VASE, VEND, VERB, VOLCAN, VRBSIZ = 35, VRSION = 25, WATER, WD1, WD1X, WD2, WD2X, WZDARK = false, ZZWORD; +FILE *logfp; extern void initialise(); extern void score(long); @@ -49,6 +51,7 @@ extern int action(long); */ int main(int argc, char *argv[]) { + int ch; /* Adventure (rev 2: 20 treasures) */ @@ -58,6 +61,20 @@ int main(int argc, char *argv[]) { * Errata fixed: 78/12/25 */ +/* Options. */ + + while ((ch = getopt(argc, argv, "l:")) != EOF) { + switch (ch) { + case 'l': + logfp = fopen(optarg, "w+"); + if (logfp == NULL) + fprintf(stderr, + "advent: can't open logfile %s for write\n", + optarg); + break; + } + } + /* Logical variables: * * CLOSED says whether we're all the way closed @@ -90,8 +107,6 @@ int main(int argc, char *argv[]) { RSPEAK(201); exit(0); - - /* Start-up, dwarf stuff */ L1: SETUP= -1; @@ -146,13 +161,13 @@ L74: LOC=NEWLOC; L6000: if(DFLAG != 1) goto L6010; if(!INDEEP(LOC) || (PCT(95) && (!CNDBIT(LOC,4) || PCT(85)))) goto L2000; DFLAG=2; - /* 6001 */ for (I=1; I<=2; I++) { + for (I=1; I<=2; I++) { J=1+RAN(5); -L6001: if(PCT(50))DLOC[J]=0; + if(PCT(50))DLOC[J]=0; } /* end loop */ - /* 6002 */ for (I=1; I<=5; I++) { + for (I=1; I<=5; I++) { if(DLOC[I] == LOC)DLOC[I]=DALTLC; -L6002: ODLOC[I]=DLOC[I]; + ODLOC[I]=DLOC[I]; } /* end loop */ RSPEAK(3); DROP(AXE,LOC); @@ -347,8 +362,8 @@ L2602: /*etc*/ ; L2603: if(!CLOSED) goto L2605; if(PROP[OYSTER] < 0 && TOTING(OYSTER))PSPEAK(OYSTER,1); - /* 2604 */ for (I=1; I<=100; I++) { -L2604: if(TOTING(I) && PROP[I] < 0)PROP[I]= -1-PROP[I]; + for (I=1; I<=100; I++) { + if(TOTING(I) && PROP[I] < 0)PROP[I]= -1-PROP[I]; } /* end loop */ L2605: WZDARK=DARK(0); if(KNFLOC > 0 && KNFLOC != LOC)KNFLOC=0; @@ -766,9 +781,9 @@ L41000: if(TALLY == 1 && PROP[JADE] < 0) goto L40010; L10000: PROP[GRATE]=0; PROP[FISSUR]=0; - /* 10010 */ for (I=1; I<=6; I++) { + for (I=1; I<=6; I++) { DSEEN[I]=false; -L10010: DLOC[I]=0; + DLOC[I]=0; } /* end loop */ MOVE(TROLL,0); MOVE(TROLL+100,0); @@ -822,8 +837,8 @@ L11000: PROP[BOTTLE]=PUT(BOTTLE,115,1); PROP[MIRROR]=PUT(MIRROR,115,0); FIXED[MIRROR]=116; - /* 11010 */ for (I=1; I<=100; I++) { -L11010: if(TOTING(I))DSTROY(I); + for (I=1; I<=100; I++) { + if(TOTING(I))DSTROY(I); } /* end loop */ RSPEAK(132);