fix U382 - missing map display update

> Receiving Excalibur from a fountain while blind doesn't update the
> display (i.e. the missing fountain) immediately.

     Various other topology changes had the same problem.  The display
was only being updated if the hero was invisible on the assumption that
it wouldn't matter otherwise, but a blind character who moved off the
affected location would still have the old map info (fountain, trap, &c)
shown--until he walked back onto that spot or searched next to it or
regained sight--even though the player is told about the map change as
it happens.
This commit is contained in:
nethack.rankin
2003-03-24 08:58:45 +00:00
parent cff0fb7870
commit 213bd793fd
6 changed files with 14 additions and 13 deletions

View File

@@ -28,6 +28,7 @@ charge correctly when breaking multiple objects with the same zap, avoids
a dopay: not to shopkeeper impossible
clean up funny lighting on the healer locate level
allow all tame monsters that eat to consider food thrown to them
the screen display wasn't always up to date after map topology changes
Platform- and/or Interface-Specific Fixes

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)dig.c 3.4 2003/01/29 */
/* SCCS Id: @(#)dig.c 3.4 2003/03/23 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1185,7 +1185,7 @@ zap_dig()
(void)xname(otmp); /* set dknown, maybe bknown */
stackobj(otmp);
}
if (Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
} else {
watch_dig((struct monst *)0, u.ux, u.uy, TRUE);
(void) dighole(FALSE);

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)fountain.c 3.4 2002/09/08 */
/* SCCS Id: @(#)fountain.c 3.4 2003/03/23 */
/* Copyright Scott R. Turner, srt@ucla, 10/27/86 */
/* NetHack may be freely redistributed. See license for details. */
@@ -386,7 +386,7 @@ register struct obj *obj;
update_inventory();
levl[u.ux][u.uy].typ = ROOM;
levl[u.ux][u.uy].looted = 0;
if(Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
level.flags.nfountains--;
if(in_town(u.ux, u.uy))
(void) angry_guards(FALSE);

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)pickup.c 3.4 2003/01/08 */
/* SCCS Id: @(#)pickup.c 3.4 2003/03/23 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1306,7 +1306,7 @@ struct obj *otmp;
}
if (otmp->no_charge) /* only applies to objects outside invent */
otmp->no_charge = 0;
if (Invisible) newsym(otmp->ox, otmp->oy);
newsym(otmp->ox, otmp->oy);
return addinv(otmp); /* might merge it with other objects */
}

View File

@@ -849,11 +849,11 @@ dospinweb()
case SPIKED_PIT: You("spin a web, covering up the pit.");
deltrap(ttmp);
bury_objs(u.ux, u.uy);
if (Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
return(1);
case SQKY_BOARD: pline_The("squeaky board is muffled.");
deltrap(ttmp);
if (Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
return(1);
case TELEP_TRAP:
case LEVEL_TELEP:
@@ -867,12 +867,12 @@ dospinweb()
You("web over the %s.",
(ttmp->ttyp == TRAPDOOR) ? "trap door" : "hole");
deltrap(ttmp);
if (Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
return 1;
case ROLLING_BOULDER_TRAP:
You("spin a web, jamming the trigger.");
deltrap(ttmp);
if (Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
return(1);
case ARROW_TRAP:
case DART_TRAP:
@@ -897,7 +897,7 @@ dospinweb()
ttmp->tseen = 1;
ttmp->madeby_u = 1;
}
if (Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
return(1);
}

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)pray.c 3.4 2003/03/10 */
/* SCCS Id: @(#)pray.c 3.4 2003/03/23 */
/* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1195,7 +1195,7 @@ dosacrifice()
an(hcolor(NH_BLACK)));
levl[u.ux][u.uy].typ = ROOM;
levl[u.ux][u.uy].altarmask = 0;
if(Invisible) newsym(u.ux, u.uy);
newsym(u.ux, u.uy);
angry_priest();
demonless_msg = "cloud dissipates";
} else {