corpse_xname overhaul (trunk only)

Extend the capabilities of corpse_xname() so that various callers can
be simplified.  It can how handle an article prefix, effectively turning it
into corpse_doname() (not quite; still need doname() to see a count when
quantity is more than one, or to see bless/curse state).  It can also handle
inclusion of adjectives like "partly eaten" or "bite-covered".  For unique
monsters those come out in the form
  the Chromatic Dragon's partly eaten corpse
instead of the old
  partly eaten Chromatic Dragon corpse
[so wishing probably needs to be taught about potentially finding a monster
name before assorted adjectives such as blessed; also, name_to_mon() needs
to learn how to cope with the possessive suffix].

     A sizeable chunk of this patch deals with consolidating some of the
redundant "petrified by a cockatrice corpse" handling.  It may be possible
to consolidate all remaining instances together since they're quite similar,
but I didn't think about that until just now and I want to get this patch
over with.
This commit is contained in:
nethack.rankin
2005-12-30 06:08:20 +00:00
parent bd3a5466dd
commit 40dd607233
13 changed files with 208 additions and 178 deletions

View File

@@ -91,11 +91,16 @@ int shotlimit;
return(0);
}
u_wipe_engr(2);
if (!uarmg && !Stone_resistance && (obj->otyp == CORPSE &&
touch_petrifies(&mons[obj->corpsenm]))) {
You("throw the %s corpse with your bare %s.",
mons[obj->corpsenm].mname, body_part(HAND));
Sprintf(killer.name, "%s corpse", an(mons[obj->corpsenm].mname));
if (!uarmg && obj->otyp == CORPSE &&
touch_petrifies(&mons[obj->corpsenm]) &&
!Stone_resistance) {
You("throw %s with your bare %s.",
corpse_xname(obj, (const char *)0, CXN_PFX_THE),
/* throwing with one hand, but pluralize since the
expression "with your bare hands" sounds better */
makeplural(body_part(HAND)));
Sprintf(killer.name, "throwing %s bare-handed",
killer_xname(obj));
instapetrify(killer.name);
}
if (welded(obj)) {