diff --git a/dat/history b/dat/history index 70935071a..2922bcd9e 100644 --- a/dat/history +++ b/dat/history @@ -57,7 +57,7 @@ Spackman, Steve VanDevender, and Paul Winner, ported NetHack 3.1 to the PC. Jon W{tte and Hao-yang Wang, with help from Ross Brown, Mike Engber, David Hairston, Michael Hamel, Jonathan Handler, Johnny Lee, Tim Lennan, Rob Menke, and Andy Swanson developed NetHack 3.1 for the Macintosh, porting it for -MPW. Building on their development, Barton House added a Think C port. +MPW. Building on their development, Bart House added a Think C port. Timo Hakulinen ported NetHack 3.1 to OS/2. Eric Smith ported NetHack 3.1 to the Atari. Pat Rankin, with help from Joshua Delahunty, is responsible @@ -195,7 +195,7 @@ Unix flavors as well as maintaining the X11 interface. Ken Lorber, Haoyang Wang, Pat Rankin, and Dean Luick maintained the port of NetHack 3.6.1 for Mac OSX. -Michael Allison, David Cohrs, Barton House, Pasi Kallinen, Alex Kompel, +Michael Allison, David Cohrs, Bart House, Pasi Kallinen, Alex Kompel, Dion Nicolaas, Derek S. Ray and Yitzhak Sapir maintained the port of NetHack 3.6 for Microsoft Windows. @@ -217,6 +217,9 @@ Derek S. Ray, Alex Smith, Mike Stephenson, Janet Walz and Paul Winner. In early May 2019, another 320 bug fixes along with some enhancements and the adopted curses window port, were released as 3.6.2. +Bart House, who had contributed to the game as a porting team participant +for decades, joined the NetHack Development Team in late May 2019. + The official NetHack web site is maintained by Ken Lorber at http://www.nethack.org/. @@ -241,7 +244,7 @@ of these miscreants in this, the list of Dungeoneers: Andy Church Jochen Erwied Pat Rankin Andy Swanson 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 diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index 55bfcd5e2..8e18ec97d 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -1,4 +1,4 @@ -.\" $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.318 $ $NHDT-Date: 1572482202 2019/10/31 00:36:42 $ +.\" $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.319 $ $NHDT-Date: 1572525093 2019/10/31 12:31:33 $ .\" .\" 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.6 .ds f0 "\*(vr .ds f1 -.ds f2 "October 27, 2019 +.ds f2 "October 31, 2019 . .\" A note on some special characters: .\" \(lq = left double quote @@ -2683,7 +2683,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. @@ -4898,7 +4900,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 @@ -5057,7 +5059,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. @@ -5082,6 +5084,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/ . @@ -5117,7 +5122,7 @@ Andreas Dorn Jeff Bailey Pasi Kallinen Andy Church Jochen Erwied Pat Rankin Andy Swanson 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 diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index 4b9357e52..87cf04452 100644 --- a/doc/Guidebook.tex +++ b/doc/Guidebook.tex @@ -45,7 +45,7 @@ %.au \author{Original version - Eric S. Raymond\\ (Edited and expanded for 3.6 by Mike Stephenson and others)} -\date{October 22, 2019} +\date{October 31, 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.\\ @@ -2044,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 @@ -2326,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.) @@ -2558,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! @@ -2701,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 @@ -2895,9 +2895,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{} @@ -2912,7 +2916,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} @@ -2946,6 +2950,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. @@ -2955,11 +2962,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 @@ -2974,7 +2981,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} @@ -2987,7 +2994,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} @@ -3000,23 +3007,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{SYMBOLS},\bb{ROGUESYMBOLS}] -Override one or more symbols in the symbols files. +\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 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 @@ -3026,22 +3049,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 @@ -4366,158 +4384,158 @@ 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 20mm} %.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}'. %.lp -\item{\bb{doinv}} +\item[{\bb{doinv}}] Show inventory. With {\it number\verb+_+pad\/} only. Default is `{\tt 0}'. %.lp -\item{\bb{fight}} +\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 -}'. %.lp -\item{\bb{getdir.help}} +\item[{\bb{getdir.help}}] When asked for a direction, the key to show the help. Default is `{\tt ?}'. %.lp -\item{\bb{getdir.self}} +\item[{\bb{getdir.self}}] When asked for a direction, the key to target yourself. Default is `{\tt .}'. %.lp -\item{\bb{getdir.self2}} +\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 \#}'. %.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}'. %.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}'. %.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}'. %.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}'. %.lp -\item{\bb{getpos.help}} +\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}'. %.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}'. %.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}'. %.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}'. %.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 !}'. %.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 *}'. %.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 "}'. %.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 .}'. %.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 ,}'. %.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 ;}'. %.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 :}'. %.lp -\item{\bb{getpos.self}} +\item[{\bb{getpos.self}}] When asked for a location, the key to go to your location. 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}'. %.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}'. %.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 \$}'. %.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}'. %.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}'. %.lp -\item{\bb{nopickup}} +\item[{\bb{nopickup}}] Prefix key to move without picking up items. Default is `{\tt m}'. %.lp -\item{\bb{redraw}} +\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}'. %.lp -\item{\bb{repeat}} +\item[{\bb{repeat}}] Key to repeat previous command. Default is `{\tt \^{}A}'. %.lp -\item{\bb{reqmenu}} +\item[{\bb{reqmenu}}] Prefix key to request menu from some commands. Default is `{\tt m}'. %.lp -\item{\bb{run}} +\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}'. %.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}'. %.lp -\item{\bb{rush}} +\item[{\bb{rush}}] Prefix key to rush towards a direction. Default is `{\tt g}'. \elist -\elist %.hn 2 @@ -4721,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 @@ -4773,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 +\item[{\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. %.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). @@ -4817,8 +4833,7 @@ exactly 1 experience point short of the next level. % 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 =}'. @@ -4827,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\/}''. @@ -4880,11 +4894,13 @@ on the rogue level. \elist 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+\\+'. +{\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 @@ -5071,8 +5087,8 @@ Default & Symbol Name & Description\\ \verb@Y@ & S\verb+_+yeti & (apelike creature)\\ \verb@Z@ & S\verb+_+zombie & (zombie)\\ \verb@z@ & S\verb+_+zruty & (zruty)\\ -\verb@ @ & S\verb+_+pet\verb+_+override & (pet override if sysconf accessibility is set)\\ -\verb@ @ & S\verb+_+player\verb+_+override & (player override if sysconf accessibility is set) +\verb@ @ & S\verb+_+pet\verb+_+override & (any pet if sysconf accessibility is set)\\ +\verb@ @ & S\verb+_+player\verb+_+override & (hero if sysconf accessibility is set) \end{longtable}% } @@ -5439,7 +5455,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 @@ -5652,7 +5668,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. @@ -5686,6 +5702,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 @@ -5727,7 +5748,7 @@ Andreas Dorn & Jeff Bailey & Pasi Kallinen\\ Andy Church & Jochen Erwied & Pat Rankin\\ Andy Swanson & 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\\ diff --git a/doc/fixes36.3 b/doc/fixes36.3 index 5940e16aa..c95a46c4c 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.149 $ $NHDT-Date: 1572141706 2019/10/27 02:01:46 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.151 $ $NHDT-Date: 1572530225 2019/10/31 13:57:05 $ 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, @@ -208,6 +208,8 @@ 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 Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository diff --git a/include/pcconf.h b/include/pcconf.h index fb210b8ca..e3f764625 100644 --- a/include/pcconf.h +++ b/include/pcconf.h @@ -21,6 +21,11 @@ * Note: 3.6.x was not verified with Symantec C. */ +#if defined(MSDOS) +#define CONFIG_FILE "defaults.nh" +#define GUIDEBOOK_FILE "Guidebook.txt" +#endif + /* * The following options are somewhat configurable depending on * your compiler. diff --git a/src/minion.c b/src/minion.c index 85acbe51c..e752ddbce 100644 --- a/src/minion.c +++ b/src/minion.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 minion.c $NHDT-Date: 1561061319 2019/06/20 20:08:39 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.42 $ */ +/* NetHack 3.6 minion.c $NHDT-Date: 1572530226 2019/10/31 13:57:06 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.43 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2008. */ /* NetHack may be freely redistributed. See license for details. */ @@ -481,15 +481,18 @@ gain_guardian_angel() && (mtmp = mk_roamer(&mons[PM_ANGEL], u.ualign.type, mm.x, mm.y, TRUE)) != 0) { mtmp->mstrategy &= ~STRAT_APPEARMSG; + /* guardian angel -- the one case mtame doesn't imply an + * edog structure, so we don't want to call tamedog(). + * [Note: this predates mon->mextra which allows a monster + * to have both emin and edog at the same time.] + */ + mtmp->mtame = 10; + /* for 'hilite_pet'; after making tame, before next message */ + newsym(mtmp->mx, mtmp->my); if (!Blind) pline("An angel appears near you."); else You_feel("the presence of a friendly angel near you."); - /* guardian angel -- the one case mtame doesn't - * imply an edog structure, so we don't want to - * call tamedog(). - */ - mtmp->mtame = 10; /* make him strong enough vs. endgame foes */ mtmp->m_lev = rn1(8, 15); mtmp->mhp = mtmp->mhpmax = diff --git a/sys/winnt/Makefile.msc b/sys/winnt/Makefile.msc index 492153d1b..ad55dad0e 100644 --- a/sys/winnt/Makefile.msc +++ b/sys/winnt/Makefile.msc @@ -526,7 +526,8 @@ guilflags = $(lflags) -subsystem:windows,$(EXEVER) dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll # basic subsystem specific libraries, less the C Run-Time -baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib gdi32.lib +baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib gdi32.lib \ + ole32.lib Shell32.lib winlibs = $(baselibs) user32.lib comdlg32.lib winspool.lib # for Windows applications that use the C Run-Time libraries diff --git a/sys/winnt/windmain.c b/sys/winnt/windmain.c index f88fbaa37..2cfab8c91 100644 --- a/sys/winnt/windmain.c +++ b/sys/winnt/windmain.c @@ -21,15 +21,17 @@ extern LONG GetCurrentPackageFullName(UINT32 *packageFullNameLength, PWSTR packageFullName); extern HRESULT SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath); +#ifndef DEFINE_KNOWN_FOLDER #ifdef INITGUID #define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) const GUID DECLSPEC_SELECTANY name = { l, w1, w2,{ b1, b2, b3, b4, b5, b6, b7, b8 } } #else #define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) const GUID name -#endif +#endif /* INITGUID */ +#endif /* DEFINE_KNOWN_FOLDER */ DEFINE_KNOWN_FOLDER (FOLDERID_ProgramData, 0x62ab5d82, 0xfdc1, 0x4dc3, 0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97); DEFINE_KNOWN_FOLDER (FOLDERID_LocalAppData, 0xf1b32785, 0x6fba, 0x4fcf, 0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91); DEFINE_KNOWN_FOLDER (FOLDERID_Profile, 0x5e6c858f, 0x0e22, 0x4760, 0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73); -#endif +#endif /* __MINGW32__ */ #if 0 #include "wintty.h"