* fixed), move rug there (not fixed), and move him there,
* too. Then do a null motion to get new description. */
rspeak(BARE_HANDS_QUERY);
- if (silent_yes()) {
- // FIXME: setting wd1 is a workaround for broken logic
- command->wd1 = token_to_packed("Y");
- } else {
- // FIXME: setting wd1 is a workaround for broken logic
- command->wd1 = token_to_packed("N");
- return GO_CHECKFOO;
- }
+ if (!silent_yes())
+ {
+ speak(arbitrary_messages[NASTY_DRAGON]);
+ return GO_MOVE;
+ }
state_change(DRAGON, DRAGON_DEAD);
game.prop[RUG] = RUG_FLOOR;
/* Hardcoding LOC_SECRET5 as the dragon's death location is ugly.
switch (obj) {
case MIRROR:
if (game.closed) {
- rspeak(BREAK_MIRROR);
+ state_change(MIRROR, MIRROR_BROKEN);
return GO_DWARFWAKE;
} else {
rspeak(TOO_FAR);
} else
rspeak(OK_MAN);
- game.prop[BIRD] = BIRD_UNCAGED;
- if (FOREST(game.loc))
- game.prop[BIRD] = BIRD_FOREST_UNCAGED;
+ game.prop[BIRD] = FOREST(game.loc) ? BIRD_FOREST_UNCAGED : BIRD_UNCAGED;
drop(obj, game.loc);
return GO_CLEAROBJ;
}
command->obj = ROD2;
/* FALL THROUGH */;
} else if ((command->verb == FIND ||
- command->verb == INVENTORY) && command->wd2 <= 0)
+ command->verb == INVENTORY) && (command->id2 == WORD_EMPTY || command->id2 == WORD_NOT_FOUND))
/* FALL THROUGH */;
else {
sspeak(NO_SEE, command->raw1);
return GO_CLEAROBJ;
}
- if (command->wd2 > 0)
+ if (command->id2 != WORD_EMPTY && command->id2 != WORD_NOT_FOUND)
return GO_WORD2;
if (command->verb != 0)
command->part = transitive;