diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 4e4eb01b8..3db597f9f 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -410,6 +410,8 @@ save 'autodescribe' option value prior to detection or #terrain display and restore it after rather than leave it forced on humanoid pet could become hostile but still remain tame if it observed hero attacking a peaceful creature +minor ^X/enlightenment bugs: grammar when poly'd into '1 hit dice' critter, + missing punctuation for "You entered the dungeon N turns ago" Platform- and/or Interface-Specific Fixes diff --git a/src/cmd.c b/src/cmd.c index f9473e6a7..d88664664 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 cmd.c $NHDT-Date: 1457207033 2016/03/05 19:43:53 $ $NHDT-Branch: chasonr $:$NHDT-Revision: 1.220 $ */ +/* NetHack 3.6 cmd.c $NHDT-Date: 1493946186 2017/05/05 01:03:06 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.255 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1586,7 +1586,10 @@ int final; } } -/* characteristics: expanded version of bottom line strength, dexterity, &c */ +/* characteristics: expanded version of bottom line strength, dexterity, &c; + [3.6.1: now includes all status info (except things already shown in the + 'background' section), primarily so that blind players can suppress the + status line(s) altogether and use ^X feedback on demand to view HP, &c] */ STATIC_OVL void characteristics_enlightenment(mode, final) int mode; @@ -1612,22 +1615,39 @@ int final; enl_msg("Your armor class ", "is ", "was ", buf, ""); if (Upolyd) { - Sprintf(buf, "%d hit dice", mons[u.umonnum].mlevel); + switch (mons[u.umonnum].mlevel) { + case 0: + /* status line currently being explained shows "HD:0" */ + Strcpy(buf, "0 hit dice (actually 1/2)"); + break; + case 1: + Strcpy(buf, "1 hit die"); + break; + default: + Sprintf(buf, "%d hit dice", mons[u.umonnum].mlevel); + break; + } } else { /* flags.showexp does not matter */ /* experience level is already shown in the Background section */ Sprintf(buf, "%-1ld experience point%s", - u.uexp, u.uexp == 1 ? "" : "s"); + u.uexp, plur(u.uexp)); } you_have(buf, ""); - Sprintf(buf, " You entered the dungeon %ld turn%s ago", - moves, moves == 1 ? "" : "s"); - putstr(en_win, 0, buf); + /* this is shown even if the 'time' option is off */ + Sprintf(buf, "the dungeon %ld turn%s ago", moves, plur(moves)); + /* same phrasing at end of game: "entered" is unconditional */ + enlght_line(You_, "entered ", buf, ""); #ifdef SCORE_ON_BOTL - Sprintf(buf, "%ld", botl_score()); - enl_msg("Your score ", "is ", "was ", buf, ""); + if (flags.showscore) { + /* describes what's shown on status line, which is an approximation; + only show it here if player has the 'showscore' option enabled */ + Sprintf(buf, "%ld%s", botl_score(), + !final ? "" : " before end-of-game adjustments"); + enl_msg("Your score ", "is ", "was ", buf, ""); + } #endif /* bottom line order */