Fix: invisible pudding globs

When a pudding was killed by a monster (player-caused deaths were exempt
because of a 'backup' newsym call in xkilled), and the resulting glob
ended up on the pudding's square (whether because there were no adjacent
globs, or because the adjacent glob merged into the new one rather than
vice-versa), the glob wouldn't be drawn onto the map until the squre was
redrawn with ^R or similar.  This was because the early return for globs
in make_corpse skipped the typical newsym call near the end of the
function.

In this commit I just added a newsym call to the glob case in
make_corpse, but adding a newsym call to monkilled as a guard against
similar cases (equivalent to the one in xkilled) seems like a possible
extension.  I wasn't sure if there's a particular reason it's not
included in monkilled, so I didn't mess with it.
This commit is contained in:
Michael Meyer
2022-05-25 13:24:47 -04:00
committed by PatR
parent 8a092aef0e
commit 66c70eb453

View File

@@ -651,9 +651,10 @@ make_corpse(struct monst *mtmp, unsigned int corpseflags)
obj = obj_meld(&obj, &otmp);
}
free_mgivenname(mtmp);
newsym(x, y);
return obj;
default:
default_1:
default_1:
if (g.mvitals[mndx].mvflags & G_NOCORPSE) {
return (struct obj *) 0;
} else {