fix "spellbook of novel" on discoveries list

Avoid "spellbook of novel" after novel becomes discovered.  Now it will
just be "novel".  Prior to discovery, it might be on the list as "book
called whatever" if the player assigns a type name.

Also, make novel become discovered after reading one instead of only via
object identification.  It already shows up as "novel" in inventory, but
changing its definition to designate it as not-interesting-to-discover
feels disrespectful to the tribute.
This commit is contained in:
PatR
2015-12-19 20:07:51 -08:00
parent f87fd929e5
commit 0d2a4afd81
3 changed files with 11 additions and 3 deletions

View File

@@ -45,6 +45,8 @@ make MAXPLAYERS option in sysconf accept 0 value
avoid hearing yelps when you are deaf
make corpse visible if stethoscope told you about it being there
sceptre of might database entry word change
avoid "spellbook of novel" on discoveries list after object ID of novel
add novel to discoveries list after reading one
Platform- and/or Interface-Specific Fixes

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 objnam.c $NHDT-Date: 1450306207 2015/12/16 22:50:07 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.158 $ */
/* NetHack 3.6 objnam.c $NHDT-Date: 1450584419 2015/12/20 04:06:59 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.159 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -120,7 +120,12 @@ register int otyp;
Strcpy(buf, "wand");
break;
case SPBOOK_CLASS:
Strcpy(buf, "spellbook");
if (otyp != SPE_NOVEL) {
Strcpy(buf, "spellbook");
} else {
Strcpy(buf, !nn ? "book" : "novel");
nn = 0;
}
break;
case RING_CLASS:
Strcpy(buf, "ring");

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 spell.c $NHDT-Date: 1450306224 2015/12/16 22:50:24 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.74 $ */
/* NetHack 3.6 spell.c $NHDT-Date: 1450584420 2015/12/20 04:07:00 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.75 $ */
/* Copyright (c) M. Stephenson 1988 */
/* NetHack may be freely redistributed. See license for details. */
@@ -474,6 +474,7 @@ register struct obj *spellbook;
spellbook->o_id)) {
u.uconduct.literate++;
check_unpaid(spellbook);
makeknown(booktype);
if (!u.uevent.read_tribute) {
/* give bonus of 20 xp and 4*20+0 pts */
more_experienced(20, 0);