* enemies, or no enemies but 2 others. */
{
int spk = ACTSPK[verb];
- int i = ATDWRF(game.loc);
+ int d = ATDWRF(game.loc);
if (obj == 0) {
- if (i > 0)
+ if (d > 0)
obj=DWARF;
if (HERE(SNAKE))obj=obj*NOBJECTS+SNAKE;
if (AT(DRAGON) && game.prop[DRAGON] == 0)obj=obj*NOBJECTS+DRAGON;
if (obj == DWARF && game.closed) return GO_DWARFWAKE;
if (obj == DRAGON)spk=ALREADY_DEAD;
if (obj == TROLL)spk=ROCKY_TROLL;
- if (obj == OGRE)spk=OGRE_DOFGE;
- if (obj == OGRE && i > 0) {
+ if (obj == OGRE)spk=OGRE_DODGE;
+ if (obj == OGRE && d > 0) {
RSPEAK(spk);
RSPEAK(KNIFE_THROWN);
DSTROY(OGRE);
int k=0;
- for (i=1; i < PIRATE; i++) {
+ for (int i=1; i < PIRATE; i++) {
if (game.dloc[i] == game.loc) {
++k;
- game.dloc[i]=61;
+ game.dloc[i] = LOC_LONGWEST;
game.dseen[i]=false;
}
}
- spk=spk+1+1/k;
+ spk=spk+1+1/k; /* FIXME: Arithmetic on message numbers */
+ RSPEAK(spk);
+ return GO_CLEAROBJ;
+ }
+
+ 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;
}
- if (obj == BEAR)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,
{
int spk, k=0;
if (obj == OYSTER)k=1;
- spk=PEARL_FALLS+k;
+ /* FIXME: Arithmetic on message numbers in next lines */
+ spk=PEARL_FALLS+k;
if (TOTING(obj))spk=DROP_CLAM+k;
if (!TOTING(TRIDNT))spk=CLAM_OPENER+k;
if (verb == LOCK)spk=HUH_MAN;
- if (spk == 124) {
+ if (spk == PEARL_FALLS) {
DSTROY(CLAM);
DROP(OYSTER,game.loc);
- DROP(PEARL,105);
+ DROP(PEARL,LOC_CULDESAC);
}
RSPEAK(spk);
return GO_CLEAROBJ;
return GO_CLEAROBJ;
}
game.bonus=133;
- if (game.loc == 115)
+ if (game.loc == LOC_NE)
game.bonus=134;
if (HERE(ROD2))
game.bonus=135;
spk=CHAIN_LOCKED;
if (game.prop[CHAIN] != 0)spk=ALREADY_LOCKED;
if (game.loc != PLAC[CHAIN])spk=NO_LOCKSITE;
- if (spk != CHAIN_LOCKED) {RSPEAK(spk); return GO_CLEAROBJ;}
+ if (spk != CHAIN_LOCKED) {
+ RSPEAK(spk);
+ return GO_CLEAROBJ;
+ }
game.prop[CHAIN]=2;
if (TOTING(CHAIN))DROP(CHAIN,game.loc);
game.fixed[CHAIN]= -1;
if (TOTING(RUG))spk=RUG_WIGGLES;
if (obj == RUBY)spk=RUG_SETTLES;
RSPEAK(spk);
- if (spk != 220) {
+ if (spk != RUG_WIGGLES) {
int k = 2-game.prop[RUG];
game.prop[RUG] = k;
if (k == 2) k = PLAC[SAPPH];
return GO_UNKNOWN;
if (obj != BLOOD) {
if (obj != 0 && obj != WATER)spk=RIDICULOUS_ATTEMPT;
- if (spk != 110 && LIQUID() == WATER && HERE(BOTTLE)) {
+ if (spk != RIDICULOUS_ATTEMPT && LIQUID() == WATER && HERE(BOTTLE)) {
game.prop[BOTTLE]=1;
game.place[WATER]=0;
spk=BOTTLE_EMPTY;
return GO_CLEAROBJ;
}
RSPEAK(SHATTER_VASE);
- game.prop[VASE]=2;
+ game.prop[VASE] = 2;
game.fixed[VASE]= -1;
return(discard(verb, obj, true));
}
game.prop[BOTTLE]=MOD(COND[game.loc],4)/2*2;
k=LIQUID();
if (TOTING(BOTTLE))
- game.place[k]= -1;
+ game.place[k] = -1;
if (k == OIL)
spk=BOTTLED_OIL;
}
if (obj == INTRANSITIVE) {
if (game.prop[RUG] != 2)spk=RUG_NOTHING2;
if (!HERE(RUG))spk=FLAP_ARMS;
- if (spk/2 == 112) {
+ if (spk/2 == 112) { /* FIXME: Arithmetic on message numbers */
RSPEAK(spk);
return GO_CLEAROBJ;
}
game.oldloc=game.loc;
game.newloc=game.place[RUG]+game.fixed[RUG]-game.loc;
spk=RUG_GOES;
- if (game.prop[SAPPH] >= 0)spk=RUG_RETURNS;
+ if (game.prop[SAPPH] >= 0)
+ spk=RUG_RETURNS;
RSPEAK(spk);
return GO_TERMINATE;
}
-
+
static int inven(token_t obj)
/* Inventory. If object, treat same as find. Else report on current burden. */
{
- int i;
int spk=NO_CARRY;
- for (i=1; i<=NOBJECTS; i++) {
+ for (int i=1; i<=NOBJECTS; i++) {
if (i == BEAR || !TOTING(i))
continue;
- if (spk == 98)
+ if (spk == NO_CARRY)
RSPEAK(NOW_HOLDING);
game.blklin=false;
PSPEAK(i,-1);
return GO_TOP;
else
return GO_CLEAROBJ;
- }
+ }
}
static int listen(void)
/* Listen. Intransitive only. Print stuff based on objsnd/locsnd. */
{
- int i, k;
+ int k;
int spk=ALL_SILENT;
k=LOCSND[game.loc];
if (k != 0) {
spk=ARB_0;
}
SETPRM(1,game.zzword,0);
- for (i=1; i<=NOBJECTS; i++) {
+ for (int i=1; i<=NOBJECTS; i++) {
if (!HERE(i) || OBJSND[i] == 0 || game.prop[i] < 0)
continue;
PSPEAK(i,OBJSND[i]+game.prop[i]);
} else {
PSPEAK(RESER,game.prop[RESER]+1);
game.prop[RESER]=1-game.prop[RESER];
- if (AT(RESER)) return GO_CLEAROBJ;
- game.oldlc2=game.loc;
- game.newloc=0;
- RSPEAK(NOT_BRIGHT);
- return GO_TERMINATE;
+ if (AT(RESER))
+ return GO_CLEAROBJ;
+ else {
+ game.oldlc2=game.loc;
+ game.newloc=0;
+ RSPEAK(NOT_BRIGHT);
+ return GO_TERMINATE;
+ }
}
}
if (WD2 > 0)
WD1=WD2;
int wd=VOCAB(WD1,-1);
+ /* FIXME: Magic numbers */
if (wd == 62 || wd == 65 || wd == 71 || wd == 2025 || wd == 2034) {
WD2=0;
return GO_LOOKUP;
RSPEAK(spk);
return GO_CLEAROBJ;
}
- if (obj >= 50 && obj <= MAXTRS && AT(TROLL)) {
+ if (obj >= MINTRS && obj <= MAXTRS && AT(TROLL)) {
spk=TROLL_SATISFIED;
/* Snarf a treasure for the troll. */
DROP(obj,0);
return throw_support(spk);
}
if (AT(OGRE)) {
- spk=OGRE_DOFGE;
+ spk=OGRE_DODGE;
return throw_support(spk);
}
if (HERE(BEAR) && game.prop[BEAR] == 0) {
if (HERE(obj))
/* FALL THROUGH */;
else if (obj == GRATE) {
- if (game.loc == 1 || game.loc == 4 || game.loc == 7)
+ if (game.loc == LOC_START || game.loc == LOC_VALLEY || game.loc == LOC_SLIT)
obj=DPRSSN;
- if (game.loc > 9 && game.loc < 15)
+ /* FIXME: Arithmetic on location numbers */
+ if (game.loc > LOC_BELOWGRATE && game.loc < LOC_MISTHALL)
obj=ENTRNC;
if (obj != GRATE)
return GO_MOVE;