From: nhmall Date: Thu, 6 Sep 2018 00:21:59 +0000 (-0400) Subject: stop tty hitpointbar from jumping to 100% health at zero hit points X-Git-Tag: NetHack-3.6.2_Released~201^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ec43a80e9e05235cf8fefa506f0195387c6a000c;p=nethack stop tty hitpointbar from jumping to 100% health at zero hit points --- diff --git a/doc/fixes36.2 b/doc/fixes36.2 index c200e88f3..82c475d0d 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -146,6 +146,7 @@ windows: Added ntassert() mechanism for Windows based port use tty: significant optimizations for performance and per field rendering tty: use WC2_FLUSH_STATUS to buffer changes until BL_FLUSH is received tty: support BL_RESET in status_update to force an update to all status fields +tty: stop hitpointbar from jumping to 100% health at zero hit points unix: Makefile.src and Makefile.utl inadvertently relied on a 'gnu make' extension when using $(VERBOSEMAKE) to reduce build-time feedback; replace with $(QUIETCC) which operates the same but defaults to diff --git a/win/tty/wintty.c b/win/tty/wintty.c index 5ad7a3dcc..f41225f4b 100644 --- a/win/tty/wintty.c +++ b/win/tty/wintty.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 wintty.c $NHDT-Date: 1526909614 2018/05/21 13:33:34 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.167 $ */ +/* NetHack 3.6 wintty.c $NHDT-Date: 1536193253 2018/09/06 00:20:53 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.170 $ */ /* Copyright (c) David Cohrs, 1991 */ /* NetHack may be freely redistributed. See license for details. */ @@ -4245,15 +4245,20 @@ render_status(VOID_ARGS) } if (iflags.hilite_delta) { tty_putstatusfield(nullfield, "[", x++, y); - if (hpbar_color != NO_COLOR && coloridx != CLR_MAX) - term_start_color(hpbar_color); - term_start_attr(ATR_INVERSE); - tty_putstatusfield(nullfield, bar, x, y); + if (hpbar_percent > 0) { + if (hpbar_color != NO_COLOR && coloridx != CLR_MAX) + term_start_color(hpbar_color); + term_start_attr(ATR_INVERSE); + } + tty_putstatusfield(nullfield, + (hpbar_percent > 0) ? bar : text, x, y); x += (int) strlen(bar); - term_end_attr(ATR_INVERSE); - if (hpbar_color != NO_COLOR && coloridx != CLR_MAX) - term_end_color(); - if (twoparts) { + if (hpbar_percent > 0) { + term_end_attr(ATR_INVERSE); + if (hpbar_color != NO_COLOR && coloridx != CLR_MAX) + term_end_color(); + } + if (twoparts && hpbar_percent > 0) { *bar2 = savedch; tty_putstatusfield(nullfield, bar2, x, y); x += (int) strlen(bar2);