mon->mhp manipulation
I've hunted for other instances where monster hit points were set to zero or less without calling the routine that kills off the monster (see recent mon_unslime() vs zhitm()) and didn't find any for mhp subtraction. I haven't checked for direct assignment yet. For a while I thought I'd found several cases where a monster was intended to be killed but got left with positive hit points, but it turned out that lifesaved_monster(), of all places, was setting them to zero. I've moved that to its callers so that it isn't so well hidden. And changed several ''if ((mon->mhp -= dmg) <= 0)'' into separate subtraction and 'if' just so the mhp manipulation is a bit more visible. I think the only actual change here is the message for monster being killed by lava, where glass golems now melt instead of burn.
This commit is contained in:
@@ -3432,7 +3432,8 @@ int dx, dy;
|
||||
return (struct monst *) 0;
|
||||
}
|
||||
|
||||
/* used by buzz(); also used by munslime(muse.c); returns damage to mon */
|
||||
/* used by buzz(); also used by munslime(muse.c); returns damage applied
|
||||
to mon; note: caller is responsible for killing mon if damage is fatal */
|
||||
int
|
||||
zhitm(mon, type, nd, ootmp)
|
||||
register struct monst *mon;
|
||||
|
||||
Reference in New Issue
Block a user