description of stair destination for level 1 up

Having the opposite side of the stairs up from level 1 be unknown is
weird because the hero conceptually just came down those stairs at
the start of the game.  But it's tricky because remote destination
varies depending on whether the Amulet is being carried.  This gives
an accurate description of where the stairs lead (if you step on
them with the 'mention_decor' option On, or use the ':' command when
already on them).

|"There is a staircase up out of the dungeon here."
or
|"There is a branch staircase up to the Elemental Planes here."

It gives away a little information when carrying the Amulet, but not
much and anyone who gets that far deserves a break.
This commit is contained in:
PatR
2021-08-05 13:46:20 -07:00
parent 91ee7f28ee
commit 8a6c48034f
2 changed files with 29 additions and 4 deletions

View File

@@ -836,6 +836,7 @@ makelevel(void)
{
register struct mkroom *croom;
branch *branchp;
stairway *prevstairs;
int room_threshold;
register s_level *slev = Is_special(&u.uz);
int i;
@@ -950,9 +951,17 @@ makelevel(void)
do_mkroom(COCKNEST);
skip0:
prevstairs = g.stairs; /* used to test for place_branch() success */
/* Place multi-dungeon branch. */
place_branch(branchp, 0, 0);
/* for main dungeon level 1, the stairs up where the hero starts
are branch stairs; treat them as if hero had just come down
them by marking them as having been traversed; most recently
created stairway is held in 'g.stairs' */
if (u.uz.dnum == 0 && u.uz.dlevel == 1 && g.stairs != prevstairs)
g.stairs->u_traversed = TRUE;
/* for each room: put things inside */
for (croom = g.rooms; croom->hx > 0; croom++) {
fill_ordinary_room(croom);
@@ -1252,7 +1261,7 @@ place_branch(branch *br, /* branch to place */
boolean goes_up = on_level(&br->end1, &u.uz) ? br->end1_up
: !br->end1_up;
stairway_add(x,y, goes_up, FALSE, dest);
stairway_add(x, y, goes_up, FALSE, dest);
levl[x][y].ladder = goes_up ? LA_UP : LA_DOWN;
levl[x][y].typ = STAIRS;
}