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)spk=OGRE_DODGE;
if (obj == OGRE && d > 0) {
RSPEAK(spk);
RSPEAK(KNIFE_THROWN);
static int bivalve(token_t verb, token_t obj)
/* Clam/oyster actions */
{
- int spk, k=0;
- if (obj == OYSTER)k=1;
- /* 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;
+ int spk;
+ bool is_oyster = (obj == OYSTER);
+ spk= is_oyster ? OYSTER_OPENS : PEARL_FALLS;
+ if (TOTING(obj))spk= is_oyster ? DROP_OYSTER : DROP_CLAM;
+ if (!TOTING(TRIDNT))spk= is_oyster ? OYSTER_OPENER : CLAM_OPENER;
if (verb == LOCK)spk=HUH_MAN;
if (spk == PEARL_FALLS) {
DSTROY(CLAM);
if (HERE(ROD2))
game.bonus=135;
RSPEAK(game.bonus);
- score(0);
+ score(endgame);
return GO_CLEAROBJ; /* pacify compiler - we never get here */
}
}
if (!TOTING(CAGE))spk=CANNOT_CARRY;
if (TOTING(ROD))spk=BIRD_EVADES;
- if (spk/2 == 13) { /* FIXME: Arithmetic on message number */
+ if (spk == CANNOT_CARRY || spk == BIRD_EVADES) {
RSPEAK(spk);
return GO_CLEAROBJ;
}
if (obj == INTRANSITIVE) {
if (game.prop[RUG] != 2)spk=RUG_NOTHING2;
if (!HERE(RUG))spk=FLAP_ARMS;
- if (spk/2 == 112) { /* FIXME: Arithmetic on message numbers */
+ if (spk == RUG_NOTHING2 || spk == FLAP_ARMS) {
RSPEAK(spk);
return GO_CLEAROBJ;
}
if (!game.panic)game.clock2=15;
game.panic=true;
} else {
- spk=ALREADY_LOCKED+game.prop[GRATE]; /* FIXME: Arithmetic on message number */
+ spk=game.prop[GRATE] ? GRATE_LOCKED : ALREADY_LOCKED;
game.prop[GRATE]=1;
if (verb == LOCK)game.prop[GRATE]=0;
- spk=spk+2*game.prop[GRATE];
+ spk=game.prop[GRATE] ? GRATE_UNLOCKED : GRATE_LOCKED;
}
}
}
/* 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;
}
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;
return throw_support(spk);
}
if (AT(OGRE)) {
- spk=OGRE_DOFGE;
+ spk=OGRE_DODGE;
return throw_support(spk);
}
if (HERE(BEAR) && game.prop[BEAR] == 0) {
static int vscore(void)
/* Score. Call scoring routine but tell it to return. */
{
- score(-1);
+ score(scoregame);
return GO_CLEAROBJ;
}