DESTROY(BIRD);
return GO_CLEAROBJ;
} else if (obj == BEAR && AT(TROLL)) {
- rspeak(TROLL_SCAMPERS);
+ state_change(TROLL, TROLL_GONE);
move(TROLL, LOC_NOWHERE);
move(TROLL + NOBJECTS, LOC_NOWHERE);
move(TROLL2, objects[TROLL].plac);
move(TROLL2 + NOBJECTS, objects[TROLL].fixd);
juggle(CHASM);
- game.prop[TROLL] = TROLL_GONE;
} else if (obj != VASE ||
game.loc == objects[PILLOW].plac) {
rspeak(OK_MAN);
return GO_CLEAROBJ;
}
if (!AT(DOOR)) {
- if (obj != WATER) {
+ if (obj == WATER) {
+ /* cycle through the three plant states */
+ state_change(PLANT, MOD(game.prop[PLANT] + 1, 3));
+ game.prop[PLANT2] = game.prop[PLANT];
+ return GO_MOVE;
+ } else {
rspeak(SHAKING_LEAVES);
return GO_CLEAROBJ;
- }
- /* FIXME: Arithmetic on state numbers */
- pspeak(PLANT, look, game.prop[PLANT] + 3, true);
- game.prop[PLANT] = MOD(game.prop[PLANT] + 1, 3);
- game.prop[PLANT2] = game.prop[PLANT];
- return GO_MOVE;
+ }
} else {
state_change(DOOR, (obj == OIL) ?
DOOR_UNRUSTED :