X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions2.c;h=ea236a37eb27e590eb326b64bbf88307e15b1700;hb=00c0da471d5d337f2cdd36cee368bd101edcfb69;hp=fb25c116e4c2df83a933d7fdeb56b565e453ea9b;hpb=040f19adde85fdd78628eb390a685907804f85ae;p=open-adventure.git diff --git a/actions2.c b/actions2.c index fb25c11..ea236a3 100644 --- a/actions2.c +++ b/actions2.c @@ -1,6 +1,4 @@ -#include "misc.h" -#include "main.h" -#include "share.h" +#include "advent.h" #include "funcs.h" /* Carry an object. Special cases for bird and cage (if bird in cage, can't @@ -131,7 +129,7 @@ L9028: PROP[VASE]=2; * objects fall into two categories: enemies (snake, dwarf, etc.) and others * (bird, clam, machine). Ambiguous if 2 enemies, or no enemies but 2 others. */ -int attack() { +int attack(FILE *input) { I=ATDWRF(LOC); if(OBJ != 0) goto L9124; if(I > 0)OBJ=DWARF; @@ -148,12 +146,13 @@ int attack() { /* CLAM AND OYSTER BOTH TREATED AS CLAM FOR INTRANSITIVE CASE; NO HARM DONE. */ if(HERE(CLAM) || HERE(OYSTER))OBJ=100*OBJ+CLAM; if(OBJ > 100) return(8000); -L9124: if(OBJ != BIRD) goto L9125; - SPK=137; - if(CLOSED) return(2011); - DSTROY(BIRD); - PROP[BIRD]=0; - SPK=45; +L9124: if(OBJ == BIRD) { + SPK=137; + if(CLOSED) return(2011); + DSTROY(BIRD); + PROP[BIRD]=0; + SPK=45; + } L9125: if(OBJ != VEND) goto L9126; PSPEAK(VEND,PROP[VEND]+2); PROP[VEND]=3-PROP[VEND]; @@ -172,11 +171,11 @@ L9126: if(OBJ == 0)SPK=44; if(OBJ != DRAGON || PROP[DRAGON] != 0) return(2011); /* Fun stuff for dragon. If he insists on attacking it, win! Set PROP to dead, * move dragon to central loc (still fixed), move rug there (not fixed), and - * move him there, too. then do a null motion to get new description. */ + * move him there, too. Then do a null motion to get new description. */ RSPEAK(49); VERB=0; OBJ=0; - GETIN(WD1,WD1X,WD2,WD2X); + GETIN(input,WD1,WD1X,WD2,WD2X); if(WD1 != MAKEWD(25) && WD1 != MAKEWD(250519)) return(2607); PSPEAK(DRAGON,3); PROP[DRAGON]=1; @@ -199,22 +198,22 @@ L9128: RSPEAK(SPK); RSPEAK(6); DSTROY(OGRE); K=0; - /* 9129 */ for (I=1; I<=5; I++) { - if(DLOC[I] != LOC) goto L9129; - K=K+1; - DLOC[I]=61; - DSEEN[I]=false; -L9129: /*etc*/ ; - } /* end loop */ + for (I=1; I<=5; I++) { + if(DLOC[I] == LOC) { + K=K+1; + DLOC[I]=61; + DSEEN[I]=false; + } + } SPK=SPK+1+1/K; - return(2011); + return(2011); } /* Throw. Same as discard unless axe. Then same as attack except ignore bird, * and if dwarf is present then one might be killed. (Only way to do so!) * Axe also special for dragon, bear, and troll. Treasures special for troll. */ -int throw() { +int throw(FILE *cmdin) { if(TOTING(ROD2) && OBJ == ROD && !TOTING(ROD))OBJ=ROD2; if(!TOTING(OBJ)) return(2011); if(OBJ >= 50 && OBJ <= MAXTRS && AT(TROLL)) goto L9178; @@ -230,10 +229,10 @@ int throw() { if(AT(OGRE)) goto L9175; if(HERE(BEAR) && PROP[BEAR] == 0) goto L9176; OBJ=0; - return(attack()); + return(attack(cmdin)); L9172: SPK=48; - if(RAN(7) < DFLAG) goto L9175; + if(randrange(7) < DFLAG) goto L9175; DSEEN[I]=false; DLOC[I]=0; SPK=47; @@ -267,7 +266,7 @@ L9178: SPK=159; return(2011); } -/* Feed. If bird, no seed. snake, dragon, troll: quip. If dwarf, make him +/* Feed. If bird, no seed. Snake, dragon, troll: quip. If dwarf, make him * mad. Bear, special. */ int feed() {