]> granicus.if.org Git - nethack/commitdiff
blindness vs vault guards
authornethack.rankin <nethack.rankin>
Fri, 9 Aug 2002 02:35:30 +0000 (02:35 +0000)
committernethack.rankin <nethack.rankin>
Fri, 9 Aug 2002 02:35:30 +0000 (02:35 +0000)
     I implemented this before seeing <Someone>'s forwarded report.
It makes guards come to vaults when you can't see them, but does
have one odd side-effect:  if the vault has boulders in the way
then you might not be able to follow the guard out.  (Usually you
can alternately search and step in order to successfully follow
him out when unable to see.)

doc/fixes34.1
src/vault.c

index d316a1b786502ef06690035e347e8930e976d0bb..0aec85a9d5c017814435e12424835a54df4fa8b0 100644 (file)
@@ -192,6 +192,7 @@ grammar tid: "The looking glass miss the <monster>."
 fix wishing for "looking glass" and "<color> glass"
 Archeologists suffer same alignment penalty for statue destruction by
        stone_to_flesh as they do by other means of statue destruction
+being unable to see a vault guard doesn't prevent him from arriving
 
 
 Platform- and/or Interface-Specific Fixes
index 63fe7027cb609ebd10f527399903c1f57b94c8cb..89da12273626c3d35ba7b94e972784ba005de716 100644 (file)
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)vault.c    3.4     2002/04/18      */
+/*     SCCS Id: @(#)vault.c    3.4     2002/08/06      */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -234,14 +234,12 @@ fnd:
        EGD(guard)->vroom = vaultroom;
        EGD(guard)->warncnt = 0;
 
-       if(!cansee(guard->mx, guard->my)) {
-               mongone(guard);
-               return;
-       }
-
        reset_faint();                  /* if fainted - wake up */
-       pline("Suddenly one of the Vault's %s enters!",
-             makeplural(g_monnam(guard)));
+       if (canspotmon(guard))
+           pline("Suddenly one of the Vault's %s enters!",
+                 makeplural(g_monnam(guard)));
+       else
+           pline("Someone else has entered the Vault.");
        newsym(guard->mx,guard->my);
        if ((youmonst.m_ap_type == M_AP_OBJECT &&
                youmonst.mappearance == GOLD_PIECE) || u.uundetected) {
@@ -736,7 +734,7 @@ cleanup:
                restfakecorr(grd);
                if(!semi_dead && (in_fcorridor(grd, u.ux, u.uy) ||
                                     cansee(x, y))) {
-                   if (!disappear_msg_seen)
+                   if (!disappear_msg_seen && canspotmon(grd))
                        pline("Suddenly, the %s disappears.", g_monnam(grd));
                    return(1);
                }