static int bigwords(token_t foo)
/* FEE FIE FOE FOO (AND FUM). Advance to next state if given in proper order.
- * Look up foo in section 3 of vocab to determine which word we've got. Last
- * word zips the eggs back to the giant room (unless already there). */
+ * Look up foo in special section of vocab to determine which word we've got.
+ * Last word zips the eggs back to the giant room (unless already there). */
{
- //int k = vocab(foo, 3);
char word[6];
packed_to_token(foo, word);
int k = (int) get_special_vocab_id(word);
if (obj == BOTTLE && LIQUID() != 0)
game.place[LIQUID()] = CARRIED;
if (GSTONE(obj) && game.prop[obj] != 0) {
- game.prop[obj] = 0;
+ game.prop[obj] = STATE_GROUND;
game.prop[CAVITY] = CAVITY_EMPTY;
}
rspeak(OK_MAN);
return (discard(verb, obj, true));
} else if (obj == URN) {
spk = FULL_URN;
- if (game.prop[URN] != 0) {
+ if (game.prop[URN] != URN_EMPTY) {
rspeak(spk);
return GO_CLEAROBJ;
}
game.place[k] = LOC_NOWHERE;
game.prop[BOTTLE] = EMPTY_BOTTLE;
if (k == OIL)
- game.prop[URN] = 1;
+ game.prop[URN] = URN_DARK;
spk = WATER_URN + game.prop[URN];
rspeak(spk);
return GO_CLEAROBJ;
spk = BOTTLED_WATER;
if (LIQLOC(game.loc) == 0)
spk = NO_LIQUID;
- if (HERE(URN) && game.prop[URN] != 0)
+ if (HERE(URN) && game.prop[URN] != URN_EMPTY)
spk = URN_NOPOUR;
if (LIQUID() != 0)
spk = BOTTLE_FULL;
if (obj == URN && game.prop[URN] == URN_LIT) {
DESTROY(URN);
drop(AMBER, game.loc);
- game.prop[AMBER] = 1;
+ game.prop[AMBER] = AMBER_IN_ROCK;
--game.tally;
drop(CAVITY, game.loc);
spk = URN_GENIES;
b = command->wd2x;
command->wd1 = command->wd2;
}
- //int wd = vocab(command->wd1, -1);
char word1[6];
packed_to_token(command->wd1, word1);
int wd = (int) get_vocab_id(word1);
/* FIXME: magic numbers */
- if (wd == XYZZY || wd == PLUGH || wd == PLOVER || wd == ACTION_WORD(GIANTWORDS) || wd == ACTION_WORD(PART)) {
+ if (wd == MOTION_WORD(XYZZY) || wd == MOTION_WORD(PLUGH) || wd == MOTION_WORD(PLOVER) || wd == ACTION_WORD(GIANTWORDS) || wd == ACTION_WORD(PART)) {
/* FIXME: scribbles on the interpreter's command block */
wordclear(&command->wd2);
return GO_LOOKUP;