game.loc = LOC_START;
game.limit = 330;
if (!rfp) {
- game.novice = YES(stdin, WELCOME_YOU, CAVE_NEARBY, NO_MESSAGE);
+ game.novice = YES(WELCOME_YOU, CAVE_NEARBY, NO_MESSAGE);
if (game.novice)game.limit = 1000;
} else {
restore(rfp);
/* Fall through to hint display */
game.hintlc[hint] = 0;
- if (!YES(cmdin, HINTS[hint][3], NO_MESSAGE, OK_MAN))
+ if (!YES(HINTS[hint][3], NO_MESSAGE, OK_MAN))
return;
SETPRM(1, HINTS[hint][2], HINTS[hint][2]);
RSPEAK(HINT_COST);
- game.hinted[hint] = YES(cmdin, WANT_HINT, HINTS[hint][4], OK_MAN);
+ game.hinted[hint] = YES(WANT_HINT, HINTS[hint][4], OK_MAN);
if (game.hinted[hint] && game.limit > WARNTIME)
game.limit += WARNTIME * HINTS[hint][2];
}
terminate(endgame);
}
/* FIXME: Arithmetic on message numbers */
- else if (game.numdie == MAXDIE || !YES(cmdin, WATCH_IT + game.numdie * 2, WHICH_WAY + game.numdie * 2, OK_MAN))
+ else if (game.numdie == MAXDIE || !YES(WATCH_IT + game.numdie * 2, WHICH_WAY + game.numdie * 2, OK_MAN))
terminate(endgame);
else {
game.place[WATER] = game.place[OIL] = NOWHERE;
/* else fall through */
} else if (game.prop[motion] != game.newloc / 100 - 3)
break;
+ L12:
do {
if (TRAVEL[kk] < 0)BUG(25);
++kk;
* actual motion, but can be spotted by "go back". */
/* FIXME: Arithmetic on location numbers */
game.newloc = 99 + 100 - game.loc;
- if (game.holdng == 0 || (game.holdng == 1 && TOTING(EMRALD)))
- return true;
- game.newloc = game.loc;
- RSPEAK(MUST_DROP);
+ if (game.holdng > 1 || (game.holdng == 1 && !TOTING(EMRALD))) {
+ game.newloc = game.loc;
+ RSPEAK(MUST_DROP);
+ }
return true;
case 2:
/* Travel 302. Plover transport. Drop the emerald (only use
* plover-passage to get it out. Having dropped it, go back and
* pretend he wasn't carrying it after all. */
DROP(EMRALD, game.loc);
- do {
- if (TRAVEL[kk] < 0)BUG(25);
- ++kk;
- game.newloc = labs(TRAVEL[kk]) / 1000;
- } while
- (game.newloc == scratchloc);
- continue; /* back to top of do/while loop */
+ goto L12;
case 3:
/* Travel 303. Troll bridge. Must be done only as special
* motion so that dwarves won't wander across and encounter
game.prop[BEAR] = 3;
game.oldlc2 = game.newloc;
croak(cmdin);
- return false;
}
}
BUG(20);
}
} while
- (false);
+ (false);
/* FIXME: Arithmetic on location number, becoming a message number */
RSPEAK(game.newloc - 500);
game.newloc = game.loc;