R788 - bones corpses shouldn't all be human

u.umonnum was used to create the corpse in a bones file.  However, unless
you're polymorphed and manage to actually die in that form, u.umonnum
refers to a role monster, which all have M2_HUMAN set, so they're all
human.  Even if the role monsters were mutated dynamically when the game
starts, the problem would still exist, just in a different form.
Use urace to determine the corpse type instead.
This commit is contained in:
cohrs
2002-04-24 05:21:20 +00:00
parent b1fe51e80b
commit 93c2b69769
2 changed files with 12 additions and 1 deletions

View File

@@ -646,7 +646,17 @@ die:
u.ugrave_arise = (NON_PM - 1); /* statue instead of corpse */
else if (u.ugrave_arise == NON_PM &&
!(mvitals[u.umonnum].mvflags & G_NOCORPSE)) {
corpse = mk_named_object(CORPSE, &mons[u.umonnum],
int mnum = u.umonnum;
if (!Upolyd) {
/* Base corpse on race when not poly'd since original
* u.umonnum is based on role, and all role monsters
* are human.
*/
mnum = (flags.female && urace.femalenum != NON_PM) ?
urace.femalenum : urace.malenum;
}
corpse = mk_named_object(CORPSE, &mons[mnum],
u.ux, u.uy, plname);
Sprintf(pbuf, "%s, %s%s", plname,
killer_format == NO_KILLER_PREFIX ? "" :