From 8308afc75cc2c841f161184ad5aa581a56d39869 Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Sat, 25 Feb 2006 00:43:39 +0000 Subject: [PATCH] disappearing scroll trick > * When you read a charging scroll, it "disappears", but when you are > selecting the object to charge, the scroll itself remains in your > inventory listing until you make your selection. --- doc/fixes34.4 | 2 ++ src/read.c | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/fixes34.4 b/doc/fixes34.4 index ae47cf198..b16b1aac2 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -198,6 +198,8 @@ more precise probing/stethoscope feedback when engulfed make baby long worms have lower level than full grown ones use "your kraken" instead of "a kraken" when searching reveals a tame hidden monster +prevent scroll of charging that has already disappeared from showing in the + picklist of things to charge Platform- and/or Interface-Specific Fixes diff --git a/src/read.c b/src/read.c index 2119d6821..922f60b14 100644 --- a/src/read.c +++ b/src/read.c @@ -1154,10 +1154,13 @@ struct obj *sobj; known = TRUE; if (!already_known) pline("This is a charging scroll."); + /* use it up now to prevent if from showing in the + getobj picklist because the "disappears" message + was already delivered */ + useup(sobj); otmp = getobj(all_count, "charge"); - if (!otmp) break; - recharge(otmp, scursed ? -1 : sblessed ? 1 : 0); - break; + if (otmp) recharge(otmp, scursed ? -1 : sblessed ? 1 : 0); + return(1); case SCR_MAGIC_MAPPING: if (level.flags.nommap) { Your("mind is filled with crazy lines!"); -- 2.40.0