-#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
* 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;
/* 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];
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;
MOVE(DRAGON,K);
MOVE(RUG,K);
DROP(BLOOD,K);
- /* 9127 */ for (OBJ=1; OBJ<=100; OBJ++) {
+ for (OBJ=1; OBJ<=100; OBJ++) {
if(PLACE[OBJ] == PLAC[DRAGON] || PLACE[OBJ] == FIXD[DRAGON])MOVE(OBJ,K);
-L9127: /*etc*/ ;
+ /*etc*/ ;
} /* end loop */
LOC=K;
K=NUL;
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;
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;
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() {