fix #H4706 - non-zero hit points for poison death

For "the poison was deadly" against hero, hit points were set to -1
(which gets displayed as 0 when shown) but the status lines weren't
being updated, so stale positive HP value was visible during final
disclosure.
This commit is contained in:
PatR
2016-12-08 16:39:55 -08:00
parent 66a0c98954
commit 9b725218bb
3 changed files with 15 additions and 0 deletions

View File

@@ -360,6 +360,8 @@ Elbereth now erodes based on attacks by the player, not monsters scared
novels are made of paper, not gold
movement speeds are made less predictable by using random rounding, rather
than via adding a random offset
some death by the-poison-was-deadly situations left stale non-zero HP shown
on the status line during final disclosure
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository

View File

@@ -272,6 +272,7 @@ boolean thrown_weapon; /* thrown weapons are less deadly */
if (i == 0 && typ != A_CHA) {
/* instant kill */
u.uhp = -1;
context.botl = TRUE;
pline_The("poison was deadly...");
} else if (i > 5) {
/* HP damage; more likely--but less severe--with missiles */

View File

@@ -922,6 +922,18 @@ int how;
return;
}
}
if (program_state.panicking
#ifdef HANGUPHANDLING
|| program_state.done_hup
#endif
) {
/* skip status update if panicking or disconnected */
context.botl = context.botlx = FALSE;
} else {
/* otherwise force full status update */
context.botlx = TRUE;
bot();
}
if (how == ASCENDED || (!killer.name[0] && how == GENOCIDED))
killer.format = NO_KILLER_PREFIX;