becoming green slime or mimicking gold violates "never changed form" conduct
when a monster grew into a higher form which had previously been genocided,
the message explaining its fate was only given if it was sensed via ESP
+hero could still see for brief period after being blinded by potion vapors
Platform- and/or Interface-Specific Fixes
if (u_could_see ^ can_see_now) { /* one or the other but not both */
context.botl = 1;
vision_full_recalc = 1; /* blindness just got toggled */
+ /* this vision recalculation used to be deferred until
+ moveloop(), but that made it possible for vision
+ irregularities to occur (cited case was force bolt
+ hitting adjacent potion of blindness and then a
+ secret door; hero was blinded by vapors but then
+ got the message "a door appears in the wall") */
+ vision_recalc(0);
if (Blind_telepat || Infravision) see_monsters();
}
}
-/* SCCS Id: @(#)vision.c 3.5 1999/02/18 */
+/* SCCS Id: @(#)vision.c 3.5 2005/06/15 */
/* Copyright (c) Dean Luick, with acknowledgements to Dave Cohrs, 1990. */
/* NetHack may be freely redistributed. See license for details. */
* + Right before something is printed. [pline()]
* + Right before we do a vision based operation. [do_clear_area()]
* + screen redraw, so we can renew all positions in sight. [docrt()]
+ * + When toggling temporary blindness, in case additional events
+ * impacted by vision occur during the same move [make_blinded()]
*
* Control flag = 1. An adjacent vision recalculation. The hero has moved
* one square. Knowing this, it might be possible to optimize the vision