senseself()/canspotself()

Make the names of the macros for handling the hero be similar to those
for monsters (where mis-use of `sensemon()' was the cause of a recently
reported bug).  `senseself()' becomes more restrictive in what it specifies,
and current uses of it are replaced by new `canspotself()'.
This commit is contained in:
nethack.rankin
2005-06-18 04:38:50 +00:00
parent a092740e67
commit 254b521add
3 changed files with 12 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)display.h 3.5 1999/11/30 */
/* SCCS Id: @(#)display.h 3.5 2005/06/21 */
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
/* and Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */
@@ -126,14 +126,17 @@
/*
* canseeself()
* senseself()
* canspotself()
*
* This returns true if the hero can see her/himself.
*
* The u.uswallow check assumes that you can see yourself even if you are
* invisible. If not, then we don't need the check.
* Sensing yourself by touch is treated as seeing yourself, even if
* unable to see. So when blind, being invisible won't affect your
* self-perception, and when swallowed, the enclosing monster touches.
*/
#define canseeself() (Blind || u.uswallow || (!Invisible && !u.uundetected))
#define senseself() (canseeself() || Unblind_telepat || Detect_monsters)
#define senseself() (Unblind_telepat || Detect_monsters)
#define canspotself() (canseeself() || senseself())
/*
* random_monster()

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)display.c 3.5 2003/02/19 */
/* SCCS Id: @(#)display.c 3.5 2005/06/21 */
/* Copyright (c) Dean Luick, with acknowledgements to Kevin Darcy */
/* and Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */
@@ -672,7 +672,7 @@ newsym(x,y)
return;
}
if (x == u.ux && y == u.uy) {
if (senseself()) {
if (canspotself()) {
_map_location(x,y,0); /* map *under* self */
display_self();
} else
@@ -714,7 +714,7 @@ newsym(x,y)
if (x == u.ux && y == u.uy) {
feel_location(u.ux, u.uy); /* forces an update */
if (senseself()) display_self();
if (canspotself()) display_self();
}
else if ((mon = m_at(x,y))
&& ((see_it = (tp_sensemon(mon) || MATCH_WARN_OF_MON(mon)

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)pager.c 3.5 2003/08/13 */
/* SCCS Id: @(#)pager.c 3.5 2005/06/21 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -64,7 +64,7 @@ lookat(x, y, buf, monbuf)
buf[0] = monbuf[0] = 0;
glyph = glyph_at(x,y);
if (u.ux == x && u.uy == y && senseself()) {
if (u.ux == x && u.uy == y && canspotself()) {
char race[QBUFSZ];
/* if not polymorphed, show both the role and the race */