- } else if (obj == COINS && HERE(VEND)) {
- DESTROY(COINS);
- drop(BATTERY, game.loc);
- pspeak(BATTERY, look, FRESH_BATTERIES);
+ }
+ drop(obj, game.loc);
+ return GO_CLEAROBJ;
+ }
+
+ if (obj == COINS && HERE(VEND)) {
+ DESTROY(COINS);
+ drop(BATTERY, game.loc);
+ pspeak(BATTERY, look, FRESH_BATTERIES, true);
+ return GO_CLEAROBJ;
+ }
+
+ if (LIQUID() == obj)
+ obj = BOTTLE;
+ if (obj == BOTTLE && LIQUID() != NO_OBJECT) {
+ game.place[LIQUID()] = LOC_NOWHERE;
+ }
+
+ if (obj == BEAR && AT(TROLL)) {
+ state_change(TROLL, TROLL_GONE);
+ move(TROLL, LOC_NOWHERE);
+ move(TROLL + NOBJECTS, IS_FREE);
+ move(TROLL2, objects[TROLL].plac);
+ move(TROLL2 + NOBJECTS, objects[TROLL].fixd);
+ juggle(CHASM);
+ drop(obj, game.loc);
+ return GO_CLEAROBJ;
+ }
+
+ if (obj == VASE) {
+ if (game.loc != objects[PILLOW].plac) {
+ state_change(VASE, AT(PILLOW)
+ ? VASE_WHOLE
+ : VASE_DROPPED);
+ if (game.prop[VASE] != VASE_WHOLE)
+ game.fixed[VASE] = IS_FIXED;
+ drop(obj, game.loc);