Repair plover teleport and add a test for it.

This commit is contained in:
Eric S. Raymond 2017-06-18 15:05:17 -04:00
parent 2b89225ecd
commit 67bf87eda0
4 changed files with 14 additions and 11 deletions

9
main.c
View file

@ -623,6 +623,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
/* else fall through */
} else if (game.prop[motion] != game.newloc / 100 - 3)
break;
L12:
do {
if (TRAVEL[kk] < 0)BUG(25);
++kk;
@ -656,13 +657,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
* 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

View file

@ -117,9 +117,10 @@ ways:
and the choice to refrain will make forward translation into future
languages easier.
* There are a few gotos left that resist restructuring; all of these
* There are a few gotos left that resist restructuring; all but of these
are in the principal command interpreter function implementing its
state machine.
state machine. the remaining one is a truly mysterious artficat in
the player-movement code.
* Linked lists (for objects at a location) are implemented using an array
of link indices. This is a surviving FORTRANism that is quite unlike

View file

@ -1158,8 +1158,14 @@ OK
You are currently holding the following:
Egg-sized emerald
> plover
You scored 169 out of a possible 430, using 185 turns.
>>Foof!<<
It is now pitch dark. If you proceed you will likely fall into a pit.
You scored 169 out of a possible 430, using 186 turns.
You have achieved the rating: "Experienced Adventurer".

View file

@ -1,4 +1,4 @@
## Test access to emerald
## Test access to emerald room and plover teleport
# Based on walkthrough at http://www.ecsoftwareconsulting.com/node/56
n
seed 1495951709
@ -188,3 +188,4 @@ drop lamp
e
take emerald
inven
plover