From: PatR Date: Fri, 27 May 2016 01:35:27 +0000 (-0700) Subject: '^O' command documentation and '^' command help X-Git-Tag: NetHack-3.6.1_RC01~738 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=49da8b87d8acd225d6932dea273a5bd5ec899b0b;p=nethack '^O' command documentation and '^' command help While looking for things in core which might conceivably trigger the Windows ctype assertion failure (haven't found any yet), I noticed that help_dir() was still treating ^O as a wizard mode-only command. Also, documentation about that command was never brought up to date. I wish this change to ^O hadn't been done. #overview already has a meta/alt M-O shortcut and overloading wizard mode commands makes documentation more complicated since wizard mode stuff traditionally has been left unmentioned. --- diff --git a/dat/cmdhelp b/dat/cmdhelp index b82560099..ed3f76107 100644 --- a/dat/cmdhelp +++ b/dat/cmdhelp @@ -1,5 +1,5 @@ ^ Show the type of a trap -^[ Cancel command +^[ Cancel command (same as ESCape key) ^A Redo the previous command ^C Quit the game ^D Kick something (usually a door, chest, or box) @@ -7,7 +7,7 @@ ^F Map the level (available in debug mode only) ^G Create a monster (available in debug mode only) ^I Identify all items (available in debug mode only) -^O Show location of special levels (available in debug mode only) +^O Show dungeon overview (normal play) or special levels (debug mode) ^P Toggle through previously displayed game messages ^R Redraw screen ^T Teleport around level diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index 977cad2a6..1666c19c5 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -691,6 +691,14 @@ a further menu or prompt will appear once you've closed this menu. The available options are listed later in this Guidebook. Options are usually set before the game rather than with the `O' command; see the section on options below. +.lp ^O +Show overview or show dungeon layout +.lp "" +In normal play and in explore mode, a shortcut for the ``#overview'' +extended command to list interesting dungeon levels visited. +.lp "" +In debug mode, an extra command which lists the placement of all special +levels. .lp p Pay your shopping bill. .lp P diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index b66e5466c..45e010893 100644 --- a/doc/Guidebook.tex +++ b/doc/Guidebook.tex @@ -835,6 +835,15 @@ The available options are listed later in this Guidebook. Options are usually set before the game rather than with the `{\tt O}' command; see the section on options below. %.lp +\item[\tb{\^{}O}] +Show overview or show dungeon layout\\ +%.lp "" +In normal play and in explore mode, a shortcut for the ``{\tt \#overview}'' +extended command to list interesting dungeon levels visited.\\ +%.lp "" +In debug mode, an extra command which lists the placement of all special +levels. +%.lp \item[\tb{p}] Pay your shopping bill. %.lp diff --git a/src/cmd.c b/src/cmd.c index 80dbcd0f4..b4e126604 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -3794,9 +3794,9 @@ help_dir(sym, msg) char sym; const char *msg; { + static const char wiz_only_list[] = "EFGIVW"; char ctrl; winid win; - static const char wiz_only_list[] = "EFGIOVW"; char buf[BUFSZ], buf2[BUFSZ], *explain; win = create_nhwindow(NHW_TEXT); @@ -3807,10 +3807,10 @@ const char *msg; putstr(win, 0, buf); putstr(win, 0, ""); } - if (letter(sym)) { - sym = highc(sym); - ctrl = (sym - 'A') + 1; - if ((explain = dowhatdoes_core(ctrl, buf2)) + if (letter(sym) || sym == '[') { /* 'dat/cmdhelp' shows ESC as ^[ */ + sym = highc(sym); /* @A-Z[ (note: letter() accepts '@') */ + ctrl = (sym - 'A') + 1; /* 0-27 (note: 28-31 aren't applicable) */ + if ((explain = dowhatdoes_core(ctrl, buf2)) != 0 && (!index(wiz_only_list, sym) || wizard)) { Sprintf(buf, "Are you trying to use ^%c%s?", sym, index(wiz_only_list, sym) @@ -3820,9 +3820,9 @@ const char *msg; putstr(win, 0, ""); putstr(win, 0, explain); putstr(win, 0, ""); - putstr(win, 0, "To use that command, you press"); - Sprintf(buf, "the key, and the <%c> key at the same time.", - sym); + putstr(win, 0, + "To use that command, hold down the key as a shift"); + Sprintf(buf, "and press the <%c> key.", sym); putstr(win, 0, buf); putstr(win, 0, ""); }