game.prop[CAVITY] = CAVITY_FULL;
if (HERE(RUG) && ((obj == EMERALD && game.prop[RUG] != RUG_HOVER) ||
(obj == RUBY && game.prop[RUG] == RUG_HOVER))) {
- int spk;
if (obj == RUBY)
- spk = RUG_SETTLES;
+ rspeak(RUG_SETTLES);
else if (TOTING(RUG))
- spk = RUG_WIGGLES;
+ rspeak(RUG_WIGGLES);
else
- spk = RUG_RISES;
- rspeak(spk);
- if (spk != RUG_WIGGLES) {
+ rspeak(RUG_RISES);
+ if (!TOTING(RUG) || obj == RUBY) {
int k = (game.prop[RUG] == RUG_HOVER) ? RUG_FLOOR : RUG_HOVER;
game.prop[RUG] = k;
if (k == RUG_HOVER)
motion = game.oldlc2;
game.oldlc2 = game.oldloc;
game.oldloc = game.loc;
- int spk = 0;
- if (motion == game.loc)
- spk = FORGOT_PATH;
- if (CNDBIT(game.loc, COND_NOBACK))
- spk = TWIST_TURN;
- if (spk == 0) {
- int te_tmp = 0;
- for (;;) {
- enum desttype_t desttype = travel[travel_entry].desttype;
- scratchloc = travel[travel_entry].destval;
- if (desttype != dest_goto || scratchloc != motion) {
- if (desttype == dest_goto) {
- if (FORCED(scratchloc) && travel[tkey[scratchloc]].destval == motion)
- te_tmp = travel_entry;
- }
- if (!travel[travel_entry].stop) {
- ++travel_entry; /* go to next travel entry for this location */
- continue;
- }
- /* we've reached the end of travel entries for game.loc */
- travel_entry = te_tmp;
- if (travel_entry == 0) {
- rspeak(NOT_CONNECTED);
- return;
- }
- }
+ if (CNDBIT(game.loc, COND_NOBACK)) {
+ rspeak(TWIST_TURN);
+ return;
+ }
+ if (motion == game.loc) {
+ rspeak(FORGOT_PATH);
+ return;
+ }
- motion = travel[travel_entry].motion;
- travel_entry = tkey[game.loc];
- break; /* fall through to ordinary travel */
+ int te_tmp = 0;
+ for (;;) {
+ enum desttype_t desttype = travel[travel_entry].desttype;
+ scratchloc = travel[travel_entry].destval;
+ if (desttype != dest_goto || scratchloc != motion) {
+ if (desttype == dest_goto) {
+ if (FORCED(scratchloc) && travel[tkey[scratchloc]].destval == motion)
+ te_tmp = travel_entry;
+ }
+ if (!travel[travel_entry].stop) {
+ ++travel_entry; /* go to next travel entry for this location */
+ continue;
+ }
+ /* we've reached the end of travel entries for game.loc */
+ travel_entry = te_tmp;
+ if (travel_entry == 0) {
+ rspeak(NOT_CONNECTED);
+ return;
+ }
}
- } else {
- rspeak(spk);
- return;
+
+ motion = travel[travel_entry].motion;
+ travel_entry = tkey[game.loc];
+ break; /* fall through to ordinary travel */
}
} else if (motion == LOOK) {
/* Look. Can't give more detail. Pretend it wasn't dark