* If the current loc is zero, it means the clown got himself killed.
* We'll allow this maxdie times. NDEATHS 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
- * another chance, he gets a snide remark as we exit. When
- * reincarnated, all objects being carried get dropped at game.oldlc2
- * (presumably the last place prior to being killed) without change
- * of props. The loop runs backwards to assure that the bird is
- * dropped before the cage. (This kluge could be changed once we're
- * sure all references to bird and cage are done by keywords.) The
- * lamp is a special case (it wouldn't do to leave it in the cave).
- * It is turned off and left outside the building (only if he was
- * carrying it, of course). He himself is left inside the building
- * (and heaven help him if he tries to xyzzy back into the cave
- * without the lamp!). game.oldloc is zapped so he can't just
+ * a message (obituaries[n]) which offers reincarnation; if accepted,
+ * this results in message obituaries[0], obituaries[2], etc. The
+ * last time, if he wants another chance, he gets a snide remark as
+ * we exit. When reincarnated, all objects being carried get dropped
+ * at game.oldlc2 (presumably the last place prior to being killed)
+ * without change of props. The loop runs backwards to assure that
+ * the bird is dropped before the cage. (This kluge could be changed
+ * once we're sure all references to bird and cage are done by
+ * keywords.) The lamp is a special case (it wouldn't do to leave it
+ * in the cave). It is turned off and left outside the building (only
+ * if he was carrying it, of course). He himself is left inside the
+ * building (and heaven help him if he tries to xyzzy back into the
+ * cave without the lamp!). game.oldloc is zapped so he can't just
* "retreat". */
static void croak(void)
static bool playermove(token_t verb, int motion)
{
- int scratchloc, k2, kk = tkey[game.loc];
+ int scratchloc, travel_entry = tkey[game.loc];
game.newloc = game.loc;
- if (kk == 0)
+ if (travel_entry == 0)
BUG(LOCATION_HAS_NO_TRAVEL_ENTRIES); // LCOV_EXCL_LINE
if (motion == NUL)
return true;
else if (motion == BACK) {
/* Handle "go back". Look for verb which goes from game.loc to
* game.oldloc, or to game.oldlc2 If game.oldloc has forced-motion.
- * k2 saves entry -> forced loc -> previous loc. */
+ * te_tmp saves entry -> forced loc -> previous loc. */
motion = game.oldloc;
if (FORCED(motion))
motion = game.oldlc2;
game.oldlc2 = game.oldloc;
game.oldloc = game.loc;
- k2 = 0;
- if (motion == game.loc)k2 = FORGOT_PATH;
- if (CNDBIT(game.loc, COND_NOBACK))k2 = TWIST_TURN;
- if (k2 == 0) {
+ 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 (;;) {
- scratchloc = T_DESTINATION(travel[kk]);
+ scratchloc = T_DESTINATION(travel[travel_entry]);
if (scratchloc != motion) {
if (!SPECIAL(scratchloc)) {
if (FORCED(scratchloc) && T_DESTINATION(travel[tkey[scratchloc]]) == motion)
- k2 = kk;
+ te_tmp = travel_entry;
}
- if (!travel[kk].stop) {
- ++kk; /* go to next travel entry for this location */
+ 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 */
- kk = k2;
- if (kk == 0) {
+ travel_entry = te_tmp;
+ if (travel_entry == 0) {
rspeak(NOT_CONNECTED);
return true;
}
}
- motion = travel[kk].motion;
- kk = tkey[game.loc];
+ motion = travel[travel_entry].motion;
+ travel_entry = tkey[game.loc];
break; /* fall through to ordinary travel */
}
} else {
- rspeak(k2);
+ rspeak(spk);
return true;
}
} else if (motion == LOOK) {
game.oldloc = game.loc;
}
- /* Look for a way to fulfil the motion verb passed in - kk indexes
+ /* Look for a way to fulfil the motion verb passed in - travel_entry indexes
* the beginning of the motion entries for here (game.loc). */
for (;;) {
- if (T_TERMINATE(travel[kk]) || travel[kk].motion == motion)
+ if (T_TERMINATE(travel[travel_entry]) || travel[travel_entry].motion == motion)
break;
- if (travel[kk].stop) {
+ if (travel[travel_entry].stop) {
/* FIXME: Magic numbers! */
/* Couldn't find an entry matching the motion word passed
* in. Various messages depending on word given. */
rspeak(spk);
return true;
}
- ++kk;
+ ++travel_entry;
}
/* (ESR) We've found a destination that goes with the motion verb.
do {
for (;;) { /* L12 loop */
for (;;) {
- long cond = T_CONDITION(travel[kk]);
+ long cond = T_CONDITION(travel[travel_entry]);
long arg = MOD(cond, 100);
if (!SPECIAL(cond)) {
/* YAML N and [pct N] conditionals */
/* We arrive here on conditional failure.
* Skip to next non-matching destination */
- long k3 = kk;
+ long te_tmp = travel_entry;
do {
- if (travel[k3].stop)
+ if (travel[te_tmp].stop)
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
- ++k3;
+ ++te_tmp;
} while
- (T_HIGH(travel[kk]) == T_HIGH(travel[k3]));
- kk = k3;
+ (T_HIGH(travel[travel_entry]) == T_HIGH(travel[te_tmp]));
+ travel_entry = te_tmp;
}
/* Found an eligible rule, now execute it */
- game.newloc = T_DESTINATION(travel[kk]);
+ game.newloc = T_DESTINATION(travel[travel_entry]);
if (!SPECIAL(game.newloc))
return true;
* to get it out. Having dropped it, go back and
* pretend he wasn't carrying it after all. */
drop(EMERALD, game.loc);
- k2 = kk;
+ int te_tmp = travel_entry;
do {
- if (travel[k2].stop)
+ if (travel[te_tmp].stop)
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
- ++k2;
+ ++te_tmp;
} while
- (T_HIGH(travel[kk]) == T_HIGH(travel[k2]));
- kk = k2;
+ (T_HIGH(travel[travel_entry]) == T_HIGH(travel[te_tmp]));
+ travel_entry = te_tmp;
continue; /* goto L12 */
case 3:
/* Travel 303. Troll bridge. Must be done only