long LNLENG, LNPOSN, PARMS[MAXPARMS + 1];
char rawbuf[LINESIZE], INLINE[LINESIZE + 1];
-long AMBER, AXE, BACK, BATTER, BEAR, BIRD, BLOOD,
+long AMBER, AXE, BACK, BATTERY, BEAR, BIRD, BLOOD,
BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST,
CLAM, COINS, DOOR, DPRSSN, DRAGON, DWARF, EGGS,
- EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOD,
+ EMERALD, ENTER, ENTRNC, FIND, FISSURE, FOOD,
GRATE, HINT, INVENT, JADE, KEYS,
- KNIFE, LAMP, LOCK, LOOK, MAGZIN,
+ KNIFE, LAMP, LOCK, LOOK, MAGAZINE,
MESSAG, MIRROR, NUGGET, NUL, OGRE, OIL, OYSTER,
- PEARL, PILLOW, PLANT, PLANT2, PYRAM, RESER, ROD, ROD2,
+ PEARL, PILLOW, PLANT, PLANT2, PYRAMID, RESER, ROD, ROD2,
RUBY, RUG, SAPPH, SAY, SIGN, SNAKE,
- STEPS, STREAM, THROW, TRIDNT, TROLL, TROLL2,
- URN, VASE, VEND, VOLCAN, WATER;
+ STEPS, STREAM, THROW, TRIDENT, TROLL, TROLL2,
+ URN, VASE, VEND, VOLCANO, WATER;
long WD1, WD1X, WD2, WD2X;
FILE *logfp = NULL, *rfp = NULL;
game.loc = LOC_START;
game.limit = 330;
if (!rfp) {
- game.novice = YES(WELCOME_YOU, CAVE_NEARBY, NO_MESSAGE);
+ game.novice = YES(arbitrary_messages[WELCOME_YOU], arbitrary_messages[CAVE_NEARBY], arbitrary_messages[NO_MESSAGE]);
if (game.novice)game.limit = 1000;
} else {
restore(rfp);
game.hintlc[hint] = 0;
return;
case 4: /* dark */
- if (game.prop[EMRALD] != -1 && game.prop[PYRAM] == -1)
+ if (game.prop[EMERALD] != -1 && game.prop[PYRAMID] == -1)
break;
game.hintlc[hint] = 0;
return;
/* Fall through to hint display */
game.hintlc[hint] = 0;
- if (!YES(HINTS[hint][3], NO_MESSAGE, OK_MAN))
+ if (!YES(arbitrary_messages[HINTS[hint][3]], arbitrary_messages[NO_MESSAGE], arbitrary_messages[OK_MAN]))
return;
SETPRM(1, HINTS[hint][2], HINTS[hint][2]);
RSPEAK(HINT_COST);
- game.hinted[hint] = YES(WANT_HINT, HINTS[hint][4], OK_MAN);
+ game.hinted[hint] = YES(arbitrary_messages[WANT_HINT], arbitrary_messages[HINTS[hint][4]], arbitrary_messages[OK_MAN]);
if (game.hinted[hint] && game.limit > WARNTIME)
game.limit += WARNTIME * HINTS[hint][2];
}
for (int treasure = MINTRS; treasure <= MAXTRS; treasure++) {
/* Pirate won't take pyramid from plover room or dark
* room (too easy!). */
- if (treasure == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD])) {
+ if (treasure == PYRAMID && (game.loc == PLAC[PYRAMID] || game.loc == PLAC[EMERALD])) {
continue;
}
if (TOTING(treasure) || HERE(treasure))
if (robplayer) {
RSPEAK(PIRATE_POUNCES);
for (int treasure = MINTRS; treasure <= MAXTRS; treasure++) {
- if (!(treasure == PYRAM && (game.loc == PLAC[PYRAM] || game.loc == PLAC[EMRALD]))) {
+ if (!(treasure == PYRAMID && (game.loc == PLAC[PYRAMID] || game.loc == PLAC[EMERALD]))) {
if (AT(treasure) && game.fixed[treasure] == 0)
CARRY(treasure, game.loc);
if (TOTING(treasure))
/* "You're dead, Jim."
*
* If the current loc is zero, it means the clown got himself killed.
- * We'll allow this maxdie times. MAXDIE is automatically set based
+ * We'll allow this maxdie times. maximum_deaths is automatically set based
* on the number of snide messages available. Each death results in
* a message (81, 83, etc.) which offers reincarnation; if accepted,
* this results in message 82, 84, etc. The last time, if he wants
static void croak(void)
/* Okay, he's dead. Let's get on with it. */
{
+ const char* query = obituaries[game.numdie].query;
+ const char* yes_response = obituaries[game.numdie].yes_response;
++game.numdie;
if (game.closng) {
/* He died during closing time. No resurrection. Tally up a
RSPEAK(DEATH_CLOSING);
terminate(endgame);
}
- /* FIXME: Arithmetic on message numbers */
- else if (game.numdie == MAXDIE || !YES(WATCH_IT + game.numdie * 2, WHICH_WAY + game.numdie * 2, OK_MAN))
+ else if (game.numdie == maximum_deaths || !YES(query, yes_response, arbitrary_messages[OK_MAN]))
terminate(endgame);
else {
game.place[WATER] = game.place[OIL] = NOWHERE;
* actual motion, but can be spotted by "go back". */
/* FIXME: Arithmetic on location numbers */
game.newloc = 99 + 100 - game.loc;
- if (game.holdng > 1 || (game.holdng == 1 && !TOTING(EMRALD))) {
+ if (game.holdng > 1 || (game.holdng == 1 && !TOTING(EMERALD))) {
game.newloc = game.loc;
RSPEAK(MUST_DROP);
}
* special travel if toting it), so he's forced to use the
* plover-passage to get it out. Having dropped it, go back and
* pretend he wasn't carrying it after all. */
- DROP(EMRALD, game.loc);
+ DROP(EMERALD, game.loc);
goto L12;
case 3:
/* Travel 303. Troll bridge. Must be done only as special
* have been activated, since we've found chest. */
if (game.clock1 == 0) {
game.prop[GRATE] = 0;
- game.prop[FISSUR] = 0;
+ game.prop[FISSURE] = 0;
for (int i = 1; i <= NDWARVES; i++) {
game.dseen[i] = false;
game.dloc[i] = 0;
* Second is for other cases of lamp dying. 12400 is when it
* goes out. Even then, he can explore outside for a while
* if desired. */
- if (game.limit <= WARNTIME && HERE(BATTER) && game.prop[BATTER] == 0 && HERE(LAMP)) {
+ if (game.limit <= WARNTIME && HERE(BATTERY) && game.prop[BATTERY] == 0 && HERE(LAMP)) {
RSPEAK(REPLACE_BATTERIES);
- game.prop[BATTER] = 1;
- if (TOTING(BATTER))
- DROP(BATTER, game.loc);
+ game.prop[BATTERY] = 1;
+ if (TOTING(BATTERY))
+ DROP(BATTERY, game.loc);
game.limit = game.limit + 2500;
game.lmwarn = false;
} else if (game.limit == 0) {
if (!game.lmwarn && HERE(LAMP)) {
game.lmwarn = true;
int spk = GET_BATTERIES;
- if (game.place[BATTER] == NOWHERE)spk = LAMP_DIM;
- if (game.prop[BATTER] == 1)spk = MISSING_BATTERIES;
+ if (game.place[BATTERY] == NOWHERE)spk = LAMP_DIM;
+ if (game.prop[BATTERY] == 1)spk = MISSING_BATTERYIES;
RSPEAK(spk);
}
}