From: nethack.rankin Date: Tue, 3 Aug 2004 02:37:44 +0000 (+0000) Subject: fix "dropping Medusa's corpse down the stairs" X-Git-Tag: MOVE2GIT~1434 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fa345979d4329bbf3337dd412c154996ba70cf25;p=nethack fix "dropping Medusa's corpse down the stairs" User reported the following incorrect feedback: You drop Medusa's corpse. corpse falls down the stairs. and apparently thought that the problem was a glitch in the middle of the sentence; the actual problem is that the second sentence lacks its start. This fix isn't perfect. You'll now get Medusa's corpse falls down the stairs. for the second sentence, but The Oracle corpse falls down the stairs. when dealing with a unique monster who doesn't have a personal name. Either form seems acceptable to me, but mixing them appears inconsistent. Probably all the uses of corpse_xname() (and its callers back up the chain cxname(), aobjnam(), yobjnam()) need to be reviewed for usage. I don't have the energy for that. --- diff --git a/doc/fixes34.4 b/doc/fixes34.4 index df5704ff6..53409069a 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -43,6 +43,7 @@ shopkeeper removal of trap from shop doorway yields an open door instead of a closed one if an intact open door is present guarantee that hostile djinn released from bottles really are hostile handle lava when removing or losing water walking boots +fix incomplete sentence occuring when unique monster's corpse fell down stairs Platform- and/or Interface-Specific Fixes diff --git a/src/dokick.c b/src/dokick.c index 5f81348f6..d40df0543 100644 --- a/src/dokick.c +++ b/src/dokick.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)dokick.c 3.4 2004/06/12 */ +/* SCCS Id: @(#)dokick.c 3.4 2004/08/02 */ /* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1470,7 +1470,7 @@ long num; Sprintf(obuf, "%s%s", (otmp->otyp == CORPSE && type_is_pname(&mons[otmp->corpsenm])) ? "" : "The ", - xname(otmp)); + cxname(otmp)); if(num) { /* means: other objects are impacted */ Sprintf(eos(obuf), " %s %s object%s", diff --git a/src/objnam.c b/src/objnam.c index 967d0ccec..ac6471014 100644 --- a/src/objnam.c +++ b/src/objnam.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)objnam.c 3.4 2003/12/22 */ +/* SCCS Id: @(#)objnam.c 3.4 2004/08/02 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -812,8 +812,12 @@ struct obj *otmp; boolean ignore_oquan; /* to force singular */ { char *nambuf = nextobuf(); + int mndx = otmp->corpsenm; + const char *mname = (mndx != NON_PM) ? mons[mndx].mname : + (const char *)"thing"; /* shouldn't happen */ - Sprintf(nambuf, "%s corpse", mons[otmp->corpsenm].mname); + if (type_is_pname(&mons[mndx])) mname = s_suffix(mname); + Sprintf(nambuf, "%s corpse", mname); if (ignore_oquan || otmp->quan < 2) return nambuf;