From: PatR Date: Tue, 15 Jun 2021 21:13:55 +0000 (-0700) Subject: fix obj_pmname() fix X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7088f6a8466a39b865c9f4de70b3388cec1b80bb;p=nethack fix obj_pmname() fix The omonst 'data' pointer is always Null so taking mons[].pmname from saved traits would be skipped all the time. --- diff --git a/src/do_name.c b/src/do_name.c index d84dcef10..701c1bfe7 100644 --- a/src/do_name.c +++ b/src/do_name.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 do_name.c $NHDT-Date: 1622363509 2021/05/30 08:31:49 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.202 $ */ +/* NetHack 3.7 do_name.c $NHDT-Date: 1623791632 2021/06/15 21:13:52 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.206 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Pasi Kallinen, 2018. */ /* NetHack may be freely redistributed. See license for details. */ @@ -2098,8 +2098,13 @@ mon_pmname(struct monst *mon) const char * obj_pmname(struct obj *obj) { - if (has_omonst(obj) && OMONST(obj)->data) - return mon_pmname(OMONST(obj)); + if (has_omonst(obj)) { + struct monst *m = OMONST(obj); + + /* obj->oextra->omonst->data is Null but ...->mnum is set */ + if (m->mnum >= LOW_PM) + return pmname(&mons[m->mnum], m->female ? FEMALE : MALE); + } if ((obj->otyp == CORPSE || obj->otyp == STATUE || obj->otyp == FIGURINE) && obj->corpsenm >= LOW_PM) {