diff --git a/README b/README index d7698ffd4..a8746c435 100644 --- a/README +++ b/README @@ -16,9 +16,34 @@ the "new features" section. Below you will find some other general notes that were not considered spoilers: -* Over 30 refinements to the curses window port. -* Some refinements to status highlights. -* A couple of fixes to prevent potential game crashes. + * Fixed stale 'thrownobj' pointer for returning thrown aklys while engulfed + * Fixed uarmh null pointer dereference if a helm of opposite alignment came + * off due to being polymorphed + * Fixed 'object lost' panic when attempting to crawl of of the water during + * emergency disrobing/dropping + * Running now stops when moving over engravings so you can tell where they are + * Fixed detection of unseen/secret doors which failed to find monsters hiding + * under objects and failed to find monsters hiding at trap locations + * Ensured fatal status conditions made it to disclosure and/or dumplog + * Fixed "Bad fruit #N" warnings when saving bones with 'perm_invent' On + * Fixed it so yellow dragons don't have green breath + * Added several grammar corrections + * Improved recognition of deafness for several situations including the + * playing of musical instruments and bribing negotiations with demon lords + * Fixed ignoring of god's wrath when hero injured himself during altar kick + * Fixed several cases where persistent inventory window was not updated + * Fixed temple priests or shopkeepers moving over other monsters + * Ensured that thrown or kicked objects will end up in bones + * Made water go all the way to the edges of level on the Plane of Water + * Made clouds disrupt line of sight along the edges of the Plane of Air + * Improved and expanded usage of status highlighting percentage rules + * Added more than 15 improvements and fixes to the curses window port + * Added and documented significant changes to default directory choices for + * the Windows platform + * Improved the layout and display of the player selection dialog used on the + * Windows graphical implementation + * Allowed the msdos implementation to build with curses and PDCurses + * Over 100 other fixes and improvements - - - - - - - - - - - diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index 3735f6257..6bb97dc88 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -1,4 +1,4 @@ -.\" $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.325 $ $NHDT-Date: 1572735924 2019/11/02 23:05:24 $ +.\" $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.329 $ $NHDT-Date: 1573171723 2019/11/08 00:08:43 $ .\" .\" 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 "November 2, 2019 +.ds f2 "November 7, 2019 . .\" A note on some special characters: .\" \(lq = left double quote @@ -511,8 +511,8 @@ information, then let you pick another location; you to choose another location to examine; \(oq:\(cq will show additional info, if any, without asking for confirmation. When picking a location, -pressing the ESC key will terminate this command, or pressing \(oq?\(cq -will give a brief reminder about how it works. +pressing the ESC key will terminate this command, or pressing \(oq?\(cq will +give a brief reminder about how it works. .lp "" If the .op autodescribe @@ -2625,7 +2625,7 @@ 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 +On Windows, it is \(lq.nethackrc\(rq in the folder \(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. @@ -2775,26 +2775,38 @@ Example: .sd \f(CRWIZKIT=\(ti/wizkit.txt\fP \" \(ti == '~' .ed -.lp "" -.pg \" this would look better outdented -Here is a short example of config file contents: -.sd +. +.pg +\ \" dummy paragraph to force some separation [.BR isn't working as intended] +.pg +.SD n \" suppress indentation +Here is an example of configuration file contents: +.ED +.\" [conditional indentation; see description of NETHACKOPTIONS below] +.ds sD i \" assume proportional, indentation acceptable and preferred +.\" Check for fixed-width font; 'f' will be same width as 'F'. +.if (\w'f'p)=(\w'F'p) .ds sD n \" if same width, suppress indentation +.SD \*(sD \" string variable sD will expand to either 'i' or 'n' .ft CR \" set font to constant-width Roman # Set your character's role, race, gender, and alignment. OPTIONS=role:Valkyrie, race:Human, gender:female, align:lawful # # Turn on autopickup, set automatically picked up object types OPTIONS=autopickup,pickup_types:$"=/!?+ -# Show colored text if possible -OPTIONS=color -# Show lit corridors differently -OPTIONS=lit_corridor +# +# Map customization +OPTIONS=color # Display things in color if possible +OPTIONS=lit_corridor # Show lit corridors differently +OPTIONS=hilite_pet,hilite_pile +# Replace small punctuation (tick marks) with digits +SYMBOLS=S_boulder:0,S_golem:7 # # No startup splash screen. Windows GUI only. OPTIONS=!splash_screen .ft \" revert to previous font -.ed -.BR 2 +.ED +.pg +\ \" another dummy paragraph [.BR 2] .hn 2 Using the NETHACKOPTIONS environment variable .pg @@ -3195,7 +3207,7 @@ Valid settings are: .sd .si .CC 0 "disabled" -.CC 1 "enabled and make OS adjustments to support mouse use in the game" +.CC 1 "enabled and make OS adjustments to support mouse use" .CC 2 "like 1 but does not make any OS adjustments" .ei .ed @@ -3612,7 +3624,7 @@ used to customize and change the characteristics of the windowtype that you have chosen. Character strings that are too long may be truncated. Not all window ports will adjust for all settings listed -here. You can safely add any of these options to your config +here. You can safely add any of these options to your configuration file, and if the window port is capable of adjusting to suit your preferences, it will attempt to do so. If it can't it will silently ignore it. You can find out if an @@ -3808,7 +3820,8 @@ May be used to alter the value of keystrokes that the operating system returns to NetHack to help compensate for international keyboard issues. OPTIONS=subkeyvalue:171/92 will return 92 to NetHack, if 171 was originally going to be returned. -You can use multiple subkeyvalue statements in the config file if needed. +You can use multiple subkeyvalue statements in the configuration file +if needed. Cannot be set with the \(oqO\(cq command. .lp video Set the video mode used (PC NetHack only). @@ -3872,12 +3885,12 @@ character in the pattern, specifically: .ed 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. +rules are processed in the order in which they appear in your configuration +file, thus allowing a later rule to override an earlier rule. .lp "" 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. +included in your configuration 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... @@ -3920,8 +3933,8 @@ You can bind multiple keys to the same extended command. Unbind a key by using \(lqnothing\(rq as the extended command to bind to. You can also bind the \(lq\(rq, \(lq\(rq, and \(lq\(rq keys. .lp "Menu accelerator keys" -The menu control or accelerator keys can also be rebound via OPTIONS-lines -in the config file. +The menu control or accelerator keys can also be rebound via OPTIONS lines +in the configuration file. You cannot bind object symbols into menu accelerators. .lp "Special command keys" Below are the special commands you can rebind. @@ -4080,7 +4093,7 @@ Configuring Message Types You can change the way the messages are shown in the message area, when the message matches a user-defined pattern. .pg -In general, the config file entries to configure the message types +In general, the configuration file entries to describe the message types look like this: .si MSGTYPE=type "pattern" @@ -4120,16 +4133,17 @@ the user is prompted with more-prompt, and a message matching .\" historical trivia: "You displaced Fido." was the sort of message you .\" got when swapping places with your pet, but that was changed long ago... .lp "" -The order of the defined MSGTYPE-lines is important; the last matching +The order of the defined MSGTYPE lines is important; the last matching rule is used. Put the general case first, exceptions below them. .hn 2 Configuring Menu Colors .pg Some platforms allow you to define colors used in menu lines when the -line matches a user-defined pattern. At this time the tty, win32tty and -win32gui support this. +line matches a user-defined pattern. +At this time the tty, curses, win32tty and +win32gui interfaces support this. .pg -In general, the config file entries to configure the menu color mappings +In general, the configuration file entries to describe the menu color mappings look like this: .si .lp MENUCOLOR="pattern"=color&attribute @@ -4172,8 +4186,8 @@ in it will be shown in green color, lines with \(lq\ cursed\ \(rq will be shown in red, and lines with \(lq\ cursed\ \(rq followed by \(lq(being worn)\(rq on the same line will be shown in red color and underlined. -You can have multiple MENUCOLOR entries in your config file, -and the last MENUCOLOR-line in your config file that matches +You can have multiple MENUCOLOR entries in your configuration file, +and the last MENUCOLOR line that matches a menu line will be used for the line. .pg Note that if you intend to have one or more color specifications match @@ -4189,7 +4203,7 @@ that matches a user-defined pattern is delivered to the message window. At this time the Qt port and the win32tty and win32gui ports support the use of user sounds. .pg -The following config file entries are relevant to mapping user sounds +The following configuration file entries are relevant to mapping user sounds to messages: .lp SOUNDDIR The directory that houses the sound files to be played. @@ -4358,7 +4372,7 @@ is tested; the character's name is ignored. .ei .pg The in-game options menu can help you determine the correct syntax for a -config file. +configuration file. .pg The whole feature can be disabled by setting option .op statushilites @@ -4394,7 +4408,7 @@ 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 and -ROGUESYMBOLS config file options. +ROGUESYMBOLS configuration file options. Symbols are specified as name:value pairs. Note that NetHack escape-processes the value string in conventional C fashion. @@ -4604,11 +4618,13 @@ z S_zruty (zruty) .\" don't hyphenate file name across lines .hw sysconf .pg -Notes: several symbols in this table appear to be blank. +.lp "Notes:" +.lp "*" +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 +.lp "*" 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. @@ -5125,7 +5141,7 @@ The NetHack Development Team at the time of release of 3.6.1 consisted of \fBPat Rankin\fP, \fBDerek S. Ray\fP, \fBAlex Smith\fP, \fBMike Stephenson\fP, \fBJanet Walz\fP, and \fBPaul Winner\fP. .pg -In early May 2019, another 320 bug fixes along with some enhancements and +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 @@ -5143,7 +5159,7 @@ again to \fBM. Drew Streib\fP and \fBPasi Kallinen\fP for providing a public NetHack server at nethack.alt.org. Thanks to \fBKeith Simpson\fP and \fBAndy Thomson\fP for hardfought.org. Thanks to all those unnamed dungeoneers who invest their time and effort into annual -NetHack tournaments such as Junethack, The November NetHack Tournament +NetHack tournaments such as Junethack, The November NetHack Tournament and in days past, devnull.net (gone for now, but not forgotten). .pg .ce @@ -5210,3 +5226,4 @@ Izchak Miller Mike Stephenson .\"Amiga is a trademark of Commodore-Amiga, Inc .sm "Brand and product names are trademarks or registered trademarks \ of their respective holders." +.\"EOF diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index 1a8ad80cf..b07c09432 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{November 2, 2019} +\date{November 7, 2019} \maketitle @@ -2044,8 +2044,8 @@ 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 +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 @@ -2701,8 +2701,8 @@ 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 +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. @@ -2875,7 +2875,7 @@ directory. The file may not exist, but it is a normal ASCII text file and can be created with any text editor.\\ %.lp "" -On Windows, it is \mbox{``.nethackrc''} in the foler +On Windows, it is \mbox{``.nethackrc''} in the folder \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. @@ -2886,7 +2886,7 @@ 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 +On MS-DOS it is \mbox{``defaults.nh''} in the same folder as \mbox{{\it nethack.exe\/}}.\\ %.lp "" @@ -3065,7 +3065,7 @@ Example: %.lp "" %.pg -Here is a short example of config file contents: +Here is an example of configuration file contents: %.sd \begin{verbatim} # Set your character's role, race, gender, and alignment. @@ -3073,10 +3073,13 @@ Here is a short example of config file contents: # Turn on autopickup, set automatically picked up object types OPTIONS=autopickup,pickup_types:$"=/!?+ - # Show colored text if possible - OPTIONS=color - # Show lit corridors differently - OPTIONS=lit_corridor + + # Map customization + OPTIONS=color # Display things in color if possible + OPTIONS=lit_corridor # Show lit corridors differently + OPTIONS=hilite_pet,hilite_pile + # Replace small punctuation (tick marks) with digits + SYMBOLS=S_boulder:0,S_golem:7 # No startup splash screen. Windows GUI only. OPTIONS=!splash_screen @@ -3518,7 +3521,7 @@ Valid settings are: %.sd %.si {\tt 0} --- disabled\\ -{\tt 1} --- enabled and make OS adjustment to support mouse use in the game\\ +{\tt 1} --- enabled and make OS adjustment to support mouse use\\ {\tt 2} --- enabled like {\tt 1}, but does not make any OS adjustments\\ %.ei %.ed @@ -3997,7 +4000,7 @@ windowtype that you have chosen. Character strings that are too long may be truncated. Not all window ports will adjust for all settings listed here. You can safely add any of these options to your -config file, and if the window port is capable of adjusting +configuration file, and if the window port is capable of adjusting to suit your preferences, it will attempt to do so. If it can't it will silently ignore it. You can find out if an option is supported by the window port that you are currently @@ -4250,7 +4253,8 @@ returns to {\it NetHack\/} to help compensate for international keyboard issues. OPTIONS=subkeyvalue:171/92 will return 92 to {\it NetHack\/}, if 171 was originally going to be returned. -You can use multiple subkeyvalue statements in the config file if needed. +You can use multiple subkeyvalue statements in the configuration file +if needed. Cannot be set with the `{\tt O}' command. %.lp \item[\ib{video}] @@ -4320,13 +4324,14 @@ character in the pattern, specifically: %.ei %.ed -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. +The {\it autopickup\verb+_+exception\/} rules are processed in the order +in which they appear in your configuration file, thus allowing a +later rule to override an earlier rule. %.lp "" -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. +Exceptions can be set with the `{\tt O}' command, but because they are not +included in your configuration 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 @@ -4375,8 +4380,9 @@ the ``{\tt }'', ``{\tt }'', and ``{\tt }'' keys. %.lp "Menu accelerator keys" \item[\tb{Menu accelerator keys}] -The menu control or accelerator keys can also be rebound via OPTIONS-lines -in the config file. You cannot bind object symbols into menu accelerators. +The menu control or accelerator keys can also be rebound via OPTIONS lines +in the configuration file. +You cannot bind object symbols into menu accelerators. %.lp "Special command keys" \item[\tb{Special command keys}] @@ -4546,7 +4552,7 @@ You can change the way the messages are shown in the message area, when the message matches a user-defined pattern. %.pg -In general, the config file entries to configure the message types +In general, the configuration file entries to describe the message types look like this: \begin{verbatim} MSGTYPE=type "pattern" @@ -4584,7 +4590,7 @@ the user is prompted with more-prompt, and a message matching ``You displaced \verb+<+something\verb+>+'' is not shown at all. %.lp -The order of the defined MSGTYPE-lines is important; the last matching +The order of the defined MSGTYPE lines is important; the last matching rule is used. Put the general case first, exceptions below them. %.pg @@ -4595,11 +4601,12 @@ rule is used. Put the general case first, exceptions below them. %.pg Some platforms allow you to define colors used in menu lines when the -line matches a user-defined pattern. At this time the tty, win32tty and -win32gui support this. +line matches a user-defined pattern. +At this time the tty, curses, win32tty and +win32gui interfaces support this. %.pg -In general, the config file entries to configure the menu color mappings +In general, the configuration file entries to describe the menu color mappings look like this: \begin{verbatim} MENUCOLOR="pattern"=color&attribute @@ -4651,8 +4658,8 @@ specifies that any menu line with ``~blessed~'' contained in it will be shown in green color, lines with ``~cursed~'' will be shown in red, and lines with ``~cursed~'' followed by ``(being worn)'' on the same line will be shown in red color and underlined. -You can have multiple MENUCOLOR entries in your config file, -and the last MENUCOLOR-line in your config file that matches +You can have multiple MENUCOLOR entries in your configuration file, +and the last MENUCOLOR line that matches a menu line will be used for the line. %.pg @@ -4673,7 +4680,7 @@ At this time the Qt port and the win32tty and win32gui ports support the use of user sounds. %.pg -The following config file entries are relevant to mapping user sounds +The following configuration file entries are relevant to mapping user sounds to messages: \blist{} @@ -4852,7 +4859,7 @@ is tested; the character's name is ignored. \elist The in-game options menu can help you determine the correct syntax for a -config file. +configuration file. The whole feature can be disable by setting option {\it statushilites} to 0. @@ -4894,7 +4901,7 @@ on the rogue level. \elist You can also override one or more symbols using the {\it SYMBOLS\/} and -{\it ROGUESYMBOLS\/} config file options. +{\it ROGUESYMBOLS\/} configuration file options. Symbols are specified as {\it name:value\/} pairs. Note that {\it NetHack\/} escape-processes the {\it value\/} string in conventional C fashion. @@ -5094,13 +5101,16 @@ Default & Symbol Name & Description\\ } \hyphenation{sysconf} %no syllable breaks => don't hyphenate file name -%.pg -Notes: several symbols in this table appear to be blank. +%.lp +Notes: + +%.lp "*" +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 +%.lp "*" 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. @@ -5732,7 +5742,7 @@ time of release of 3.6.1 consisted of %.pg \medskip -In early May 2019, another 320 bug fixes along with some enhancements and +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 @@ -5758,7 +5768,7 @@ again to {\it M. Drew Streib} and {\it Pasi Kallinen} for providing a public NetHack server at nethack.alt.org. Thanks to {\it Keith Simpson} and {\it Andy Thomson} for hardfought.org. Thanks to all those unnamed dungeoneers who invest their time and effort into annual -{\it NetHack\/} tournaments such as {\it Junethack}, +{\it NetHack\/} tournaments such as {\it Junethack}, {\it The November NetHack Tournament} and in days past, {\it devnull.net\/} (gone for now, but not forgotten). \clearpage @@ -5767,7 +5777,7 @@ unnamed dungeoneers who invest their time and effort into annual \section*{Dungeoneers} %.pg \nd From time to time, some depraved individual out there in netland sends a -particularly intriguing modification to help out with the game. The +particularly intriguing modification to help out with the game. The {\it NetHack Development Team} sometimes makes note of the names of the worst of these miscreants in this, the list of Dungeoneers: %.sd @@ -5836,7 +5846,3 @@ Izchak Miller & Mike Stephenson %\end{flushleft} \end{document} - - - - diff --git a/doc/fixes36.3 b/doc/fixes36.3 index d9db05039..d8c5ae5ce 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.162 $ $NHDT-Date: 1573066356 2019/11/06 18:52:36 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.167 $ $NHDT-Date: 1573178084 2019/11/08 01:54:44 $ 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, @@ -152,9 +152,9 @@ zapping self with wand of opening or spell of knock to escape from a pit trap 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 +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 +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 @@ -176,7 +176,7 @@ avoid 'object lost' panic when polymorph causes loss of levitation boots or 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 + multiple movement; so 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 @@ -239,10 +239,12 @@ monster throwing from stack of missiles (darts, daggers, spears) would cause surviving death while polymorphed would yield "You are a " 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 +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 +percentage highlighting for Xp broke up/down/changed highlighting for it; + it was flagged as having gone up every time the percentage changed 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 @@ -284,10 +286,10 @@ curses: support EDIT_GETLIN (but like with tty, it's disabled by default) to (however, it's skipped if the 'popup_dialog' option is On) curses: when display windows get reconfigured (after setting align_status, align_message, statuslines, windowborders or due to external resize), - the message window was being refreshed with the oldest available N - messages rather than most recent N. [Still room for improvement; - when feasible it combines short lines, resulting in N messages on - fewer than N lines and leaving some of the available lines blank.] + the message window was being refreshed with most recent message and + the oldest available N-1 messages rather than next to most recent N-1. + [Still room for improvement when short lines are combined or long + ones are wrapped, where it still shows a subset of N original lines.] curses: plug memory leak when getting a line of input is cancelled by ESC curses: after requesting a line of input from player, next line of message window could end up being skipped @@ -298,10 +300,10 @@ curses: don't convert ^M (or or key) into ^J; both ^J and ^M cause the hero to try to move curses: draw map in screen columns 1..79 like tty, rather than in 2..80 curses: make text windows wider so that help feedback is more readable -curses: using ':' for search string matching to toggle menu items in a multple - page menu would highlight arbitrary items on the currently visible - page in sync with the lines that matching items had on other pages -curses: when map window was clipped, the 'scrollbars' shown to indicate which +curses: using ':' for toggling menu items which match a search string, in a + multi-page menu it would highlight arbitrary items on the currently + visible page in sync with lines that matched items have on other pages +curses: when map window was clipped, position bars shown to indicate which part of the map was in view didn't work as intended, always drawing "*--------------" for horizontal (and comparable '*' with multiple '|' underneath for vertical) when it meant to show "---******------" if @@ -315,8 +317,8 @@ curses: disable the attempt to support Ctrl+Left_click as an alternate way 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 + for menus, ignore 'guicolor' and honor more-specific 'menucolors' +curses: support symset:curses and 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) @@ -355,13 +357,14 @@ tty: take two, if/when autodecribe feedback wraps past top line, clear 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 + failed even though it didn't need that to check player character name unix+curses: startup error only reset terminal for tty; one noticeable example was answering 'n' to "Destroy old game?" +vms: update install.com to include overlooked file bigrm-10.lev in nh-data.dlb 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. +Windows: significant changes to default directory choices; see documentation + for details General New Features diff --git a/include/patchlevel.h b/include/patchlevel.h index 3d7d95580..b4794e590 100644 --- a/include/patchlevel.h +++ b/include/patchlevel.h @@ -37,12 +37,41 @@ /* Version 3.6.x */ /* Patch 3, - * + * + * Fixed stale 'thrownobj' pointer for returning thrown aklys while engulfed + * Fixed uarmh null pointer dereference if a helm of opposite alignment came + * off due to being polymorphed + * Fixed 'object lost' panic when attempting to crawl of of the water during + * emergency disrobing/dropping + * Running now stops when moving over engravings so you can tell where they are + * Fixed detection of unseen/secret doors which failed to find monsters hiding + * under objects and failed to find monsters hiding at trap locations + * Ensured fatal status conditions made it to disclosure and/or dumplog + * Fixed "Bad fruit #N" warnings when saving bones with 'perm_invent' On + * Fixed it so yellow dragons don't have green breath + * Added several grammar corrections + * Improved recognition of deafness for several situations including the + * playing of musical instruments and bribing negotiations with demon lords + * Fixed ignoring of god's wrath when hero injured himself during altar kick + * Fixed several cases where persistent inventory window was not updated + * Fixed temple priests or shopkeepers moving over other monsters + * Ensured that thrown or kicked objects will end up in bones + * Made water go all the way to the edges of level on the Plane of Water + * Made clouds disrupt line of sight along the edges of the Plane of Air + * Improved and expanded usage of status highlighting percentage rules + * Added more than 15 improvements and fixes to the curses window port + * Added and documented significant changes to default directory choices for + * the Windows platform + * Improved the layout and display of the player selection dialog used on the + * Windows graphical implementation + * Allowed the msdos implementation to build with curses and PDCurses + * Included over 100 other fixes and improvements as outlined in doc/fixes36.3 */ /* Patch 2, May 7, 2019 * - * Over 320 bug fixes including a couple of crash bug fixes + * Over 320 bug fixes including a couple of crash bug fixes as outlined in + * doc/fixes36.2 * More than 15 enhancements or improvements * Ensuring that unix Makefiles do not rely on features unique to gnu make * Improvements to hilite_status parsing in an effort to ensure that expected @@ -54,13 +83,15 @@ */ /* Patch 1, April 27, 2018 - * Over four hundred and seventy bug fixes and improvements. + * + * Over four hundred and seventy bug fixes and improvements as outlined in + * doc/fixes36.1 */ /* * NetHack 3.6.0, December 7, 2015 * - * Hundreds of bug fixes. + * Hundreds of bug fixes as outlined in doc/fixes36.0. * Some code reorganization. * Some new features. * Variations of some community patches rolled in. diff --git a/src/botl.c b/src/botl.c index 5dd6747a4..d5454aa82 100644 --- a/src/botl.c +++ b/src/botl.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 botl.c $NHDT-Date: 1562114350 2019/07/03 00:39:10 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.146 $ */ +/* NetHack 3.6 botl.c $NHDT-Date: 1573178085 2019/11/08 01:54:45 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.148 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2006. */ /* NetHack may be freely redistributed. See license for details. */ @@ -141,9 +141,9 @@ do_statusline2() if (Upolyd) Sprintf(expr, "HD:%d", mons[u.umonnum].mlevel); else if (flags.showexp) - Sprintf(expr, "Xp:%u/%-1ld", u.ulevel, u.uexp); + Sprintf(expr, "Xp:%d/%-1ld", u.ulevel, u.uexp); else - Sprintf(expr, "Exp:%u", u.ulevel); + Sprintf(expr, "Exp:%d", u.ulevel); xln = strlen(expr); /* time/move counter */ @@ -809,6 +809,12 @@ boolean *valsetlist; if (anytype != ANY_MASK32) { #ifdef STATUS_HILITES if (chg || *curr->val) { + /* if Xp percentage changed, we set 'chg' to 1 above; + reset that if the Xp value hasn't actually changed + or possibly went down rather than up (level loss) */ + if (chg == 1 && fld == BL_XP) + chg = compare_blstats(prev, curr); + curr->hilite_rule = get_hilite(idx, fld, (genericptr_t) &curr->a, chg, pc, &color); diff --git a/src/engrave.c b/src/engrave.c index c793c3bb1..42cd49aa4 100644 --- a/src/engrave.c +++ b/src/engrave.c @@ -794,7 +794,7 @@ doengrave() doblind = TRUE; } else Strcpy(post_engr_text, !Deaf - ? "You hear crackling!" + ? "You hear crackling!" /* Deaf-aware */ : "Your hair stands up!"); break; diff --git a/sys/vms/install.com b/sys/vms/install.com index a0b68ffc7..076d16db8 100755 --- a/sys/vms/install.com +++ b/sys/vms/install.com @@ -1,9 +1,9 @@ $ ! vms/install.com -- set up nethack 'playground' -$! $NHDT-Date: 1542388600 2018/11/16 17:16:40 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.11 $ +$! $NHDT-Date: 1573172443 2019/11/08 00:20:43 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.12 $ $! Copyright (c) 2016 by Robert Patrick Rankin $! NetHack may be freely redistributed. See license for details. $ ! -$ ! $NHDT-Date: 1542388600 2018/11/16 17:16:40 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.11 $ +$ ! $NHDT-Date: 1573172452 2019/11/08 00:20:52 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.12 $ $ ! $ ! Use vmsbuild.com to create nethack.exe, makedefs, and lev_comp *first*. $ !