more object->dknown handling
Fix a couple of places that set obj->dknown to 0 to deal with some special cases where it should be left at 1. (Other places do that but deal with potions where hardcoded 0 remains appropriate.)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 extern.h $NHDT-Date: 1620861202 2021/05/12 23:13:22 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.970 $ */
|
||||
/* NetHack 3.7 extern.h $NHDT-Date: 1620923916 2021/05/13 16:38:36 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.971 $ */
|
||||
/* Copyright (c) Steve Creps, 1988. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1307,6 +1307,7 @@ extern void replace_object(struct obj *, struct obj *);
|
||||
extern struct obj *unknwn_contnr_contents(struct obj *);
|
||||
extern void bill_dummy_object(struct obj *);
|
||||
extern void costly_alteration(struct obj *, int);
|
||||
extern void clear_dknown(struct obj *);
|
||||
extern void unknow_object(struct obj *);
|
||||
extern struct obj *mksobj(int, boolean, boolean);
|
||||
extern int bcsign(struct obj *);
|
||||
|
||||
20
src/mkobj.c
20
src/mkobj.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 mkobj.c $NHDT-Date: 1620861208 2021/05/12 23:13:28 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.199 $ */
|
||||
/* NetHack 3.7 mkobj.c $NHDT-Date: 1620923920 2021/05/13 16:38:40 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.200 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -706,13 +706,12 @@ costly_alteration(struct obj* obj, int alter_type)
|
||||
|
||||
static const char dknowns[] = { WAND_CLASS, RING_CLASS, POTION_CLASS,
|
||||
SCROLL_CLASS, GEM_CLASS, SPBOOK_CLASS,
|
||||
WEAPON_CLASS, TOOL_CLASS, 0 };
|
||||
WEAPON_CLASS, TOOL_CLASS, VENOM_CLASS, 0 };
|
||||
|
||||
/* some init for a brand new object, or partial re-init when hero loses
|
||||
potentially known info about an object (called when an unseen monster
|
||||
picks up or uses it); moved from invent.c to here for access to dknowns */
|
||||
/* set obj->dknown to 0 for most types of objects, to 1 otherwise;
|
||||
split off from unknow_object() */
|
||||
void
|
||||
unknow_object(struct obj *obj)
|
||||
clear_dknown(struct obj *obj)
|
||||
{
|
||||
obj->dknown = index(dknowns, obj->oclass) ? 0 : 1;
|
||||
if ((obj->otyp >= ELVEN_SHIELD && obj->otyp <= ORCISH_SHIELD)
|
||||
@@ -723,6 +722,15 @@ unknow_object(struct obj *obj)
|
||||
object, globby flag won't be set yet so isn't available to check */
|
||||
if (Is_pudding(obj))
|
||||
obj->dknown = 1;
|
||||
}
|
||||
|
||||
/* some init for a brand new object, or partial re-init when hero loses
|
||||
potentially known info about an object (called when an unseen monster
|
||||
picks up or uses it); moved from invent.c to here for access to dknowns */
|
||||
void
|
||||
unknow_object(struct obj *obj)
|
||||
{
|
||||
clear_dknown(obj); /* obj->dknown = 0; */
|
||||
|
||||
obj->bknown = obj->rknown = 0;
|
||||
obj->cknown = obj->lknown = 0;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 mon.c $NHDT-Date: 1614074654 2021/02/23 10:04:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.370 $ */
|
||||
/* NetHack 3.7 mon.c $NHDT-Date: 1620923921 2021/05/13 16:38:41 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.375 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -663,7 +663,7 @@ make_corpse(register struct monst* mtmp, unsigned int corpseflags)
|
||||
* if the corpse's obj->dknown is 0.
|
||||
*/
|
||||
if (Blind && !sensemon(mtmp))
|
||||
obj->dknown = 0;
|
||||
clear_dknown(obj); /* obj->dknown = 0; */
|
||||
|
||||
stackobj(obj);
|
||||
newsym(x, y);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 mthrowu.c $NHDT-Date: 1620329778 2021/05/06 19:36:18 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.113 $ */
|
||||
/* NetHack 3.7 mthrowu.c $NHDT-Date: 1620923922 2021/05/13 16:38:42 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.114 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Pasi Kallinen, 2016. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -505,7 +505,7 @@ m_throw(
|
||||
|
||||
singleobj->owornmask = 0; /* threw one of multiple weapons in hand? */
|
||||
if (!canseemon(mon))
|
||||
singleobj->dknown = 0;
|
||||
clear_dknown(singleobj); /* singleobj->dknown = 0; */
|
||||
|
||||
if ((singleobj->cursed || singleobj->greased) && (dx || dy) && !rn2(7)) {
|
||||
if (canseemon(mon) && flags.verbose) {
|
||||
|
||||
Reference in New Issue
Block a user