From fbc790a34d1176c8a4643918c1ad9ddca31b02ae Mon Sep 17 00:00:00 2001 From: PatR Date: Mon, 4 Nov 2019 09:14:18 -0800 Subject: [PATCH] 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. --- doc/fixes36.3 | 5 ++++- src/potion.c | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/fixes36.3 b/doc/fixes36.3 index 12490115f..c2faaf917 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -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 diff --git a/src/potion.c b/src/potion.c index 728fdc9e4..d366a1196 100644 --- a/src/potion.c +++ b/src/potion.c @@ -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 */