Mostly add a paragraph clarifying the classification of WONTFIX for
a reported bug ('I' unseen monster clobbers remembered object at the
location). It felt like it needed a parallel paragraph for monsters.
A couple of \e to \\ changes, a whole bunch of ^ to \(ha changes
(similar character but bigger so easier to see), ~ to \(ti (ditto),
and - to \- (first is a hyphen, second is a minus sign which is
bigger; see the difference for "- and | The walls of a room...").
As well as horizontal walls, open doors, top and bottom of swallow
and explode octagons, I changed command line switches -s, -X, and -D
to use minus sign. I was unsure whether the umpteen M-C should be
changed too. Since it was less work to leave them as-is, that's
what I did. I also left ^C with smaller circumflex punctation
instead of changing to bigger circumflex character for same reason.
The [much smaller] Guidebook.tex changes need testing.
Not fixed:
I think the sentence "you can type 'nethack -s all' on most versions"
is very misleading. Using 'versions' to refer to the various ports
rather than different releases is iffy, but my complaint is that
"typing something" sounds like an action you would perform while in
the game. Access to a command line and figuring out how to invoke
nethack from there is probably not something where "most versions"
applies any more. But I don't know how to rephrase that succinctly.
If I did, I would have just changed it....
The sample map was being rendered in a proportional-width font for
Guidebook.mn -> Guidebook.ps -> Guidebook.pdf so looked awful. It
is quite hard to believe that no one ever noticed this. I wasn't
sure how to force tty font, but it is straightforward to pick
constant-width variant of Roman which seems to be 'roff's universal
font.
Prevent ".nethackrc" from being hyphenated and split across lines.
Ditto for other file names in the same section even though they
hadn't been positioned in spots where they got split. I put same
thing into Guidebook.tex but I don't know whether their embedded
dots will become a problem there.
Loads of unmatched double quotes were confusing Emacs' nroff-mode
(which unlike tex-mode for Guidebook.tex, wasn't being activated
by default for Guidebook.mn). Supply missing closing quote for a
bunch of things, convert literal '"' to '\(dq' for ones that aren't
intended to have matching close quote. And change a bunch of
instances of "text" to ``text'' for rendering as quoted strings.
(There are a lot of single-quoted characters 'c' which should
probably be `c' instead, but I haven't touched those.)
There were several '\e' to render the 'escape' character, but that
is something which can be changed at will. Use '\\' to explicitly
show backslash instead. Change several ' - ' and '--' to '\(em'
for M-sized dash. Right now they all have <space>\(em<space> but
the spaces probably shouldn't be there.
Change instances of 'number_pad' to '.op number_pad' to have it
rendered as an option name.
Remove the obsolete sentence which said that "Elbereth" might be
conditionally excluded. (This change also made in Guidebook.tex.)
Split some wide lines (wide in the source, not after rendering),
although this wasn't done exhaustively. For the re-split lines,
put each sentence on its own line as suggested by 'roff' man page.
Fix the alignment of three short tables which use 'key dash meaning'
so that the dashes line up using Keni's .PS/.PL/.PE macros. (There
might be others that need this.)
Center the "- - - -" separator which precedes the list of dungeoneers
at the end. (Thinking about it now, possibly it should be forced to
have zero paragraph indentation prior to centering rather than tacking
on some trailing spaces to shift the non-blank part to the left. The
title for the table of display symbols might be in the same boat here.
But I'm roff'd out for the time being.)
Try to explain object filtering for commands that can take multiple
object classes combined with multiple BUCX states (and/or 'unpaid').
At the moment it is attached to the 'D' command where it is most
likely to be used, but probably ought to have its own subsection in
the Objects chapter so that it doesn't bog down the command list.
The filtering paragraph ought to be duplicated in Guidebook.tex, but
there's enough quoting going on that I didn't trust myself to attempt
an untested change.
Instead of modifying tmac.n's '.ux' macro, replace usage of it with
clone '.UX' (inline in Guidebook.mn in order to avoid modifying tmac.n
according to the author's wishes). '.ux' was used in several places
and neglected in a few others. Now all "UNIX" references use '.UX'
(unless I missed some...). Only the first generates a trademark
footnote. Also only the first adds the (r) superscript for registered
trademark; it would be better if that macro always showed (r) while
continued to show the footnote only once.
I made the mistake of making a bunch of small revisions all at once
and am not going to try to separate them out for separate commit.
I'm not sure they all got reviewed closely; I didn't spot any glaring
errors while scrolling through the formatted file.
The table of display symbols wasn't quoting the backslash used for
thrones so that symbol showed erroneously as blank. hbeam, vbeam,
lslant, and rslant (used for zap animations) were mislabeled as
"wall". (drawing.c used to have the same bug but it got fixed about
two years ago. Guidebook.tex still needs to have this fixed.)
In the section 'using a configuration file', the file name ".nethackrc"
ended up as a hyphenated split across two lines. That needs to be
fixed; the presence of a dash makes the spelling of the name become
ambiguous.
Several small tables that use <something><space+dash+space><something>
don't line up their dashes correctly.
I replaced most blank lines and also lines which begin with whitespace.
One notable exception is the sample map excerpt. It seems to format
as intended so I didn't try to tinker with it.
Remove trailing spaces from doc/fixes36.1 (only a couple),
doc/Guidebook.mn (several), and doc/Guidebook.tex (many). I re-split
some lines made wider by embedded formatting directives, but tried to
avoid getting carried away with that.
I think I added one missing period to Guidebook.mn and one missing
comma to Guidebook.tex. Aside from that, they should format the same
as they did before this patch.
Make the suggested change that only adjusting something into its own
slot be the way to collect/merge compatible stacks with it, instead
of any #adjust without a split count. This removes the previous
special case for a count that matches the stack size. Having to
know the exact count was not a burden on the player, but being able
to move things around without merging with other stacks makes more
sense than the original behavior or the hack to work-around that
behavior.
The report stated that '#adjust a c' after '#adjust 1a b' moved all
the original 'a' to 'c' instead of leaving the one in 'b' alone.
That's true, but it is also the intended behavior. Splitting off
with a count explicitly avoids gathering compatible stacks (but
does merge into the destination if compatible, instead of swapping).
Moving a whole stack gathers compatible ones and puts the whole
merged group into the destination.
But that leaves a gap in functionality: there's no way to get the
don't-collect-other-stacks without splitting; there ought to be.
So, allow the player to specify full count to move a stack from one
slot to another without collecting compatible stacks (the behavior
when no count is given) or splitting (the behavior when count is
less than full amount). In the example above, if 'a' started with
5 doodads and had 4 left after splitting one to 'b', '#adjust 4a c'
will move those 4 (all of 'a') to 'c' without merging 'b' into them.
The method is a bit obscure but it's also something which doesn't
come up very often.
Add a new boolean option herecmd_menu. If this is on, and using
a windowport that supports mouse, clicking on your character pops
up a menu of actions doable in that location. Basically this is
nothing new, as almost all of the same actions were done before
on the mouse click.
You can also pop up the context menu with the #herecmdmenu
extended command
Turning the boolean option force_invmenu makes all the commands
that ask for an inventory item pop up a menu instead of asking
a text query. This should be much more friendlier to new
players, and is very useful for window ports on systems
with touch screens and no physical keyboard, such as cell phones.
Polymorph control gives the player a chance to accept or reject a form
change due to lycanthropy, but if it occurs during combat or movement
the player might type 'y' before realizing that the prompt is pending.
Provide a paranoid_confirmation setting for 'Were-change' to allow a
player to require "yes" instead of 'y' for that.
The existing setting 'wand' is renamed to 'wand-break' and now requires
at least two letters in the config file options instead of just 1. The
spelling of its synonym is changed from 'breakwand' to 'break-wand';
it can be shorted to as few as 2 letters (same as before) but if more
than 5 are present, the new dash is required.
Both 'wand-break' and 'Were-change' are placed before 'pray' in the 'O'
menu for paranoid_confirmation so that all the "yes" vs 'y' settings
are grouped together.
Bonus fixes:
Reverting from were-critter form to human (due to timeout) did not give
a player with polymorph control the option of remaining in creature
form; now it does.
The 'O' command's menu would not show "wand" (now "wand-break") in the
current value of paranoid_confirmation. (A post 3.6.0 issue, so no
fixes entry included.)
The revised Guidebook.mn has been tested; Guidebook.tex has not.
Allows the user to define arbitrarily named optional sections
in the config file, and select which of those sections are used.
For example:
OPTIONS=color
CHOOSE=char A,char B
[char A]
OPTIONS=role:arc,race:dwa,align:law,gender:fem
[char B]
OPTIONS=role:wiz,race:elf,align:cha,gender:mal
Previously the "fast-moving" when getting a target location
was always by 8 units. If this option is on, fast-moving
will instead skip the same map glyphs. This should be much more
useful for blind players.
Compound option whatis_filter, filters the eligible map locations
when getting a cursor location for targeting. Accepts 'n' (none),
'v' (map locations in view), or 'a' (map locations in the same area,
eg. room or corridor).
Report #5426 was classified as not-a-bug, but the underlying issue
can be improved.
For item selection where BUCX (bless/curse state) filtering is
supported (mostly for menustyle:Full, but there are a few actions
where Traditional and Combination handle BUCX too), 3.4.3 took the
union of object class and bless/curse state (so ?!B gave all scrolls
and all potions and every blessed item from other classes) but 3.6.0
changed that to the intersection (so ?!B gives blessed scrolls and
blessed potions, period). Since gold is inherently not blessed or
cursed it has been getting excluded during intersection handling
when that includes BUCX filtering. Report #5426 was from a player
who was used to choosing $X when putting newly acquired loot into a
container asking to have the old behavior reinstated.
The ideal fix would be to support both union ($ | X) and intersection
(?! & B), but implementation would be bug prone and the interface,
especially when done for menus, would be cumbersome. Instead, this
adds new boolean option, goldX, to allow the player to decide whether
gold is classified as uncursed--even though it is never described as
such--or unknown. The new-loot-into-container issued can be solved
either via $abcX, where abc lists all classes that have any X items
(when gold is included as one of the classes, its BUCX state is now
ignored for the current selection), or by setting the goldX option
and then just picking X for the types of items to put into the
container (or drop or whatever other action supports BUCX filtering).
The situations where menustyle:Full allows BUCX filtering during
object class specification and styles Traditional and Combination
don't should to be fixed (by extending BUCX support to Traditional
and Combination rather than removing it from Full, obviously).
Apparently some screen readers keep reading the status lines
at the bottom of the screen when parts of those change.
Add an option to prevent updates to those lines.
Adds two new configurable keys to the cursor targeting: 'A' (getpos.menu)
and 'a' (getpos.menu.cansee). First one shows a menu of all interesting
glyphs on the map, second one shows only those in sight.
Travel command also now obeys the "request menu" -prefix, showing
the menu with interesting targets in sight, and then traveling there.
Idea via the NetHack accessibility research by Alexei Pepers.
This is a modified version of Jason Dorje Short's key rebinding
patch, and allows also binding special keys, such as the ones
used in getloc and getpos.
One of the ways to play NetHack on nethack.alt.org is via a HTML
terminal in browser. Unfortunately this means several ctrl-key
combinations cannot be entered, because the browser intercepts
those. Similar thing applies to some international keyboard layouts
on Windows. With this patch, the user can just rebind the command
to a key that works best for them.
I've tested this on Linux TTY, X11, and Windows TTY and GUI.