From: PatR Date: Fri, 9 Dec 2016 00:39:55 +0000 (-0800) Subject: fix #H4706 - non-zero hit points for poison death X-Git-Tag: NetHack-3.6.1_RC01~546 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b725218bb071a2ba057fe3d53917cc196cd3ddc;p=nethack 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. --- diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 9fd1a03a9..28aa198ac 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -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 diff --git a/src/attrib.c b/src/attrib.c index bdb1ff1f1..c87afb683 100644 --- a/src/attrib.c +++ b/src/attrib.c @@ -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 */ diff --git a/src/end.c b/src/end.c index d097292fb..08141258f 100644 --- a/src/end.c +++ b/src/end.c @@ -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;