k2 is dead
This commit is contained in:
parent
d48504f22f
commit
97f307c912
1 changed files with 15 additions and 14 deletions
29
main.c
29
main.c
|
@ -521,7 +521,7 @@ static void croak(void)
|
||||||
|
|
||||||
static bool playermove(token_t verb, int motion)
|
static bool playermove(token_t verb, int motion)
|
||||||
{
|
{
|
||||||
int scratchloc, k2, travel_entry = tkey[game.loc];
|
int scratchloc, travel_entry = tkey[game.loc];
|
||||||
game.newloc = game.loc;
|
game.newloc = game.loc;
|
||||||
if (travel_entry == 0)
|
if (travel_entry == 0)
|
||||||
BUG(LOCATION_HAS_NO_TRAVEL_ENTRIES); // LCOV_EXCL_LINE
|
BUG(LOCATION_HAS_NO_TRAVEL_ENTRIES); // LCOV_EXCL_LINE
|
||||||
|
@ -530,7 +530,7 @@ static bool playermove(token_t verb, int motion)
|
||||||
else if (motion == BACK) {
|
else if (motion == BACK) {
|
||||||
/* Handle "go back". Look for verb which goes from game.loc to
|
/* Handle "go back". Look for verb which goes from game.loc to
|
||||||
* game.oldloc, or to game.oldlc2 If game.oldloc has forced-motion.
|
* 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;
|
motion = game.oldloc;
|
||||||
if (FORCED(motion))
|
if (FORCED(motion))
|
||||||
motion = game.oldlc2;
|
motion = game.oldlc2;
|
||||||
|
@ -542,19 +542,20 @@ static bool playermove(token_t verb, int motion)
|
||||||
if (CNDBIT(game.loc, COND_NOBACK))
|
if (CNDBIT(game.loc, COND_NOBACK))
|
||||||
spk = TWIST_TURN;
|
spk = TWIST_TURN;
|
||||||
if (spk == 0) {
|
if (spk == 0) {
|
||||||
|
int te_tmp = 0;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
scratchloc = T_DESTINATION(travel[travel_entry]);
|
scratchloc = T_DESTINATION(travel[travel_entry]);
|
||||||
if (scratchloc != motion) {
|
if (scratchloc != motion) {
|
||||||
if (!SPECIAL(scratchloc)) {
|
if (!SPECIAL(scratchloc)) {
|
||||||
if (FORCED(scratchloc) && T_DESTINATION(travel[tkey[scratchloc]]) == motion)
|
if (FORCED(scratchloc) && T_DESTINATION(travel[tkey[scratchloc]]) == motion)
|
||||||
k2 = travel_entry;
|
te_tmp = travel_entry;
|
||||||
}
|
}
|
||||||
if (!travel[travel_entry].stop) {
|
if (!travel[travel_entry].stop) {
|
||||||
++travel_entry; /* go to next travel entry for this location */
|
++travel_entry; /* go to next travel entry for this location */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* we've reached the end of travel entries for game.loc */
|
/* we've reached the end of travel entries for game.loc */
|
||||||
travel_entry = k2;
|
travel_entry = te_tmp;
|
||||||
if (travel_entry == 0) {
|
if (travel_entry == 0) {
|
||||||
rspeak(NOT_CONNECTED);
|
rspeak(NOT_CONNECTED);
|
||||||
return true;
|
return true;
|
||||||
|
@ -636,14 +637,14 @@ static bool playermove(token_t verb, int motion)
|
||||||
|
|
||||||
/* We arrive here on conditional failure.
|
/* We arrive here on conditional failure.
|
||||||
* Skip to next non-matching destination */
|
* Skip to next non-matching destination */
|
||||||
long k3 = travel_entry;
|
long te_tmp = travel_entry;
|
||||||
do {
|
do {
|
||||||
if (travel[k3].stop)
|
if (travel[te_tmp].stop)
|
||||||
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
|
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
|
||||||
++k3;
|
++te_tmp;
|
||||||
} while
|
} while
|
||||||
(T_HIGH(travel[travel_entry]) == T_HIGH(travel[k3]));
|
(T_HIGH(travel[travel_entry]) == T_HIGH(travel[te_tmp]));
|
||||||
travel_entry = k3;
|
travel_entry = te_tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Found an eligible rule, now execute it */
|
/* Found an eligible rule, now execute it */
|
||||||
|
@ -678,14 +679,14 @@ static bool playermove(token_t verb, int motion)
|
||||||
* to get it out. Having dropped it, go back and
|
* to get it out. Having dropped it, go back and
|
||||||
* pretend he wasn't carrying it after all. */
|
* pretend he wasn't carrying it after all. */
|
||||||
drop(EMERALD, game.loc);
|
drop(EMERALD, game.loc);
|
||||||
k2 = travel_entry;
|
int te_tmp = travel_entry;
|
||||||
do {
|
do {
|
||||||
if (travel[k2].stop)
|
if (travel[te_tmp].stop)
|
||||||
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
|
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
|
||||||
++k2;
|
++te_tmp;
|
||||||
} while
|
} while
|
||||||
(T_HIGH(travel[travel_entry]) == T_HIGH(travel[k2]));
|
(T_HIGH(travel[travel_entry]) == T_HIGH(travel[te_tmp]));
|
||||||
travel_entry = k2;
|
travel_entry = te_tmp;
|
||||||
continue; /* goto L12 */
|
continue; /* goto L12 */
|
||||||
case 3:
|
case 3:
|
||||||
/* Travel 303. Troll bridge. Must be done only
|
/* Travel 303. Troll bridge. Must be done only
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue