Capture wonkyness of extinguishing urn

This commit is contained in:
NHOrus 2017-07-02 10:50:07 +03:00 committed by Eric S. Raymond
parent 664b4cf4d7
commit a5478639b6
6 changed files with 33 additions and 23 deletions

View file

@ -888,7 +888,7 @@ static int pour(token_t verb, token_t obj)
game.prop[PLANT2] = game.prop[PLANT]; game.prop[PLANT2] = game.prop[PLANT];
return GO_MOVE; return GO_MOVE;
} else { } else {
state_change(DOOR, (obj == OIL) ? DOOR_UNRUSTED: DOOR_RUSTED); state_change(DOOR, (obj == OIL) ? DOOR_UNRUSTED : DOOR_RUSTED);
return GO_CLEAROBJ; return GO_CLEAROBJ;
} }
} }

40
main.c
View file

@ -378,26 +378,26 @@ static bool dwarfmove(void)
game.newloc = travel[kk].dest; game.newloc = travel[kk].dest;
/* Have we avoided a dwarf encounter? */ /* Have we avoided a dwarf encounter? */
if (SPECIAL(game.newloc)) if (SPECIAL(game.newloc))
continue; continue;
else if (!INDEEP(game.newloc)) else if (!INDEEP(game.newloc))
continue; continue;
else if (game.newloc == game.odloc[i]) else if (game.newloc == game.odloc[i])
continue; continue;
else if (j > 1 && game.newloc == tk[j - 1]) else if (j > 1 && game.newloc == tk[j - 1])
continue; continue;
else if (j >= DIM(tk) - 1) else if (j >= DIM(tk) - 1)
continue; continue;
else if (game.newloc == game.dloc[i]) else if (game.newloc == game.dloc[i])
continue; continue;
else if (FORCED(game.newloc)) else if (FORCED(game.newloc))
continue; continue;
else if (i == PIRATE && CNDBIT(game.newloc, COND_NOARRR)) else if (i == PIRATE && CNDBIT(game.newloc, COND_NOARRR))
continue; continue;
else if (travel[kk].nodwarves) else if (travel[kk].nodwarves)
continue; continue;
tk[j++] = game.newloc; tk[j++] = game.newloc;
} while } while
(!travel[kk++].stop); (!travel[kk++].stop);
tk[j] = game.odloc[i]; tk[j] = game.odloc[i];
if (j >= 2) if (j >= 2)
--j; --j;
@ -497,7 +497,7 @@ static bool traveleq(long a, long b)
/* Are two travel entries equal for purposes of skip after failed condition? */ /* Are two travel entries equal for purposes of skip after failed condition? */
{ {
return (travel[a].cond == travel[b].cond) return (travel[a].cond == travel[b].cond)
&& (travel[a].dest == travel[b].dest); && (travel[a].dest == travel[b].dest);
} }
/* Given the current location in "game.loc", and a motion verb number in /* Given the current location in "game.loc", and a motion verb number in
@ -637,7 +637,7 @@ static bool playermove( int motion)
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
++te_tmp; ++te_tmp;
} while } while
(traveleq(travel_entry, te_tmp)); (traveleq(travel_entry, te_tmp));
travel_entry = te_tmp; travel_entry = te_tmp;
} }
@ -679,7 +679,7 @@ static bool playermove( int motion)
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
++te_tmp; ++te_tmp;
} while } while
(traveleq(travel_entry, te_tmp)); (traveleq(travel_entry, te_tmp));
travel_entry = te_tmp; travel_entry = te_tmp;
continue; /* goto L12 */ continue; /* goto L12 */
case 3: case 3:

View file

@ -2009,13 +2009,17 @@ I'm afraid I don't understand.
The urn is now dark. The urn is now dark.
> extinguish urn
The urn is now dark.
> fly > fly
If you mean to use the persian rug, it does not appear inclined to If you mean to use the persian rug, it does not appear inclined to
cooperate. cooperate.
You scored 267 out of a possible 430, using 340 turns. You scored 267 out of a possible 430, using 341 turns.
You have reached "Junior Master" status. You have reached "Junior Master" status.

View file

@ -343,4 +343,5 @@ fill urn
read urn read urn
extinguish extinguish
extinguish urn extinguish urn
extinguish urn
fly fly

View file

@ -1981,8 +1981,12 @@ A small urn is embedded in the rock.
There is nothing here with which to fill it. There is nothing here with which to fill it.
> extinguish urn
You scored 267 out of a possible 430, using 332 turns. The urn is now dark.
You scored 267 out of a possible 430, using 333 turns.
You have reached "Junior Master" status. You have reached "Junior Master" status.

View file

@ -334,3 +334,4 @@ n
drop bottle drop bottle
n n
fill urn fill urn
extinguish urn