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.
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
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 */
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;