X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=misc.c;h=8d5a296d61e2068ae19deafc228c35547da46d35;hb=bbe68abd30a0012339501aa47e144ffb7d7390ca;hp=b1f3f8367ad66f427dc1884bdcbb531a89f9b0b7;hpb=935d8b8e68c90ca5fed1c66cc13ee427af2ca0f7;p=open-adventure.git diff --git a/misc.c b/misc.c index b1f3f83..8d5a296 100644 --- a/misc.c +++ b/misc.c @@ -15,11 +15,11 @@ void fSPEAK(long N) { long BLANK, CASE, I, K, L, NEG, NPARMS, PARM, PRMTYP, STATE; /* Print the message which starts at LINES(N). Precede it with a blank line - * unless BLKLIN is false. */ + * unless game.blklin is false. */ if(N == 0)return; - BLANK=BLKLIN; + BLANK=game.blklin; K=N; NPARMS=1; L10: L=IABS(LINES[K])-1; @@ -172,7 +172,7 @@ void fSETPRM(long FIRST, long P1, long P2) { #define WORD1X (*wORD1X) #define WORD2 (*wORD2) #define WORD2X (*wORD2X) -void fGETIN(long *wORD1, long *wORD1X, long *wORD2, long *wORD2X) { +void fGETIN(FILE *input, long *wORD1, long *wORD1X, long *wORD2, long *wORD2X) { long JUNK; /* Get a command from the adventurer. Snarf out the first word, pad it with @@ -182,11 +182,11 @@ long JUNK; * WORD2 (chars 6 thru 10 in WORD2X), else WORD2 is -1. */ -L10: if(BLKLIN)TYPE0(); - MAPLIN(stdin); - if(feof(stdin)) score(1); +L10: if(game.blklin)TYPE0(); + MAPLIN(input); + if(input == stdin && feof(stdin)) score(1); WORD1=GETTXT(true,true,true,0); - if(BLKLIN && WORD1 < 0) goto L10; + if(game.blklin && WORD1 < 0) goto L10; WORD1X=GETTXT(false,true,true,0); L12: JUNK=GETTXT(false,true,true,0); if(JUNK > 0) goto L12; @@ -205,9 +205,9 @@ L22: JUNK=GETTXT(false,true,true,0); #undef WORD1X #undef WORD2 #undef WORD2X -#define GETIN(WORD1,WORD1X,WORD2,WORD2X) fGETIN(&WORD1,&WORD1X,&WORD2,&WORD2X) +#define GETIN(SRC,WORD1,WORD1X,WORD2,WORD2X) fGETIN(SRC,&WORD1,&WORD1X,&WORD2,&WORD2X) #undef YES -long fYES(long X, long Y, long Z) { +long fYES(FILE *input, long X, long Y, long Z) { long YES, REPLY, JUNK1, JUNK2, JUNK3; @@ -215,7 +215,7 @@ long YES, REPLY, JUNK1, JUNK2, JUNK3; * if no, print Z and return false. */ L1: RSPEAK(X); - GETIN(REPLY,JUNK1,JUNK2,JUNK3); + GETIN(input, REPLY,JUNK1,JUNK2,JUNK3); if(REPLY == MAKEWD(250519) || REPLY == MAKEWD(25)) goto L10; if(REPLY == MAKEWD(1415) || REPLY == MAKEWD(14)) goto L20; RSPEAK(185); @@ -650,13 +650,13 @@ long TEMP; /* Start toting an object, removing it from the list of things at its former * location. Incr holdng unless it was already being toted. If OBJECT>100 - * (moving "fixed" second loc), don't change PLACE or HOLDNG. */ + * (moving "fixed" second loc), don't change PLACE or game.holdng. */ if(OBJECT > 100) goto L5; if(PLACE[OBJECT] == -1)return; PLACE[OBJECT]= -1; - HOLDNG=HOLDNG+1; + game.holdng=game.holdng+1; L5: if(ATLOC[WHERE] != OBJECT) goto L6; ATLOC[WHERE]=LINK[OBJECT]; return; @@ -676,11 +676,11 @@ void fDROP(long OBJECT, long WHERE) { ; /* Place an object at a given loc, prefixing it onto the ATLOC list. Decr - * HOLDNG if the object was being toted. */ + * game.holdng if the object was being toted. */ if(OBJECT > 100) goto L1; - if(PLACE[OBJECT] == -1)HOLDNG=HOLDNG-1; + if(PLACE[OBJECT] == -1)game.holdng=game.holdng-1; PLACE[OBJECT]=WHERE; goto L2; L1: {long x = OBJECT-100; FIXED[x]=WHERE;} @@ -703,7 +703,7 @@ long ATDWRF, I; ATDWRF=0; - if(DFLAG < 2)return(ATDWRF); + if(game.dflag < 2)return(ATDWRF); ATDWRF= -1; for (I=1; I<=5; I++) { if(DLOC[I] == WHERE) goto L2;