dipping into holy/unholy water while blind

Something I realized while following up a newsgroup post.  If you
knew an item's bless/curse state and dipped it into water while
blind, the bknown flag stayed set and you learned the item's new
bless/curse state without seeing any "glows blue/black/&c" feedback.
Clear the flag unless you know that the potion being dipped into is
water (or is clear if not water has not been discovered) and also
know the water potion's own bless/curse state.
This commit is contained in:
PatR
2019-11-04 09:14:18 -08:00
parent efbef0f22c
commit fbc790a34d
2 changed files with 14 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.155 $ $NHDT-Date: 1572833562 2019/11/04 02:12:42 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.157 $ $NHDT-Date: 1572887643 2019/11/04 17:14:03 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -214,6 +214,9 @@ fix a leashed pet polymorphed into a long worm staying leashed
prevent leashing unsolid monsters and monsters with no extremities
playing musical instruments gave feedback which ignored deafness
some other deafness-related message corrections
when dipping into holy/unholy water while blind (where the glow message is
suppressed), clear dipped item's bknown flag unless water potion's
bless/curse state is known
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 potion.c $NHDT-Date: 1570235292 2019/10/05 00:28:12 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.163 $ */
/* NetHack 3.6 potion.c $NHDT-Date: 1572887644 2019/11/04 17:14:04 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.164 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1268,6 +1268,15 @@ const char *objphrase; /* "Your widget glows" or "Steed's saddle glows" */
pline("%s %s.", objphrase, glowcolor);
iflags.last_msg = PLNMSG_OBJ_GLOWS;
targobj->bknown = !Hallucination;
} else {
/* didn't see what happened: forget the BUC state if that was
known unless the bless/curse state of the water is known;
without this, hero would know the new state even without
seeing the glow; priest[ess] will immediately relearn it */
if (!potion->bknown || !potion->dknown)
targobj->bknown = 0;
/* [should the bknown+dknown exception require that water
be discovered or at least named?] */
}
/* potions of water are the only shop goods whose price depends
on their curse/bless state */