RSPEAK(spk);
RSPEAK(KNIFE_THROWN);
DSTROY(OGRE);
- int k=0;
+ int dwarves=0;
for (int i=1; i < PIRATE; i++) {
if (game.dloc[i] == game.loc) {
- ++k;
+ ++dwarves;
game.dloc[i] = LOC_LONGWEST;
game.dseen[i]=false;
}
}
- spk=spk+1+1/k; /* FIXME: Arithmetic on message numbers */
- RSPEAK(spk);
- return GO_CLEAROBJ;
+ spk=spk+1+1/dwarves; /* FIXME: Arithmetic on message numbers */
}
-
- if (obj == BEAR)
+ else if (obj == BEAR)
/* FIXME: Arithmetic on message numbers */
spk = BEAR_HANDS+(game.prop[BEAR]+1)/2;
- if (obj != DRAGON || game.prop[DRAGON] != 0) {
- RSPEAK(spk);
- return GO_CLEAROBJ;
- }
- /* Fun stuff for dragon. If he insists on attacking it, win!
- * Set game.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. */
- RSPEAK(BARE_HANDS_QUERY);
- GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
- if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
- return GO_CHECKFOO;
- PSPEAK(DRAGON,3);
- game.prop[DRAGON]=1;
- game.prop[RUG]=0;
- int k=(PLAC[DRAGON]+FIXD[DRAGON])/2;
- MOVE(DRAGON+NOBJECTS,-1);
- MOVE(RUG+NOBJECTS,0);
- MOVE(DRAGON,k);
- MOVE(RUG,k);
- DROP(BLOOD,k);
- for (obj=1; obj<=NOBJECTS; obj++) {
- if (game.place[obj] == PLAC[DRAGON] || game.place[obj] == FIXD[DRAGON])
- MOVE(obj,k);
+ else if (obj == DRAGON && game.prop[DRAGON] == 0) {
+ /* Fun stuff for dragon. If he insists on attacking it, win!
+ * Set game.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. */
+ RSPEAK(BARE_HANDS_QUERY);
+ GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
+ if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
+ return GO_CHECKFOO;
+ PSPEAK(DRAGON,3);
+ game.prop[DRAGON]=1;
+ game.prop[RUG]=0;
+ int k=(PLAC[DRAGON]+FIXD[DRAGON])/2;
+ MOVE(DRAGON+NOBJECTS,-1);
+ MOVE(RUG+NOBJECTS,0);
+ MOVE(DRAGON,k);
+ MOVE(RUG,k);
+ DROP(BLOOD,k);
+ for (obj=1; obj<=NOBJECTS; obj++) {
+ if (game.place[obj] == PLAC[DRAGON] || game.place[obj] == FIXD[DRAGON])
+ MOVE(obj,k);
+ }
+ game.loc=k;
+ return GO_MOVE;
}
- game.loc=k;
- return GO_MOVE;
+
+ RSPEAK(spk);
+ return GO_CLEAROBJ;
}
static int bigwords(long foo)
if (HERE(ROD2))
game.bonus=135;
RSPEAK(game.bonus);
- score(0);
+ score(endgame);
return GO_CLEAROBJ; /* pacify compiler - we never get here */
}
return GO_TERMINATE;
}
-static int inven(token_t obj)
+static int inven(void)
/* Inventory. If object, treat same as find. Else report on current burden. */
{
int spk=NO_CARRY;
/* Quit. Intransitive only. Verify intent and exit if that's what he wants. */
{
if (YES(input,REALLY_QUIT,OK_MAN,OK_MAN))
- score(1);
+ score(quitgame);
return GO_CLEAROBJ;
}
static int vscore(void)
/* Score. Call scoring routine but tell it to return. */
{
- score(-1);
+ score(scoregame);
return GO_CLEAROBJ;
}
case 16: /* TOSS */ return GO_UNKNOWN;
case 17: /* QUIT */ return quit(input);
case 18: /* FIND */ return GO_UNKNOWN;
- case 19: /* INVEN */ return inven(obj);
+ case 19: /* INVEN */ return inven();
case 20: /* FEED */ return GO_UNKNOWN;
case 21: /* FILL */ return fill(verb, obj);
case 22: /* BLAST */ return blast();