confused blessed scroll of remove curse on itself

Noticed when testing the set_bknown patch earlier: something updated
the persistent inventory window while scroll processing was in the
midst of traversing invent and it showed the scroll I'd just read
change from known blessed to bless/curse state not known.  The scroll
should really be removed from inventory because player is told that it
has disappeared, but unlike charging (which does do that so that it is
gone when selecting an item to charge), remove curse isn't auto-IDed
and the code to ask the player to call an unIDed item something only
kicks in when it's still in inventory.  Preventing the scroll in use
from having its bknown flag cleared should be good enough; it won't
have disappeared yet but at least it won't be visibly changing.
This commit is contained in:
PatR
2019-06-04 13:18:21 -07:00
parent 093e7c31e4
commit 25f1cc38e9
2 changed files with 8 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.36 $ $NHDT-Date: 1559675614 2019/06/04 19:13:34 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.37 $ $NHDT-Date: 1559679496 2019/06/04 20:18:16 $
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,
@@ -48,6 +48,8 @@ various cases where objects had their bless/curse state become known weren't
curse but there were lots of other situations with the same issue)
similar perm_invent issue when lock state known and/or contents known become
set for carried container
blessed scroll of remove curse read while confused might be shown to operate
on itself by perm_invent after player is told that it has disappeared
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 read.c $NHDT-Date: 1546465285 2019/01/02 21:41:25 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.164 $ */
/* NetHack 3.6 read.c $NHDT-Date: 1559679496 2019/06/04 20:18:16 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.165 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1285,6 +1285,10 @@ struct obj *sobj; /* scroll, or fake spellbook object for scroll-like spell */
/* gold isn't subject to cursing and blessing */
if (obj->oclass == COIN_CLASS)
continue;
/* hide current scroll from itself so that perm_invent won't
show known blessed scroll losing bknown when confused */
if (obj == sobj && obj->quan == 1L)
continue;
wornmask = (obj->owornmask & ~(W_BALL | W_ART | W_ARTI));
if (wornmask && !sblessed) {
/* handle a couple of special cases; we don't