Merge branch 'paxed-lua-merged3' into paxed-lua-v2-merged

This commit is contained in:
nhmall
2019-11-06 12:56:21 -05:00
252 changed files with 9504 additions and 6526 deletions

View File

@@ -1,4 +1,4 @@
.\" $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.305 $ $NHDT-Date: 1557251604 2019/05/07 17:53:24 $
.\" $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.325 $ $NHDT-Date: 1572735924 2019/11/02 23:05:24 $
.\"
.\" This is an excerpt from the 'roff' man page from the 'groff' package.
.\" NetHack's Guidebook.mn currently does *not* adhere to these guidelines.
@@ -24,7 +24,7 @@
.ds vr "NetHack 3.7
.ds f0 "\*(vr
.ds f1
.ds f2 "June 20, 2019
.ds f2 "November 2, 2019
.
.\" A note on some special characters:
.\" \(lq = left double quote
@@ -1104,6 +1104,12 @@ Autocompletes.
Default key is \(oqM-e\(cq.
.lp #exploremode
Enter the explore mode.
.lp ""
Requires confirmation; default response is \f(CRn\fP (no).
To really switch to explore mode, respond with \f(CRy\fP.
You can set the
.op paranoid_confirmation:quit
option to require a response of \f(CRyes\fP instead.
.lp "#fire "
Fire ammunition from quiver.
Default key is \(oqf\(cq.
@@ -1211,6 +1217,12 @@ Test the panic routine.
Terminates the current game.
Autocompletes.
Debug mode only.
.lp ""
Asks for confirmation; default is \f(CRn\fP (no); continue playing.
To really panic, respond with \f(CRy\fP.
You can set the
.op paranoid_confirmation:quit
option to require a response of \f(CRyes\fP instead.
.lp "#pay "
Pay your shopping bill.
Default key is \(oqp\(cq.
@@ -1251,10 +1263,11 @@ Default key is \(oqM-q\(cq.
.lp ""
Since using this command by accident would throw away the current game,
you are asked to confirm your intent before quitting.
By default a response of \(oqy\(cq acknowledges that intent.
Default response is \f(CRn\fP (no); continue playing.
To really quit, respond with \f(CRy\fP.
You can set the
.op paranoid_confirmation
option to require a response of \(lqyes\(rq instead.
.op paranoid_confirmation:quit
option to require a response of \f(CRyes\fP instead.
.lp "#quiver "
Select ammunition for quiver.
Default key is \(oqQ\(cq.
@@ -2604,8 +2617,7 @@ Using a configuration file
.hw .nethackrc defaults.nh nethack.exe nethackW.exe
The default name of the configuration file varies on different
operating systems.
On MS-DOS and Windows, it is \(lqdefaults.nh\(rq
in the same folder as nethack.exe or nethackW.exe.
.pg
On
.UX ,
Linux,
@@ -2613,6 +2625,18 @@ and Mac OS X it is \(lq.nethackrc\(rq in the user's home directory.
The file may not exist, but it is a normal ASCII text file and
can be created with any text editor.
.pg
On Windows, it is \(lq.nethackrc\(rq in
\(lq\\%USERPROFILE%\\NetHack\\3.6\(rq. The file may not exist,
but it is a normal ASCII text file can can be created with any
text editor.
After running NetHack for the first time, you should find a default
template for the configuration file named \(lq.nethackrc.template\(rq
in \(lq\\%USERPROFILE%\\NetHack\\3.6\(rq.
If you had not created the configuration file, NetHack will create
the configuration file for you using the default template file.
.pg
On MS-DOS, it is \(lqdefaults.nh\(rq in the same folder as nethack.exe.
.pg
Any line in the configuration file starting with \(oq#\(cq is treated
as a comment.
Empty lines are ignored.
@@ -2629,6 +2653,7 @@ of which can be used multiple times.
In general, the statements are
written in capital letters, followed by an equals sign, followed by
settings particular to that statement.
.pg
Here is a list of allowed statements:
.lp OPTIONS
There are two types of options, boolean and compound options.
@@ -2640,7 +2665,7 @@ Some options are persistent, and apply only to new games.
You can specify multiple OPTIONS statements, and multiple options
separated by commas in a single OPTIONS statement.
(Comma separated options are processed from right to left.)
.pg
.lp ""
Example:
.sd
.ft CR
@@ -2669,6 +2694,9 @@ HACKDIR, must be writable.
.lp TROUBLEDIR
The location that a record of game aborts and self-diagnosed game problems
is kept. Defaults to HACKDIR, must be writable.
.\"
.\" config file entries beyond this point are shown alphabetically
.\"
.lp AUTOCOMPLETE
Enable or disable an extended command autocompletion.
Autocompletion has no effect for the X11 windowport.
@@ -2676,7 +2704,7 @@ You can specify multiple autocompletions.
To enable autocompletion, list the extended command.
Prefix the command with \(lq!\(rq to disable the autocompletion
for that command.
.pg
.lp ""
Example:
.sd
\f(CRAUTOCOMPLETE=zap,!annotate\fP
@@ -2692,7 +2720,7 @@ extended commands.
You can specify multiple bindings.
Format is key followed by the command, separated by a colon.
See the \(lqChanging Key Bindings\(rq section for more information.
.pg
.lp ""
Example:
.sd
\f(CRBIND=\(haX:getpos.autodescribe\fP
@@ -2700,7 +2728,7 @@ Example:
.lp CHOOSE
Chooses at random one of the comma-separated parameters as an active
section name. Lines in other sections are ignored.
.pg
.lp ""
Example:
.sd
.ft CR \" constant-width Roman
@@ -2712,37 +2740,43 @@ OPTIONS=role:arc,race:dwa,align:law,gender:fem
OPTIONS=role:wiz,race:elf,align:cha,gender:mal
.ft \" revert to previous font
.ed
.lp MSGTYPE
Change the way messages are shown in the top status line.
See the \(lqConfiguring Message Types\(rq section.
.lp MENUCOLOR
Highlight menu lines with different colors.
See the \(lqConfiguring Menu Colors\(rq section.
.lp MSGTYPE
Change the way messages are shown in the top status line.
See the \(lqConfiguring Message Types\(rq section.
.lp ROGUESYMBOLS
Custom symbols for for the rogue level's symbol set.
See \fISYMBOLS\fP below.
.lp SOUND
Define a sound mapping.
See the \(lqConfiguring User Sounds\(rq section.
.lp SOUNDDIR
Define the directory that contains the sound files.
See the \(lqConfiguring User Sounds\(rq section.
.lp SYMBOLS
Override one or more symbols in the symbols files.
Override one or more symbols in the symbol set used for all dungeon
levels except for the special rogue level.
See the \(lqModifying NetHack Symbols\(rq section.
.pg
.lp ""
Example:
.sd
\f(CRSYMBOLS=S_boulder:0\fP
\f(CR# replace small punctuation (tick marks) with digits\fP
\f(CRSYMBOLS=S_boulder:0,S_golem:7\fP
.ed
.lp WIZKIT
Debug mode only: extra items to add to initial inventory.
Value is the name of a text file containing a list of item names,
one per line, up to a maximum of 128 lines.
Each line is processed by the function that handles wishing.
.pg
.lp ""
Example:
.sd
\f(CRWIZKIT=\(ti/wizkit.txt\fP \" \(ti == '~'
.ed
.lp SOUNDDIR
Define the directory that contains the sound files.
See the \(lqConfiguring User Sounds\(rq section.
.lp SOUND
Define a sound mapping.
See the \(lqConfiguring User Sounds\(rq section.
.pg
.lp ""
.pg \" this would look better outdented
Here is a short example of config file contents:
.sd
.ft CR \" set font to constant-width Roman
@@ -3836,11 +3870,16 @@ character in the pattern, specifically:
.CC > "never pickup an object that matches rest of pattern."
.ei
.ed
A \(lqnever pickup\(rq rule takes precedence over an \(lqalways pickup\(rq
rule if both match.
The
.op autopickup_exception
rules are processed in the order in which they appear in your config file,
thus allowing a later rule to override an earlier rule.
.lp ""
Exceptions can be set with the \(oqO\(cq command, but ones set that way will
not be preserved across saves and restores.
Exceptions can be set with the \(oqO\(cq command, but because they are not
included in your config file, they won't be in effect if you save and then
restore your game.
.op autopickup_exception
rules and not saved with the game.
.\" end of ``.lp autopickup_exception'' entry; continue enclosing page...
.\" use .lp "text" to make an unindented paragraph ("text" should be short)
.lp "Here are some examples:"
@@ -4258,7 +4297,7 @@ text to match against.
.lp "*"
\(lqalways\(rq will set the default attributes for that field.
.lp "*"
\(lqup\(rq and \(lqdown\(rq set the field attributes for when the field
\(lqup\(rq, \(lqdown\(rq set the field attributes for when the field
value changes upwards or downwards.
This attribute times out after
.op statushilites
@@ -4281,7 +4320,24 @@ it also matches when value is below or above the percentage.
Use prefix \(oq<\(cq or \(oq>\(cq to match when strictly below or above.
(The numeric limit is relaxed slightly for those: \f(CR>-1%\fP
and \f(CR<101%\fP are allowed.)
Only valid for \(lqhitpoints\(rq and \(lqpower\(rq fields.
Only four fields support percentage rules.
Percentages for \(lqhitpoints\(rq and \(lqpower\(rq are
straightforward; they're based on the corresponding maximum field.
Percentage highlight rules are also allowed for \(lqexperience level\(rq
and \(lqexperience points\(rq (valid when the
.op showexp
option is enabled).
For those, the percentage is based on the progress from the start of
the current experience level to the start of the next level.
So if level 2 starts at 20 points and level 3 starts at 40 points,
having 30 points is 50% and 35 points is 75%.
100% is unattainable for experience because you'll gain a level and
the calculations will be reset for that new level, but a rule for
\f(CR=100%\fP is allowed and matches the special case of being
exactly 1 experience point short of the next level.
.\" (If you manage to reach level 30, there is no next level and the
.\" percentage will remain at 0% no matter have many additional experience
.\" points you earn.)
.lp "*"
absolute value sets the attribute when the field value matches
that number.
@@ -4337,8 +4393,9 @@ Set the name of the symbol set that you want to load.
Set the name of the symbol set that you want to load for display
on the rogue level.
.pg
You can also override one or more symbols using the SYMBOLS config
file option. Symbols are specified as name:value pairs.
You can also override one or more symbols using the SYMBOLS and
ROGUESYMBOLS config file options.
Symbols are specified as name:value pairs.
Note that
NetHack escape-processes the value string in conventional C fashion.
This means that \\ is a prefix to take the following character literally.
@@ -4347,16 +4404,23 @@ The special prefix form \\m switches on the meta bit in the symbol value,
and the \(ha prefix causes the following character to be treated as a
control character.
.pg
.\" Table is centered.
.\" First line (title) is left justified and spans second and third columns;
.\" it used to be centered but tended to look as if too far to the right.
.\" Remaining lines are left justified in each of three columns. First
.\" line (second overall) contains column labels; the first column has a
.\" dummy label of two spaces. (That used to be "Default" but it made all
.\" the lines wider because of the label's width and caused several lines
.\" to be too wide when generating plain text output. Two spaces leaves
.\" some room between the symbol character and name.) Entries in first
.\" column now use constant-width Roman font to approximate TeX tt font.
.TS S
center;
c s s
c1 l1 l.
l s s
l1fCR l1 l.
.\"TABLE_START
.\" because description is wide, centered title seems off, so pad it a bit
.\" note that each backslash precedes one space of padding (including the
.\" last one; in other words, there's a trailing space here)
NetHack Symbols\ \ \ \ \ \ \
Default Symbol Name Description
NetHack Symbols
\ \ Symbol Name Description
\_ \_ \_
\ S_air (air)
\&_ S_altar (altar)
@@ -4483,7 +4547,8 @@ s S_spider (arachnid or centipede)
@ S_ss3 (magic shield 3 of 4)
* S_ss4 (magic shield 4 of 4)
\(ha S_statue_trap (statue trap)
\ S_stone (dark part of a room)
\ S_stone (solid rock or unexplored terrain
\ \ \ or dark part of a room)
] S_strange_obj (strange object)
\- S_sw_bc (swallow bottom center)
\\ S_sw_bl (swallow bottom left)
@@ -4527,21 +4592,28 @@ v S_vortex (vortex)
w S_worm (worm)
\(ti S_worm_tail (long worm tail)
W S_wraith (wraith)
x S_xan (xan or other mythical/fantastic insect)
x S_xan (xan or other extraordinary insect)
X S_xorn (xorn)
Y S_yeti (apelike creature)
Z S_zombie (zombie)
z S_zruty (zruty)
\ S_pet_override (any pet if ACCESSIBILITY=1 is set)
\ S_player_override (hero if ACCESSIBILITY=1 is set)
.\"TABLE_END Do not delete this line.
.TE
.\" don't hyphenate file name across lines
.hw sysconf
.pg
There is one additional class of object, described as \(lqstrange object\(rq,
which will occasionally be the shape taken on by mimics and shown
as \(oq]\(cq for maps displayed as text characters.
Although the displayed character is the same as the default value for
\(lqS_mimic_def\(rq, it is a different symbol and there is no corresponding
\(lqS_strange_object\(rq symbol nor any way to assign an alternate value
for it.
Notes: several symbols in this table appear to be blank.
They are the space character, except for S_pet_override
and S_player_override which don't have any default value
and can only be used if enabled in the \(lqsysconf\(rq file.
.pg
S_rock is misleadingly named; rocks and stones use S_gem.
Statues and boulders are the rock being referred to, but since
version 3.6.0, statues are displayed as the monster they depict.
So S_rock is only used for boulders and not used at all if
overridden by the more specific S_boulder.
.pg
.hn 2
Configuring NetHack for Play by the Blind
@@ -4582,8 +4654,14 @@ configuration file will cause the game to run in a manner accessible
to the blind.
After you have gained some experience with the game
and with editing files, you may want to alter settings via \fBSYMBOLS=\fP
and \fBROGUESYMBOLS=\fP
in your configuration file to better suit your preferences.
The most crucial settings to make the game accessible are:
See the previous section for the special symbols S_pet_override
to force a consistent symbol for all pets and
S_player_override to force a unique symbol for the player character
if \fBaccessibility\fP is enabled in the sysconf file.
.pg
The most crucial settings to make the game more accessible are:
.pg
.lp symset:NHAccess
Load a symbol set appropriate for use by blind players.
@@ -4617,7 +4695,7 @@ of moving 8 units at a time.
.lp nostatus_updates
Prevent updates to the status lines at the bottom of the screen, if
your screen-reader reads those lines. The same information can be
seen via the #attributes command.
seen via the \(lq#attributes\(rq command.
.hn 2
Global Configuration for System Administrators
.pg
@@ -4866,7 +4944,7 @@ and \fBPaul Winner\fP, ported NetHack 3.1 to the PC.
\fBMike Engber\fP, \fBDavid Hairston\fP, \fBMichael Hamel\fP,
\fBJonathan Handler\fP, \fBJohnny Lee\fP, \fBTim Lennan\fP, \fBRob Menke\fP,
and \fBAndy Swanson\fP, developed NetHack 3.1 for the Macintosh,
porting it for MPW. Building on their development, \fBBarton House\fP
porting it for MPW. Building on their development, \fBBart House\fP
added a Think C port.
.pg
\fBTimo Hakulinen\fP ported NetHack 3.1 to OS/2. \fBEric Smith\fP
@@ -5025,7 +5103,7 @@ flavors and maintained the X11 interface.
\fBKen Lorber\fP, \fBHaoyang Wang\fP, \fBPat Rankin\fP, and \fBDean Luick\fP
maintained the port of NetHack 3.6 for Mac OSX.
.pg
\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBBarton House\fP,
\fBMichael Allison\fP, \fBDavid Cohrs\fP, \fBBart House\fP,
\fBPasi Kallinen\fP, \fBAlex Kompel\fP, \fBDion Nicolaas\fP,
\fBDerek S. Ray\fP and \fBYitzhak Sapir\fP maintained the port of
NetHack 3.6 for Microsoft Windows.
@@ -5050,6 +5128,9 @@ The NetHack Development Team at the time of release of 3.6.1 consisted of
In early May 2019, another 320 bug fixes along with some enhancements and
the adopted curses window port, were released as 3.6.2.
.pg
\fBBart House\fP, who had contributed to the game as a porting team
participant for decades, joined the NetHack Development Team in late May 2019.
.pg
The official NetHack web site is maintained by \fBKen Lorber\fP
at
.UR http://www.nethack.org/ .
@@ -5076,49 +5157,50 @@ miscreants in this, the list of Dungeoneers:
.
.TS S
center;
c c c.
c2 c2 c.
.\"TABLE_START
Adam Aronow Janet Walz Nathan Eady
Alex Kompel Janne Salmijarvi Norm Meluch
Alex Smith Jean-Christophe Collet Olaf Seibert
Andreas Dorn Jeff Bailey Pasi Kallinen
Andy Church Jochen Erwied Pat Rankin
Andy Swanson John Kallen Patric Mueller
Adam Aronow J. Ali Harlow Mikko Juola
Alex Kompel Janet Walz Nathan Eady
Alex Smith Janne Salmijarvi Norm Meluch
Andreas Dorn Jean-Christophe Collet Olaf Seibert
Andy Church Jeff Bailey Pasi Kallinen
Andy Swanson Jochen Erwied Pat Rankin
Andy Thomson John Kallen Patric Mueller
Ari Huttunen John Rupley Paul Winner
Barton House John S. Bien Pierre Martineau
Bart House John S. Bien Pierre Martineau
Benson I. Margulies Johnny Lee Ralf Brown
Bill Dyer Jon W{tte Ray Chason
Boudewijn Waijers Jonathan Handler Richard Addison
Bruce Cox Joshua Delahunty Richard Beigel
Bruce Holloway Karl Garrison Richard P. Hughey
Bruce Mewborne Keizo Yamamoto Rob Menke
Carl Schelin Ken Arnold Robin Bandy
Chris Russo Ken Arromdee Robin Johnson
David Cohrs Ken Lorber Roderick Schertler
David Damerell Ken Washikita Roland McGrath
David Gentzel Kevin Darcy Ron Van Iwaarden
David Hairston Kevin Hugo Ronnen Miller
Dean Luick Kevin Sitze Ross Brown
Del Lamb Kevin Smolkowski Sascha Wostmann
Derek S. Ray Kevin Sweet Scott Bigham
Deron Meranda Lars Huttar Scott R. Turner
Dion Nicolaas Leon Arnott Sean Hunt
Dylan O'Donnell M. Drew Streib Stephen Spackman
Eric Backus Malcolm Ryan Stefan Thielscher
Eric Hendrickson Mark Gooderum Stephen White
Eric R. Smith Mark Modrall Steve Creps
Eric S. Raymond Marvin Bressler Steve Linhart
Erik Andersen Matthew Day Steve VanDevender
Frederick Roeber Merlyn LeRoy Teemu Suikki
Gil Neiger Michael Allison Tim Lennan
Greg Laskin Michael Feir Timo Hakulinen
Greg Olson Michael Hamel Tom Almy
Gregg Wonderly Michael Sokolov Tom West
Hao-yang Wang Mike Engber Warren Cheung
Helge Hafting Mike Gallop Warwick Allison
Irina Rempt-Drijfhout Mike Passaretti Yitzhak Sapir
Carl Schelin Keith Simpson Robin Bandy
Chris Russo Ken Arnold Robin Johnson
David Cohrs Ken Arromdee Roderick Schertler
David Damerell Ken Lorber Roland McGrath
David Gentzel Ken Washikita Ron Van Iwaarden
David Hairston Kevin Darcy Ronnen Miller
Dean Luick Kevin Hugo Ross Brown
Del Lamb Kevin Sitze Sascha Wostmann
Derek S. Ray Kevin Smolkowski Scott Bigham
Deron Meranda Kevin Sweet Scott R. Turner
Dion Nicolaas Lars Huttar Sean Hunt
Dylan O'Donnell Leon Arnott Stephen Spackman
Eric Backus M. Drew Streib Stefan Thielscher
Eric Hendrickson Malcolm Ryan Stephen White
Eric R. Smith Mark Gooderum Steve Creps
Eric S. Raymond Mark Modrall Steve Linhart
Erik Andersen Marvin Bressler Steve VanDevender
Fredrik Ljungdahl Matthew Day Teemu Suikki
Frederick Roeber Merlyn LeRoy Tim Lennan
Gil Neiger Michael Allison Timo Hakulinen
Greg Laskin Michael Feir Tom Almy
Greg Olson Michael Hamel Tom West
Gregg Wonderly Michael Sokolov Warren Cheung
Hao-yang Wang Mike Engber Warwick Allison
Helge Hafting Mike Gallop Yitzhak Sapir
Irina Rempt-Drijfhout Mike Passaretti
Izchak Miller Mike Stephenson
J. Ali Harlow Mikko Juola
.\"TABLE_END Do not delete this line.
.TE
.pg

View File

@@ -45,7 +45,7 @@
%.au
\author{Original version - Eric S. Raymond\\
(Edited and expanded for 3.6 by Mike Stephenson and others)}
\date{June 20, 2019}
\date{November 2, 2019}
\maketitle
@@ -1130,7 +1130,7 @@ slot to another so that it has a letter which is more meaningful for you
or that it will appear in a particular location when inventory listings
are displayed.
You can move to a currently empty slot, or if the destination is
occupied--and won't merge--the item there will swap slots with the one
occupied---and won't merge---the item there will swap slots with the one
being moved.
``{\tt \#adjust}'' can also be used to split a stack of objects; when
choosing the item to adjust, enter a count prior to its letter.\\
@@ -1216,7 +1216,13 @@ Advance or check weapon and spell skills. Autocompletes.
Default key is `{\tt M-e}'.
%.lp
\item[\tb{\#exploremode}]
Enter the explore mode.
Enter the explore mode.\\
%.lp ""
Requires confirmation; default response is `{\tt n}' (no).
To really switch to explore mode, respond with `{\tt y}'.
You can set the
{\it paranoid\verb+_+confirmation:quit\/}
option to require a response of ``{\tt yes}'' instead.
%.lp
\item[\tb{\#fire}]
Fire ammunition from quiver. Default key is `{\tt f}'.
@@ -1324,7 +1330,13 @@ Default keys are `{\tt \^{}O}', and `{\tt M-O}'.
Test the panic routine.
Terminates the current game.
Autocompletes.
Debug mode only.
Debug mode only.\\
%.lp ""
Asks for confirmation; default is `{\tt n}' (no); continue playing.
To really panic, respond with `{\tt y}''.
You can set the
{\it paranoid\verb+_+confirmation:quit\/}
option to require a response of ``{\tt yes}'' instead.
%.lp
\item[\tb{\#pay}]
Pay your shopping bill. Default key is `{\tt p}'.
@@ -1361,12 +1373,14 @@ Quaff (drink) something. Default key is `{\tt q}'.
%.lp
\item[\tb{\#quit}]
Quit the program without saving your game. Autocompletes.
Default key is `{\tt M-q}'.
Default key is `{\tt M-q}'.\\
%.lp ""
Since using this command by accident would throw away the current game,
you are asked to confirm your intent before quitting. By default a
response of `{\tt y}' acknowledges that intent. You can set the
{\it paranoid\verb+_+confirmation\/}
you are asked to confirm your intent before quitting.
Default response is `{\tt n}' (no); continue playing.
To really quit, respond with `{\tt y}'.
You can set the
{\it paranoid\verb+_+confirmation:quit\/}
option to require a response of ``{\tt yes}'' instead.
%.lp
\item[\tb{\#quiver}]
@@ -2030,9 +2044,9 @@ will result in it disappearing from your map, similarly if it is the
one who moved rather than you.
%.pg
However, if you encounter a monster which you can't see or sense--
perhaps it is invisible and has just tapped you on the noggin--
a special ``remembered, unseen monster'' marker will be displayed at
However, if you encounter a monster which you can't see or
sense---perhaps it is invisible and has just tapped you on the
noggin---a special ``remembered, unseen monster'' marker will be displayed at
the location where you think it is.
That will persist until you have
proven that there is no monster there, even if the unseen monster
@@ -2312,7 +2326,7 @@ But first you need to have a weapon in each hand.
(Note that your two weapons are not fully equal; the one in the
hand you normally wield with is considered primary and the other
one is considered secondary. The most noticeable difference is
after you stop--or before you begin, for that matter--wielding
after you stop---or before you begin, for that matter---wielding
two weapons at once. The primary is your wielded weapon and the
secondary is just an item in your inventory that's been designated
as alternate weapon.)
@@ -2544,7 +2558,7 @@ The commands to use rings are `{\tt P}' (put on) and `{\tt R}' (remove).
%.pg
Spellbooks are tomes of mighty magic. When studied with the `{\tt r}' (read)
command, they transfer to the reader the knowledge of a spell (and
therefore eventually become unreadable) --- unless the attempt backfires.
therefore eventually become unreadable)---unless the attempt backfires.
Reading a cursed spellbook or one with mystic runes beyond
your ken can be harmful to your health!
@@ -2687,9 +2701,9 @@ you are carrying (shopkeepers aside).
Normally, if you have seen an object at a particular map location and
move to another location where you can't directly see that object any
more, if will continue to be displayed on your map.
That remains the case even if it is not actually there any more--
perhaps a monster has picked it up or it has rotted away--
until you can see or feel that location again.
That remains the case even if it is not actually there any
more---perhaps a monster has picked it up or it has rotted
away---until you can see or feel that location again.
One notable exception is that if the object gets covered by the
``remembered, unseen monster'' marker.
When that marker is later removed
@@ -2852,19 +2866,32 @@ for system administrators.
\subsection*{Using a configuration file}
%.pg
The default name of the configuration file varies on different
operating systems. On MS-DOS and Windows, it is \mbox{``defaults.nh''} in
the same folder as \mbox{{\it nethack.exe\/}} or \mbox{{\it nethackW.exe\/}}.
The default name and location of the configuration file varies on different
operating systems.\\
%.lp ""
On Unix, Linux and Mac OS X it is \mbox{``.nethackrc''} in the user's home
directory. The file may not exist, but it is a normal ASCII text file and
can be created with any text editor.
can be created with any text editor.\\
%.pg
%.lp ""
On Windows, it is \mbox{``.nethackrc''} in the foler
\mbox{{``\%USERPROFILE\%\textbackslash NetHack\textbackslash 3.6''}}. The
file may not exist, but it is a normal ASCII text file and can be created
with any text editor.
After runing {\it NetHack\/} for the first time, you should find a default
template for ths configuration file named \mbox{``.nethackrc.template''} in
\mbox{{``\%USERPROFILE\%\textbackslash NetHack\textbackslash 3.6''}}.
If you had not created the configuration file, {\it NetHack\/} will create
the configuration file for you using the default template file.
%.lp ""
On MS-DOS it is \mbox{``defaults.nh''} in the same folder as
\mbox{{\it nethack.exe\/}}.\\
%.lp ""
Any line in the configuration file starting with `{\tt \#}' is treated as a comment.
Empty lines are ignored.
%.pg
Any line beginning with `{\tt [}' and ending in `{\tt ]}' is considered a section
Empty lines are ignored. Any line beginning with `{\tt [}' and ending in `{\tt ]}' is considered a section
marker. The text between the square brackets is the section name.
Lines after a section marker belong to that section, and are
ignored unless a CHOOSE -statement was used to select that section.
@@ -2872,9 +2899,13 @@ Section names are case insensitive.
%.pg
You can use different configuration statements in the file, some
of which can be used multiple times. In general, the statements are
of which can be used multiple times.
In general, the statements are
written in capital letters, followed by an equals sign, followed by
settings particular to that statement. Here is a list of allowed statements:
settings particular to that statement.
%.pg
Here is a list of allowed statements:
%.lp
\blist{}
@@ -2889,7 +2920,7 @@ You can specify multiple OPTIONS statements, and multiple options
separated by commas in a single OPTIONS statement.
(Comma separated options are processed from right to left.)
%.pg
%.lp ""
Example:
%.sd
\begin{verbatim}
@@ -2923,6 +2954,9 @@ HACKDIR, must be writable.
\item[\bb{TROUBLEDIR}]
The location that a record of game aborts and self-diagnosed game problems
is kept. Defaults to HACKDIR, must be writable.
%
% config file entries beyond this point are shown alphabetically
%
%.lp
\item[\bb{AUTOCOMPLETE}]
Enable or disable an extended command autocompletion.
@@ -2932,11 +2966,11 @@ autocompletion, list the extended command. Prefix the
command with ``{{\tt !}}'' to disable the autocompletion
for that command.
%.pg
%.lp ""
Example:
%.sd
\begin{verbatim}
AUTOCOMPLETE=zap,!annotate
AUTOCOMPLETE=zap,!annotate
\end{verbatim}
%.ed
@@ -2951,7 +2985,7 @@ extended commands. You can specify multiple bindings. Format is key
followed by the command, separated by a colon.
See the ``Changing Key Bindings`` section for more information.
%.pg
%.lp ""
Example:
%.sd
\begin{verbatim}
@@ -2964,7 +2998,7 @@ Example:
Chooses at random one of the comma-separated parameters as an active
section name. Lines in other sections are ignored.
%.pg
%.lp ""
Example:
%.sd
\begin{verbatim}
@@ -2977,23 +3011,39 @@ Example:
\end{verbatim}
%.ed
%.lp
\item[\bb{MSGTYPE}]
Change the way messages are shown in the top status line.
See the ``Configuring Message Types`` section.
%.lp
\item[\bb{MENUCOLOR}]
Highlight menu lines with different colors.
See the ``Configuring Menu Colors`` section.
%.lp
\item[\bb{MSGTYPE}]
Change the way messages are shown in the top status line.
See the ``Configuring Message Types`` section.
%.lp
\item[\bb{ROGUESYMBOLS}]
Custom symbols for for the rogue level's symbol set.
See {\it SYMBOLS} below.
%.lp
\item[\bb{SOUND}]
Define a sound mapping.
See the ``Configuring User Sounds'' section.
%.lp
\item[\bb{SOUNDDIR}]
Define the directory that contains the sound files.
See the ``Configuring User Sounds'' section.
%.lp
\item[\bb{SYMBOLS}]
Override one or more symbols in the symbols files.
Override one or more symbols in the symbol set used for all dungeon
levels except for the special rogue level.
See the ``Modifying {\it NetHack\/} Symbols'' section.
%.pg
%.lp ""
Example:
%.sd
\begin{verbatim}
SYMBOLS=S_boulder:0
# replace small punctuation (tick marks) with digits
SYMBOLS=S_boulder:0,S_golem:7
\end{verbatim}
%.ed
@@ -3003,22 +3053,17 @@ Debug mode only: extra items to add to initial inventory.
Value is the name of a text file containing a list of item names,
one per line, up to a maximum of 128 lines.
Each line is processed by the function that handles wishing.
%.pg
%.lp ""
Example:
%.sd
\begin{verbatim}
WIZKIT=~/wizkit.txt
WIZKIT=~/wizkit.txt
\end{verbatim}
%.ed
%.lp
\item[\bb{SOUNDDIR}]
Define the directory that contains the sound files.
See the ``Configuring User Sounds'' section.
%.lp
\item[\bb{SOUND}]
Define a sound mapping. See the ``Configuring User Sounds'' section.
\elist
%.lp ""
%.pg
Here is a short example of config file contents:
%.sd
@@ -4064,7 +4109,7 @@ Number of lines for traditional below-the-map status display.
Acceptable values are 2 and 3 (default is 2).
Curses and tty interfaces only.
%.lp
\item[\ib{term\verb+_+cols}\ \ {\it and}]"
\item[\ib{term\verb+_+cols} {\normalfont and}]
%.lp
\item[\ib{term\verb+_+rows}]
Curses interface only.
@@ -4275,12 +4320,14 @@ character in the pattern, specifically:
%.ei
%.ed
A ``never pickup'' rule takes precedence over an ``always pickup'' rule if
both match.
The {\it autopickup\verb+_+exception\/} rules are processed in the order
in which they appear in your config file, thus allowing a later rule to override
an earlier rule.
%.lp ""
Exceptions can be set with the `{\tt O}' command, but ones set that way will
not be preserved across saves and restores.
Exceptions can be set with the `{\tt O}' command, but because they are not included
in your config file, they won't be in effect if you save and then restore your game.
{\it autopickup\verb+_+exception\/} rules are not saved with the game.
\elist
%.lp "Here are some examples:"
@@ -4337,157 +4384,157 @@ Below are the special commands you can rebind. Some of them can be bound to
same keys with no problems, others are in the same ``context'', and if bound
to same keys, only one of those commands will be available. Special command
can only be bound to a single key.
\elist
%.pg
\blist{}
\blist{\itemindent 10mm \labelwidth 15mm \rightmargin 15mm}
%.lp
\item{\bb{count}}
\item[{\bb{count}}]
Prefix key to start a count, to repeat a command this many times.
With {\it number\verb+_+pad\/} only. Default is `{\tt n}'.
With {\it number\verb+_+pad\/} only. Default is~`{\tt n}'.
%.lp
\item{\bb{doinv}}
Show inventory. With {\it number\verb+_+pad\/} only. Default is `{\tt 0}'.
\item[{\bb{doinv}}]
Show inventory. With {\it number\verb+_+pad\/} only. Default is~`{\tt 0}'.
%.lp
\item{\bb{fight}}
Prefix key to force fight a direction. Default is `{\tt F}'.
\item[{\bb{fight}}]
Prefix key to force fight a direction. Default is~`{\tt F}'.
%.lp
\item{\bb{fight.numpad}}
\item[{\bb{fight.numpad}}]
Prefix key to force fight a direction. With {\it number\verb+_+pad\/} only.
Default is `{\tt -}'.
Default is~`{\tt -}'.
%.lp
\item{\bb{getdir.help}}
When asked for a direction, the key to show the help. Default is `{\tt ?}'.
\item[{\bb{getdir.help}}]
When asked for a direction, the key to show the help. Default is~`{\tt ?}'.
%.lp
\item{\bb{getdir.self}}
When asked for a direction, the key to target yourself. Default is `{\tt .}'.
\item[{\bb{getdir.self}}]
When asked for a direction, the key to target yourself. Default is~`{\tt .}'.
%.lp
\item{\bb{getdir.self2}}
When asked for a direction, the key to target yourself. Default is `{\tt s}'.
\item[{\bb{getdir.self2}}]
When asked for a direction, the key to target yourself. Default is~`{\tt s}'.
%.lp
\item{\bb{getpos.autodescribe}}
\item[{\bb{getpos.autodescribe}}]
When asked for a location, the key to toggle {\it autodescribe\/}.
Default is `{\tt \#}'.
Default is~`{\tt \#}'.
%.lp
\item{\bb{getpos.all.next}}
\item[{\bb{getpos.all.next}}]
When asked for a location, the key to go to next closest interesting thing.
Default is `{\tt a}'.
Default is~`{\tt a}'.
%.lp
\item{\bb{getpos.all.prev}}
\item[{\bb{getpos.all.prev}}]
When asked for a location, the key to go to previous closest interesting thing.
Default is `{\tt A}'.
Default is~`{\tt A}'.
%.lp
\item{\bb{getpos.door.next}}
\item[{\bb{getpos.door.next}}]
When asked for a location, the key to go to next closest door or doorway.
Default is `{\tt d}'.
Default is~`{\tt d}'.
%.lp
\item{\bb{getpos.door.prev}}
\item[{\bb{getpos.door.prev}}]
When asked for a location, the key to go to previous closest door or doorway.
Default is `{\tt D}'.
Default is~`{\tt D}'.
%.lp
\item{\bb{getpos.help}}
When asked for a location, the key to show help. Default is `{\tt ?}'.
\item[{\bb{getpos.help}}]
When asked for a location, the key to show help. Default is~`{\tt ?}'.
%.lp
\item{\bb{getpos.mon.next}}
\item[{\bb{getpos.mon.next}}]
When asked for a location, the key to go to next closest monster.
Default is `{\tt m}'.
Default is~`{\tt m}'.
%.lp
\item{\bb{getpos.mon.prev}}
\item[{\bb{getpos.mon.prev}}]
When asked for a location, the key to go to previous closest monster.
Default is `{\tt M}'.
Default is~`{\tt M}'.
%.lp
\item{\bb{getpos.obj.next}}
\item[{\bb{getpos.obj.next}}]
When asked for a location, the key to go to next closest object.
Default is `{\tt o}'.
Default is~`{\tt o}'.
%.lp
\item{\bb{getpos.obj.prev}}
\item[{\bb{getpos.obj.prev}}]
When asked for a location, the key to go to previous closest object.
Default is `{\tt O}'.
Default is~`{\tt O}'.
%.lp
\item{\bb{getpos.menu}}
\item[{\bb{getpos.menu}}]
When asked for a location, and using one of the next or previous keys to
cycle through targets, toggle showing a menu instead. Default is `{\tt !}'.
cycle through targets, toggle showing a menu instead. Default is~`{\tt !}'.
%.lp
\item{\bb{getpos.moveskip}}
\item[{\bb{getpos.moveskip}}]
When asked for a location, and using the shifted movement keys or
meta-digit keys to fast-move around, move by skipping the same glyphs
instead of by 8 units.
Default is `{\tt *}'.
Default is~`{\tt *}'.
%.lp
\item{\bb{getpos.filter}}
\item[{\bb{getpos.filter}}]
When asked for a location, change the filtering mode when using one of
the next or previous keys to cycle through targets. Toggles between no
filtering, in view only, and in the same area only. Default is `{\tt "}'.
filtering, in view only, and in the same area only. Default is~`{\tt "}'.
%.lp
\item{\bb{getpos.pick}}
\item[{\bb{getpos.pick}}]
When asked for a location, the key to choose the location, and possibly
ask for more info. Default is `{\tt .}'.
ask for more info. Default is~`{\tt .}'.
%.lp
\item{\bb{getpos.pick.once}}
\item[{\bb{getpos.pick.once}}]
When asked for a location, the key to choose the location, and skip
asking for more info. Default is `{\tt ,}'.
asking for more info. Default is~`{\tt ,}'.
%.lp
\item{\bb{getpos.pick.quick}}
\item[{\bb{getpos.pick.quick}}]
When asked for a location, the key to choose the location, skip asking
for more info, and exit the location asking loop. Default is `{\tt ;}'.
for more info, and exit the location asking loop. Default is~`{\tt ;}'.
%.lp
\item{\bb{getpos.pick.verbose}}
\item[{\bb{getpos.pick.verbose}}]
When asked for a location, the key to choose the location, and show more
info without asking. Default is `{\tt :}'.
info without asking. Default is~`{\tt :}'.
%.lp
\item{\bb{getpos.self}}
\item[{\bb{getpos.self}}]
When asked for a location, the key to go to your location.
Default is `{\tt @}'.
Default is~`{\tt @}'.
%.lp
\item{\bb{getpos.unexplored.next}}
\item[{\bb{getpos.unexplored.next}}]
When asked for a location, the key to go to next closest unexplored location.
Default is `{\tt x}'.
Default is~`{\tt x}'.
%.lp
\item{\bb{getpos.unexplored.prev}}
\item[{\bb{getpos.unexplored.prev}}]
When asked for a location, the key to go to previous closest unexplored
location. Default is `{\tt X}'.
location. Default is~`{\tt X}'.
%.lp
\item{\bb{getpos.valid}}
\item[{\bb{getpos.valid}}]
When asked for a location, the key to go to show valid target locations.
Default is `{\tt \$}'.
Default is~`{\tt \$}'.
%.lp
\item{\bb{getpos.valid.next}}
\item[{\bb{getpos.valid.next}}]
When asked for a location, the key to go to next closest valid location.
Default is `{\tt z}'.
Default is~`{\tt z}'.
%.lp
\item{\bb{getpos.valid.prev}}
\item[{\bb{getpos.valid.prev}}]
When asked for a location, the key to go to previous closest valid location.
Default is `{\tt Z}'.
Default is~`{\tt Z}'.
%.lp
\item{\bb{nopickup}}
Prefix key to move without picking up items. Default is `{\tt m}'.
\item[{\bb{nopickup}}]
Prefix key to move without picking up items. Default is~`{\tt m}'.
%.lp
\item{\bb{redraw}}
Key to redraw the screen. Default is `{\tt \^{}R}'.
\item[{\bb{redraw}}]
Key to redraw the screen. Default is~`{\tt \^{}R}'.
%.lp
\item{\bb{redraw.numpad}}
\item[{\bb{redraw.numpad}}]
Key to redraw the screen. With {\it number\verb+_+pad\/} only.
Default is `{\tt \^{}L}'.
Default is~`{\tt \^{}L}'.
%.lp
\item{\bb{repeat}}
Key to repeat previous command. Default is `{\tt \^{}A}'.
\item[{\bb{repeat}}]
Key to repeat previous command. Default is~`{\tt \^{}A}'.
%.lp
\item{\bb{reqmenu}}
Prefix key to request menu from some commands. Default is `{\tt m}'.
\item[{\bb{reqmenu}}]
Prefix key to request menu from some commands. Default is~`{\tt m}'.
%.lp
\item{\bb{run}}
Prefix key to run towards a direction. Default is `{\tt G}'.
\item[{\bb{run}}]
Prefix key to run towards a direction. Default is~`{\tt G}'.
%.lp
\item{\bb{run.nopickup}}
\item[{\bb{run.nopickup}}]
Prefix key to run towards a direction without picking up items on the way.
Default is `{\tt M}'.
Default is~`{\tt M}'.
%.lp
\item{\bb{run.numpad}}
\item[{\bb{run.numpad}}]
Prefix key to run towards a direction. With {\it number\verb+_+pad\/} only.
Default is `{\tt 5}'.
Default is~`{\tt 5}'.
%.lp
\item{\bb{rush}}
Prefix key to rush towards a direction. Default is `{\tt g}'.
\elist
\item[{\bb{rush}}]
Prefix key to rush towards a direction. Default is~`{\tt g}'.
\elist
@@ -4692,6 +4739,8 @@ combination with any of the other attributes.
To specify both a color and an attribute, use `\&' to combine them.
To specify multiple attributes, use `+' to combine those.
%.lp ""
For example: {\tt magenta\&inverse+dim}.
Note that the display may substitute or ignore particular attributes
@@ -4744,23 +4793,19 @@ percentage or absolute number threshold, or text to match against.
\blist{}
%.lp "*"
\item{\bb{}}
``{\tt always}'' will set the default attributes for that field.
\item[{\tt always}] will set the default attributes for that field.
%.lp "*"
\item{\bb{}}
``{\tt up}'' and ``{\tt down}'' set the field attributes for when the field
value changes upwards or downwards. This attribute times out after
{\tt statushilites} turns.
\item[{\tt up}{\normalfont, }{\tt down}] set the field attributes
for when the field value changes upwards or downwards. This attribute
times out after {\tt statushilites} turns.
%.lp "*"
\item{\bb{}}
``{\tt changed}'' sets the field attribute for when the field value
\item[{\tt changed}] sets the field attribute for when the field value
changes. This attribute times out after {\tt statushilites} turns.
(If a field has both a ``changed'' rule and an ``up'' or ``down''
rule which matches a change in the field's value,
the ``up'' or ``down'' one takes precedence.)
%.lp "*"
\item{\bb{}}
percentage sets the field attribute when the field value
\item[{\tt percentage}] sets the field attribute when the field value
matches the percentage.
It is specified as a number between 0 and 100, followed by `{\tt \%}'
(percent sign).
@@ -4769,10 +4814,26 @@ it also matches when value is below or above the percentage.
Use prefix `{\tt <}' or `{\tt >}' to match when strictly below or above.
(The numeric limit is relaxed slightly for those: {\tt >-1\%}
and {\tt <101\%} are allowed.)
Only valid for ``{\it hitpoints\/}'' and ``{\it power\/}'' fields.
Only four fields support percentage rules.
Percentages for ``{\it hitpoints\/}'' and ``{\it power\/}'' are
straightforward; they're based on the corresponding maximum field.
Percentage highlight rules are also allowed for ``{\it experience level\/}''
and ``{\it experience points\/}'' (valid when the
{\it showexp\/}
option is enabled).
For those, the percentage is based on the progress from the start of
the current experience level to the start of the next level.
So if level 2 starts at 20 points and level 3 starts at 40 points,
having 30 points is 50\% and 35 points is 75\%.
100\% is unattainable for experience because you'll gain a level and
the calculations will be reset for that new level, but a rule for
{\tt =100\%} is allowed and matches the special case of being
exactly 1 experience point short of the next level.
% (If you manage to reach level 30, there is no next level and the
% percentage will remain at 0\% no matter have many additional experience
% points you earn.)
%.lp "*"
\item{\bb{}}
absolute value sets the attribute when the field value
\item[{\tt absolute}] value sets the attribute when the field value
matches that number.
The number must be 0 or higher, except for ``{\it armor-class\/} which
allows negative values, and may optionally be preceded by `{\tt =}'.
@@ -4781,8 +4842,7 @@ it also matches when value is below or above.
If the prefix is `{\tt <}' or `{\tt >}', only match when strictly
above or below.
%.lp "*"
\item{\bb{}}
text match sets the attribute when the field value matches the text.
\item[{\tt text}] match sets the attribute when the field value matches the text.
Text matches can only be used for ``{\it alignment\/}'',
``{\it carrying-capacity\/}'', ``{\it hunger\/}'', ``{\it dungeon-level\/}'',
and ``{\it title\/}''.
@@ -4833,11 +4893,14 @@ Set the name of the symbol set that you want to load for display
on the rogue level.
\elist
You can also override one or more symbols using the {\it SYMBOLS\/} config
file option. Symbols are specified as {\it name:value\/} pairs. Note that
{\it NetHack\/} escape-processes the {\it value\/} string in conventional C
fashion. This means that `\verb+\+' is a prefix to take the following
character literally. Thus `\verb+\+' needs to be represented as `\verb+\\+'.
You can also override one or more symbols using the {\it SYMBOLS\/} and
{\it ROGUESYMBOLS\/} config file options.
Symbols are specified as {\it name:value\/} pairs.
Note that {\it NetHack\/} escape-processes
the {\it value\/} string in conventional C fashion.
This means that `\verb+\+' is a prefix to take the following character
literally.
Thus `\verb+\+' needs to be represented as `\verb+\\+'.
The special prefix
`\verb+\m+' switches on the meta bit in the symbol value, and the
`{\tt \^{}}' prefix causes the following character to be treated as a control
@@ -4975,7 +5038,8 @@ Default & Symbol Name & Description\\
\verb+@+ & S\verb+_+ss3 & (magic shield 3 of 4)\\
\verb@*@ & S\verb+_+ss4 & (magic shield 4 of 4)\\
\verb@^@ & S\verb+_+statue\verb+_+trap & (statue trap)\\
\verb@ @ & S\verb+_+stone & (dark part of a room)\\
\verb@ @ & S\verb+_+stone & (solid rock or unexplored terrain\\
& & \,or dark part of a room)\\
\verb@]@ & S\verb+_+strange\verb+_+obj & (strange object)\\
\verb@-@ & S\verb+_+sw\verb+_+bc & (swallow bottom center)\\
\verb@\@ & S\verb+_+sw\verb+_+bl & (swallow bottom left)\\
@@ -4990,7 +5054,7 @@ Default & Symbol Name & Description\\
\verb@\@ & S\verb+_+throne & (opulent throne)\\
\verb@-@ & S\verb+_+tlcorn & (top left corner)\\
\verb@|@ & S\verb+_+tlwall & (wall)\\
\verb@(@ & S\verb+_+tool & (useful item (pick-axe\, key\, lamp...))\\
\verb@(@ & S\verb+_+tool & (useful item (pick-axe, key, lamp...))\\
\verb@^@ & S\verb+_+trap\verb+_+door & (trap door)\\
\verb@t@ & S\verb+_+trapper & (trapper or lurker above)\\
\verb@-@ & S\verb+_+trcorn & (top right corner)\\
@@ -5019,24 +5083,29 @@ Default & Symbol Name & Description\\
\verb@w@ & S\verb+_+worm & (worm)\\
\verb@~@ & S\verb+_+worm\verb+_+tail & (long worm tail)\\
\verb@W@ & S\verb+_+wraith & (wraith)\\
\verb@x@ & S\verb+_+xan & (xan or other mythical/fantastic insect)\\
\verb@x@ & S\verb+_+xan & (xan or other extraordinary insect)\\
\verb@X@ & S\verb+_+xorn & (xorn)\\
\verb@Y@ & S\verb+_+yeti & (apelike creature)\\
\verb@Z@ & S\verb+_+zombie & (zombie)\\
\verb@z@ & S\verb+_+zruty & (zruty)
\verb@z@ & S\verb+_+zruty & (zruty)\\
\verb@ @ & S\verb+_+pet\verb+_+override & (any pet if ACCESSIBILITY=1 is set)\\
\verb@ @ & S\verb+_+player\verb+_+override & (hero if ACCESSIBILITY=1 is set)
\end{longtable}%
}
\hyphenation{sysconf} %no syllable breaks => don't hyphenate file name
%.pg
There is one additional class of object, described as ``strange object'',
which will occasionally be the shape taken on by mimics and shown as
`{\tt \verb+]+}'
for maps displayed as text characters.
Although the displayed character is the same as the default value for
`S\verb+_+mimic\verb+_+def', it is a different symbol and there is no
corresponding
`S\verb+_+strange\verb+_+object' symbol nor any way to assign an
alternate value for it.
Notes: several symbols in this table appear to be blank.
They are the space character, except for S\verb+_+pet\verb+_+override
and S\verb+_+player\verb+_+override which don't have any default value
and can only be used if enabled in the ``sysconf'' file.
%.pg
S\verb+_+rock is misleadingly named; rocks and stones use S\verb+_+gem.
Statues and boulders are the rock being referred to, but since
version 3.6.0, statues are displayed as the monster they depict.
So S\verb+_+rock is only used for boulders and not used at all if
overridden by the more specific S\verb+_+boulder.
%.pg
%.hn 2
@@ -5079,8 +5148,15 @@ is a symset called {\it NHAccess\/}. Selecting that symset in your
configuration file will cause the game to run in a manner accessible
to the blind. After you have gained some experience with the game
and with editing files, you may want to alter settings via {\it SYMBOLS=\/}
and {\it ROGUESYMBOLS=\/}
in your configuration file to better suit your preferences.
The most crucial settings to make the game accessible are:
See the previous section for the special symbols S\verb+_+pet\verb+_+override
to force a consistent symbol for all pets and S\verb+_+player\verb+_+override
to force a unique symbol for the player character if {\it accessibility\/}
is enabled in the {\it sysconf\/} file.
%.pg
The most crucial settings to make the game more accessible are:
%.pg
\blist{}
%.lp
@@ -5412,7 +5488,7 @@ with help from {\it Ross Brown}, {\it Mike Engber}, {\it David Hairston},
{\it Michael Hamel}, {\it Jonathan Handler}, {\it Johnny Lee},
{\it Tim Lennan}, {\it Rob Menke}, and {\it Andy Swanson},
developed {\it NetHack\/} 3.1 for the Macintosh, porting it for MPW.
Building on their development, {\it Barton House} added a Think C port.
Building on their development, {\it Bart House} added a Think C port.
%.pg
\medskip
@@ -5625,7 +5701,7 @@ maintained the port of {\it NetHack\/} 3.6 for Mac OSX.
%.pg
\medskip
{\it Michael Allison}, {\it David Cohrs}, {\it Barton House},
{\it Michael Allison}, {\it David Cohrs}, {\it Bart House},
{\it Pasi Kallinen}, {\it Alex Kompel}, {\it Dion Nicolaas},
{\it Derek S. Ray} and {\it Yitzhak Sapir}
maintained the port of {\it NetHack\/} 3.6 for Microsoft Windows.
@@ -5659,6 +5735,11 @@ time of release of 3.6.1 consisted of
In early May 2019, another 320 bug fixes along with some enhancements and
the adopted curses window port, were released as 3.6.2.
%.pg
\medskip
{\it Bart House}, who had contributed to the game as a porting team participant
for decades, joined the {\it NetHack Development Team} in late May 2019.
%.pg
\medskip
\nd The official {\it NetHack\/} web site is maintained by {\it Ken Lorber} at
@@ -5693,47 +5774,48 @@ of these miscreants in this, the list of Dungeoneers:
\begin{center}
\begin{tabular}{llll}
%TABLE_START
Adam Aronow & Janet Walz & Nathan Eady\\
Alex Kompel & Janne Salmij\"{a}rvi & Norm Meluch\\
Alex Smith & Jean-Christophe Collet & Olaf Seibert\\
Andreas Dorn & Jeff Bailey & Pasi Kallinen\\
Andy Church & Jochen Erwied & Pat Rankin\\
Andy Swanson & John Kallen & Patric Mueller\\
Adam Aronow & J. Ali Harlow & Mikko Juola\\
Alex Kompel & Janet Walz & Nathan Eady\\
Alex Smith & Janne Salmij\"{a}rvi & Norm Meluch\\
Andreas Dorn & Jean-Christophe Collet & Olaf Seibert\\
Andy Church & Jeff Bailey & Pasi Kallinen\\
Andy Swanson & Jochen Erwied & Pat Rankin\\
Andy Thomson & John Kallen & Patric Mueller\\
Ari Huttunen & John Rupley & Paul Winner\\
Barton House & John S. Bien & Pierre Martineau\\
Bart House & John S. Bien & Pierre Martineau\\
Benson I. Margulies & Johnny Lee & Ralf Brown\\
Bill Dyer & Jon W\{tte & Ray Chason\\
Boudewijn Waijers & Jonathan Handler & Richard Addison\\
Bruce Cox & Joshua Delahunty & Richard Beigel\\
Bruce Holloway & Karl Garrison & Richard P. Hughey\\
Bruce Mewborne & Keizo Yamamoto & Rob Menke\\
Carl Schelin & Ken Arnold & Robin Bandy\\
Chris Russo & Ken Arromdee & Robin Johnson\\
David Cohrs & Ken Lorber & Roderick Schertler\\
David Damerell & Ken Washikita & Roland McGrath\\
David Gentzel & Kevin Darcy & Ron Van Iwaarden\\
David Hairston & Kevin Hugo & Ronnen Miller\\
Dean Luick & Kevin Sitze & Ross Brown\\
Del Lamb & Kevin Smolkowski & Sascha Wostmann\\
Derek S. Ray & Kevin Sweet & Scott Bigham\\
Deron Meranda & Lars Huttar & Scott R. Turner\\
Dion Nicolaas & Leon Arnott & Sean Hunt\\
Dylan O'Donnell & M. Drew Streib & Stephen Spackman\\
Eric Backus & Malcolm Ryan & Stefan Thielscher\\
Eric Hendrickson & Mark Gooderum & Stephen White\\
Eric R. Smith & Mark Modrall & Steve Creps\\
Eric S. Raymond & Marvin Bressler & Steve Linhart\\
Erik Andersen & Matthew Day & Steve VanDevender\\
Frederick Roeber & Merlyn LeRoy & Teemu Suikki\\
Gil Neiger & Michael Allison & Tim Lennan\\
Greg Laskin & Michael Feir & Timo Hakulinen\\
Greg Olson & Michael Hamel & Tom Almy\\
Gregg Wonderly & Michael Sokolov & Tom West\\
Hao-yang Wang & Mike Engber & Warren Cheung\\
Helge Hafting & Mike Gallop & Warwick Allison\\
Irina Rempt-Drijfhout & Mike Passaretti & Yitzhak Sapir\\
Izchak Miller & Mike Stephenson\\
J. Ali Harlow & Mikko Juola
Carl Schelin & Keith Simpson & Robin Bandy\\
Chris Russo & Ken Arnold & Robin Johnson\\
David Cohrs & Ken Arromdee & Roderick Schertler\\
David Damerell & Ken Lorber & Roland McGrath\\
David Gentzel & Ken Washikita & Ron Van Iwaarden\\
David Hairston & Kevin Darcy & Ronnen Miller\\
Dean Luick & Kevin Hugo & Ross Brown\\
Del Lamb & Kevin Sitze & Sascha Wostmann\\
Derek S. Ray & Kevin Smolkowski & Scott Bigham\\
Deron Meranda & Kevin Sweet & Scott R. Turner\\
Dion Nicolaas & Lars Huttar & Sean Hunt\\
Dylan O'Donnell & Leon Arnott & Stephen Spackman\\
Eric Backus & M. Drew Streib & Stefan Thielscher\\
Eric Hendrickson & Malcolm Ryan & Stephen White\\
Eric R. Smith & Mark Gooderum & Steve Creps\\
Eric S. Raymond & Mark Modrall & Steve Linhart\\
Erik Andersen & Marvin Bressler & Steve VanDevender\\
Fredrik Ljungdahl & Matthew Day & Teemu Suikki\\
Frederick Roeber & Merlyn LeRoy & Tim Lennan\\
Gil Neiger & Michael Allison & Timo Hakulinen\\
Greg Laskin & Michael Feir & Tom Almy\\
Greg Olson & Michael Hamel & Tom West\\
Gregg Wonderly & Michael Sokolov & Warren Cheung\\
Hao-yang Wang & Mike Engber & Warwick Allison\\
Helge Hafting & Mike Gallop & Yitzhak Sapir\\
Irina Rempt-Drijfhout & Mike Passaretti\\
Izchak Miller & Mike Stephenson
%TABLE_END Do not delete this line.
\end{tabular}
\end{center}

File diff suppressed because it is too large Load Diff

View File

@@ -347,7 +347,8 @@
# How the map window is shown? Windows GUI only.
# possible map_mode options include: tiles, ascii4x6,
# ascii6x8, ascii8x8, ascii16x8, ascii7x12, ascii8x12, ascii16x12,
# ascii12x16, ascii10x18, fit_to_screen
# ascii12x16, ascii10x18, fit_to_screen, ascii_fit_to_screen,
# tiles_fit_to_screen
#OPTIONS=map_mode:tiles
# Define alternative file for the files, and the tile size

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.79 $ $NHDT-Date: 1561917056 2019/06/30 17:50:56 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.159 $ $NHDT-Date: 1572892926 2019/11/04 18:42:06 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -94,6 +94,129 @@ saving bones with 'perm_invent' On could result in "Bad fruit #N" warnings
update persistent inventory window immediately if 'sortpack' option is toggled
grammar bit for wizard mode final disclosure; attribute section could show
"You had N experience points, 1 more were needed to attain level X+1."
if an engulfer has any worn items, hero could pick them up from inside and
they wouldn't be unworn properly, eventually triggering warnings or
worse (Juiblex will wear an amulet if created with one; a shapechanger
might wear one and then turn into an engulfer)
kicking an altar ignored god's wrath if hero injured himself during the kick
detect unseen/secret door detection/^E failed to find monsters hiding under
objects and failed to find monsters hiding at trap locations
when farlook describes a monster at a visible spot as trapped, reveal the trap
fix theft when poly'd into nymph form; 3.6.2 change made that anger the victim
hero poly'd into nymph would steal gold along with other items
change wizard mode #panic to require "yes" if 'paranoid_confirm:quit' is set
add some additional validation checks when setting up a new timer (triggered
by an ancient source comment rather than by any observed problems)
if a chaotic monk or wizard gets crowned and is given a spellbook rather than
Stormbringer as the crowning gift, don't describe the hero as having
been "chosen to steal souls for [Arioch's] glory"
for multi-shot shooting by monsters, a typo checked hero's weapon for
compatibility with ammo when monster was wielding an elven bow
when a boulder was teleported, if it landed in a pit or trap door or hole its
former location wasn't updated to show that it wasn't there anymore
(noticed in Sokoban but not limited to there)
Terry Pratchett tribute, fix typo in passage #4 for Mort ("the" -> "they")
fix typo in end_of_input() present since 3.6.0 that would prevent compilation
for NOSAVEONHANGUP+INSURANCE configuration
when a status condition becomes fatal, keep it listed as an active condition
during disclosure and/or dumplog rather than having it already reset
when a shape-shifted sandestin was turned to stone, it died and reverted to
sandestin form with 0 HP; that confused known_hitum() because
sandestins are immune to stoning; net result was monster dying twice,
triggering "dmonsfree: N removed doesn't match N+1 pending" warning;
instead of dying, make it revert to sandestin form with full health
toggling perm_invent (where supported) while swallowed or underwater didn't
necessarily update the persistent inventory window right away
have 'O' update persistent inventory window if 'implicit_uncursed',
'menucolors', or 'guicolors' (curses) is toggled or if menucolors is
On and any menu color patterns are added or removed
'O's "set <option> to what?" could be used to force a buffer overflow
'O's response to bad 'statuslines' value said "must be 2 and 3" (at one point
it was "must be between 2 and 3", change it to "must be 2 or 3")
when spellcasting monster aimed at wrong spot due to not being able to see
invisible hero, feedback could be erroneous if hero could see self
[messages used 'if (Invisible)' test where 'if (Invis)' was meant]
prevent impossible when guard tries to relocate a monster on a full level
hallucination provides partial protection from passive gaze counterattack
against hero's attack; check for that before checking for free action
feedback from blessed potion of restore ability never reported "you feel great"
due to bad logic for not-unihorn case in unfixable_trouble_count()
when rubbing a ring on a touchstone, all types of rings were treated as if
they were gems; an iron ring made a cyan streak instead of yielding
"scritch, scritch" and a gold ring made a yellow streak rather than
a golden scratch
zapping self with wand of opening or spell of knock to escape from a trap
reported "you're released from <trap>" rather than "from the <trap>"
zapping self with wand of opening or spell of knock to escape from a pit trap
didn't reset vision limits--only spots adjacent to pit were visible
wielded aklys that returned to hero when thrown while inside an engulfer left
a stale 'thrownobj' pointer that triggered "add_to_minv: obj not free"
panic if same weapon killed any engulfer via melee from inside
uarmh null pointer dereference if a helm of opposite alignment came off due
to being polymorphed
verb tense was inappropriate in some messages when a mon/pet had a name
ending in 's'
orctown booty items should have been initialized in mksobj()
query_category() and whatdoes_help() had early returns which could each leave
a temporary window around, which in turn might eventually lead to a
panic due to lack of window slots [probably moot for unmodified 3.6.x;
the query one couldn't happen unless there is a coding error for
object classes somewhere and the help one couldn't happen unless the
installed data files left 'keyhelp' missing]
ball and chain could end up too far from punished hero (triggering b&c warning
for wizard mode with sanity checking active) when crawling out of
water failed because dropping stuff left hero overly encumbered and
hero was life saved--or player declined to die--if the hero got
teleported one step further from ball and chain's current location
avoid 'object lost' panic when polymorph causes loss of levitation boots or
water walking boots which dumps hero into water where emergency
disrobing/dropping in order to crawl out chooses to drop those boots
'sortloot's attempt to group musical instruments separately from other tools
didn't work as intended due to missing 'break' in sortloot_classify()
<shift><letter> running told player about engravings as they were being moved
over but buffered output didn't show it until hero stopped, so it
wasn't possible to tell where they were, unlike all other forms of
multiple movement; stop running if/when an engraving is reached
fix exploding land mine moving ball or chain and causing a sanity error
fix firing attached iron ball when swallowed causing a sanity error
fix vault guard impossible when he could not relocate in certain situation
fix temple priests or shopkeepers moving over other monsters
fix hero still hiding under a statue shattered by a land mine
fix helping a monster out of a pit addressing a deleted trap
fix launched rolling boulder code accessing deleted trap
fix monster stepping on a land mine code accessing deleted trap
revise 'O' to show symbol sets in the same order they appear in the symbols
file and order the sets in dat/symbols to yield a sensible symset menu
yellow dragons had green breath
partly eaten food in a bones level shop would show a non-zero sale price
while on the floor but not be placed on shop bill if picked up;
sale price should have been "no charge"
when non-empty container is dropped in shop and hero is asked whether to sell,
counting the subset of contents owned by hero vs those owned by shk
could obtain wrong answer because the container had been placed on
the floor but the 'unpaid' and 'no_charge' flags of its contents
hadn't been updated yet, they were still set for when it was carried
in a shop which doesn't care about tools: You drop a <box> containing 1 item.
<Shk> offers you <gold> for your items in your <box>. Sell them?
[plural 'items' and 'them' were including the box along with the one
item in it even though shk was only offering to buy its contents]
grammar correction for "That walking shoes is really a small mimic" when
applying a stethoscope
mimic immitating a slime mold would change fruit type when player assigned new
named fruit
parsing for the argument to 'scores' option was sloppy; "3a/o" (slash) and
"3a 1o" (space and digit one, not lowercase L) both worked but "3a o"
(just space) was supposed to but didn't
wizmakemap could leave genocided monsters on map
when entering Astral level, initial rendering of guardian angel didn't show
it as tame; noticeable if the level was entered with 'hilite_pet' On
fix a leashed pet polymorphed into a long worm staying leashed
prevent leashing unsolid monsters and monsters with no extremities
playing musical instruments gave feedback which ignored deafness
some other deafness-related message corrections
when dipping into holy/unholy water while blind (where the glow message is
suppressed), clear dipped item's bknown flag unless water potion's
bless/curse state is known
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
@@ -101,7 +224,7 @@ Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
elemental_clog() loop needed to guard against obliteration of the monster
that was trying to be placed
using ^G to create "hidden mimic" shouldn't have marked it as undetected since
mimics 'hide' be appearing to be something else; honor "hidden" for
mimics 'hide' by appearing to be something else; honor "hidden" for
'hides_under' creatures if/when created at location with object(s),
also for eels and other fish if/when created at water location
for wizard mode 'wizweight' option, glob weight wasn't shown unless glob had
@@ -110,10 +233,23 @@ fix for feedback when a monster plays a fire horn at self to cure green slime
ended up being used for zapping a wand of fire at self too
wizard mode ^I "not carrying anything" still claimed "not carrying anything"
if "(all items are already identified)" was given
monster throwing from stack of missiles (darts, daggers, spears) would cause
crash if it wasn't wielding a weapon (bug in multi-shot shooting fix)
surviving death while polymorphed would yield "You are a <foo>" without
terminating period
'mksobj failure' commit resulted in wrong corpse types for dying monsters
a recent intended sanity check fix inadvertently bypassed placing
a thrown chained ball back onto the floor
in symset:curses, symbol S_tree was accidentally set to horizontal line where
plus-or-minus sign was meant; also, change S_bars to not-equals sign
curses: sometimes the message window would show a blank line after a prompt
curses: the change to show map in columns 1..79 instead of 2..80 made the
highlight for '@' show up in the wrong place if clipped map had been
panned horizontally
curses+'perm_invent': menu coloring patterns which match ordinary inventory
menu might fail to match persistent inventory window because leading
article and space ("a ", "an ", "the ") is stripped off for brevity;
perform the pattern matching tests before stripping doname() prefix
tty: revert the attempt to fix "message line anomaly: if autodecribe feedback
wrapped to second line, the wrapped portion wasn't erased when a
shorter line was shown or getpos was dismissed" because it disrupted
@@ -127,6 +263,11 @@ EDIT_GETLIN: wizard mode 'monpolycontrol' was using the getlin() answer buffer
what kind of monster?" prompt, resulting in "<x,y>" as default answer
EDIT_GETLIN: when naming an object or a monster use the existing name, if
there is one, as the default answer
EDIT_GETLIN: using 'O' to set message types or menu colors was overloading the
answer buffer with other stuff, resulting in bogus default response
during repeat prompting
EDIT_GETLIN: for paranoid confirmation, if answer was neither "yes" nor "no",
don't supply the rejected answer as the default when retrying
curses: very tall menus tried to use selector characters a-z, A-Z, and 0-9,
but 0-9 should be reserved for counts and if the display was tall
enough for more than 62 entries, arbitrary ASCII punctuation got used
@@ -165,6 +306,20 @@ curses: when map window was clipped, the 'scrollbars' shown to indicate which
the 2nd and 3rd fifths (for example) were currently within view
curses: support users's setting for erase char and kill char when getting a
line of input with 'popup_dialog' Off (already supported for popup On)
curses: support erase char and kill char when choosing an extended command
curses: attempting to use ^H to rush left actually executed ^G (#wizgenesis)
curses: disable the attempt to support Ctrl+Left_click as an alternate way
to generate Right_click for systems with one-button mouse or trackpad;
the mouse data passed to nethack didn't match the curses (ncurses on
OSX 10.11) documentation and things didn't work as intended
curses: menu coloring required that both 'menucolors' and 'guicolor' be On;
for menus, override guicolor with more-specific menucolors
curses: support symset:DECgraphics for map display
curses: enable the 'use_inverse' boolean option (via wincap WC_INVERSE flag)
for extended monster detection and black&white lava; forced to True
to override default of False (for tty's benefit)
curses: force 'O' command's menus for 'symset' and 'roguesymset' options to
be wider so that fewer entries with set descriptions will wrap
curses+'perm_invent': entries were wrapping without any control; usually not
noticeable because next entry overwrote, but visible for final entry
when whole inventory fit within the available height; looked ok with
@@ -175,13 +330,19 @@ curses+'perm_invent': if too many entries for window height, last one which
curses+'perm_invent': top line was wasted (left blank) when borders Off
curses+'perm_invent': don't highlight inventory letters since nothing is
selectable from the menu comprising the persistent inventory window
curses+'perm_invent': could crash during restore if game was saved while
hero was swallowed (invalid u.ustuck pointer; suppressing attempts to
update persistent inventory window during restore hides the problem)
curses+'popup_dialog': show the text cursor at the end of prompts for single
character input
curses+DUMPLOG: pass along old messages from save file and quest message
summaries to dumplog message history
curses+EDIT_GETLIN: when a prompt's answer was preloaded, using ESC to discard
it deleted it from the answer buffer but didn't erase it from screen
curses+EDIT_GETLIN: the preceding fix handled an answer which spanned more
than one line but didn't remove the answer properly if the prompt
portion of prompt+answer spanned more than one line
msdos: code fixes to allow a build with curses and PDCurses
tty: re-do one optimization used when status conditions have all been removed
and remove another that tried to check whether condition text to be
displayed next was the same as the existing value; sometimes new
@@ -189,7 +350,16 @@ tty: re-do one optimization used when status conditions have all been removed
tty: take two, if/when autodecribe feedback wraps past top line, clear
continuation lines and redraw map if needed when top line is cleared
['exposed by git' section has an entry for reversal of 'take one']
tty: video attributes (bold, inverse, &c) for status highlighting sometimes
were scrambled
unix: sysconf CHECK_PLNAME=1 wouldn't work if attempt to obtain unix username
failed even though it didn't need that username
unix+curses: startup error only reset terminal for tty; one noticeable
example was answering 'n' to "Destroy old game?"
Windows: some startup error messages were not being delivered successfully
WindowsGUI: player selection dialog box layout was not being adjusted for DPI
Windows: signifiant changes to default directory choices. see documentation
for details.
General New Features
@@ -201,22 +371,48 @@ if you reach the edge of a level (relatively uncommon) and try to move off,
'attributes' disclosure at end of game includes number of experience points
that were needed to reach the next experience level (new for normal
play and explore mode; previously only shown for wizard mode)
report Friday-13th/phase-of-moon/time-of-day for ^X and final disclosure when
their values matter to game play (date and moon are from the start of
current session and are not dynamically updated as real time elapses;
night is a fixed range of hours using the computer's conception of
local time which could differ from player's if there are time zone or
system clock issues or simply seasonal variation based on latitude;
not new but needs to be documented somewhere other than spoilers...)
status highlighting using percentage rules now supported for experience level
and experience points; for both, percent is based on Exp progress from
the start of the current Xp level to the start of the next Xp level;
100% isn't possible so used as special case for next_Xp_lvl - 1 Exp_pt
wizard-mode: display effect to show where an unseen wished-for monster landed
for 'O's symset and roguesymset menus, mark current symbol set as preselected
curses: enable latent mouse support
curses: give menus and text windows a minimum size of 5x25 since tiny ones can
sometimes be overlooked when shown over old messages rather than map
curses+'perm_invent': since persistent inventory is narrow, strip off "a",
"an", or "the" prefix on inventory entries shown there so that a tiny
bit more of the interesting portion is visible
curses+'curses': change the curses map display to use new symbol set 'curses'
instead of hard-coded values; it attempts to show IBMgraphics-style
map using DECgraphics characters; DECgraphics can also be used as-is
fulfill a request from a blind player to have a unique overriding SYMBOL for
pets and for the player
ROGUESYMBOLS can be overridden in config files like SYMBOLS can
in symset:DECgraphics, set S_altar to 'pi' (was default '_'), S_bars to
not-equals sign (was 'pi')
NetHack Community Patches (or Variation) Included
-------------------------------------------------
add a couple of engraving suggestions in pull request #79
chasonr's faster method to write characters to msdos VGA in pull request #220
chasonr's msdos Makefile.gcc pdcurses build changes in pull request #243
autopickup exception priority change in pull request #226
Code Cleanup and Reorganization
-------------------------------
began to add some function caller BREADCRUMBS to aid debugging
flag existing occurrences of "You hear" as "Deaf-aware" to aid in
future maintenance

View File

@@ -38,4 +38,5 @@ Code Cleanup and Reorganization
-------------------------------
move majority of global variables into instance_globals struct g
move zeroobj, zeromonst, zeroany into const_globals struct cg
remove STATIC_DCL, STATIC_OVL, STATIC_VAR, STATIC_PTR

View File

@@ -8,9 +8,9 @@
.de NR
.ds Nr \\$2
..
.ND $NHDT-Date: 1524689549 2018/04/25 20:52:29 $
.NB $NHDT-Branch: NetHack-3.6.0 $
.NR $NHDT-Revision: 1.14 $
.ND $NHDT-Date: 1568509458 2019/09/15 01:04:18 $
.NB $NHDT-Branch: NetHack-3.6 $
.NR $NHDT-Revision: 1.16 $
.ds Na Robert Patrick Rankin
.SH NAME
nethack \- Exploring The Mazes of Menace
@@ -156,7 +156,7 @@ option). "rrr" are at least the first three letters of the character's
race (this can also be specified using a separate
.B \-r
.I race
option). "aaa" are at last the first three letters of the character's
option). "aaa" are at least the first three letters of the character's
alignment, and "ggg" are at least the first three letters of the
character's gender. Any of the parts of the suffix may be left out.
.PP