hero location bookkeeping bit

On the first move of the game and the first move after each level
change, the "previous position's coordinates" <u.ux0, u.uy0> had bogus
values:  zero at start, last location on old level otherwise.  They're
never used to undo a level change, so the last location on the old level
isn't interesting.  Set them to match current location, as if you'd just
rested on the new spot.  I'm not aware of any bugs attributable to this.
This commit is contained in:
nethack.rankin
2006-02-25 06:48:52 +00:00
parent 8308afc75c
commit bc4f466652

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)dungeon.c 3.5 1999/10/30 */
/* SCCS Id: @(#)dungeon.c 3.5 2006/02/24 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1093,11 +1093,14 @@ int x, y;
/* ridden steed always shares hero's location */
if (u.usteed) u.usteed->mx = u.ux, u.usteed->my = u.uy;
#endif
/* when changing levels, don't leave old position set with
stale values from previous level */
if (!on_level(&u.uz, &u.uz0)) u.ux0 = u.ux, u.uy0 = u.uy;
}
void
u_on_sstairs() { /* place you on the special staircase */
u_on_sstairs() /* place you on the special staircase */
{
if (sstairs.sx) {
u_on_newpos(sstairs.sx, sstairs.sy);
} else {