- if (just_do_it) goto L9021;
- if (TOTING(ROD2) && obj == ROD && !TOTING(ROD))obj=ROD2;
- if (!TOTING(obj)) return(2011);
- if (obj != BIRD || !HERE(SNAKE)) goto L9023;
- RSPEAK(30);
- if (game.closed) return(19000);
- DSTROY(SNAKE);
- /* Set game.prop for use by travel options */
- game.prop[SNAKE]=1;
-L9021: K=LIQ(0);
- if (K == obj)obj=BOTTLE;
- if (obj == BOTTLE && K != 0)game.place[K]=0;
- if (obj == CAGE && game.prop[BIRD] == 1)DROP(BIRD,game.loc);
- DROP(obj,game.loc);
- if (obj != BIRD) return(2012);
- game.prop[BIRD]=0;
- if (FOREST(game.loc))game.prop[BIRD]=2;
- return(2012);
-
-L9023: if (!(GSTONE(obj) && AT(CAVITY) && game.prop[CAVITY] != 0)) goto L9024;
- RSPEAK(218);
- game.prop[obj]=1;
- game.prop[CAVITY]=0;
- if (!HERE(RUG) || !((obj == EMRALD && game.prop[RUG] != 2) || (obj == RUBY &&
- game.prop[RUG] == 2))) goto L9021;
- SPK=219;
- if (TOTING(RUG))SPK=220;
- if (obj == RUBY)SPK=221;
- RSPEAK(SPK);
- if (SPK == 220) goto L9021;
- K=2-game.prop[RUG];
- game.prop[RUG]=K;
- if (K == 2)K=PLAC[SAPPH];
- MOVE(RUG+NOBJECTS,K);
- goto L9021;
-
-L9024: if (obj != COINS || !HERE(VEND)) goto L9025;
- DSTROY(COINS);
- DROP(BATTER,game.loc);
- PSPEAK(BATTER,0);
- return(2012);
-
-L9025: if (obj != BIRD || !AT(DRAGON) || game.prop[DRAGON] != 0) goto L9026;
- RSPEAK(154);
- DSTROY(BIRD);
- game.prop[BIRD]=0;
- return(2012);
-
-L9026: if (obj != BEAR || !AT(TROLL)) goto L9027;
- RSPEAK(163);
- MOVE(TROLL,0);
- MOVE(TROLL+NOBJECTS,0);
- MOVE(TROLL2,PLAC[TROLL]);
- MOVE(TROLL2+NOBJECTS,FIXD[TROLL]);
- JUGGLE(CHASM);
- game.prop[TROLL]=2;
- goto L9021;
-
-L9027: if (obj == VASE && game.loc != PLAC[PILLOW]) goto L9028;
- RSPEAK(54);
- goto L9021;
+ if (!just_do_it) {
+ if (TOTING(ROD2) && obj == ROD && !TOTING(ROD))obj=ROD2;
+ if (!TOTING(obj)) return(2011);
+ if (obj == BIRD && HERE(SNAKE)) {
+ RSPEAK(30);
+ if (game.closed) return(19000);
+ DSTROY(SNAKE);
+ /* Set game.prop for use by travel options */
+ game.prop[SNAKE]=1;