diff --git a/Files b/Files index 0e6674eec..732c5575c 100644 --- a/Files +++ b/Files @@ -87,7 +87,7 @@ wield.c windows.c wizard.c worm.c worn.c write.c zap.c sys/amiga: -(files for Amiga versions - untested for 3.6.1) +(files for Amiga versions - untested for 3.6.2) Build.ami Install.ami Makefile.agc Makefile.ami NetHack.cnf amidos.c amidos.p amifont.uu amifont8.uu amigst.c amii.hlp amimenu.c amirip.c amisnd.c amistack.c @@ -98,16 +98,16 @@ winfuncs.c winkey.c winmenu.c winproto.h winreq.c winstr.c xpm2iff.c sys/atari: -(files for Atari version - untested for 3.6.1) +(files for Atari version - untested for 3.6.2) Install.tos atarifnt.uue nethack.mnu setup.g tos.c unx2atar.sed sys/be: -(files for BeOS version - untested for 3.6.1) +(files for BeOS version - untested for 3.6.2) README bemain.c sys/mac: -(files for Macintosh versions) +(files for 68K Macintosh versions) Files.r Install.mw MacHelp NHDeflts NHrsrc.hqx NHsound.hqx News README carbon.plist dprintf.c maccurs.c macerrs.c macfile.c machelp.hqx macmain.c @@ -116,7 +116,7 @@ macwin.c mgetline.c mmodal.c mrecover.c mrecover.hqx mttymain.c sys/msdos: -(files for MSDOS version - untested for 3.6.1) +(files for MSDOS version - untested for 3.6.2) Install.dos Makefile.BC Makefile.GCC Makefile.MSC moveinit.pat msdos.c msdoshlp.txt ovlinit.c pckeys.c pctiles.c pctiles.h pcvideo.h portio.h schema1.BC schema2.BC @@ -126,17 +126,17 @@ vesa.h video.c vidtxt.c vidvesa.c vidvga.c nhico.uu nhpif.uu sys/os2: -(files for OS/2 version - untested for 3.6.1) +(files for OS/2 version - untested for 3.6.2) Install.os2 Makefile.os2 nhpmico.uu os2.c sys/share: -(files for MSDOS and OS/2 versions - untested for 3.6.1) +(files for MSDOS and OS/2 versions - untested for 3.6.2) Makefile.lib termcap.uu -(file for MSDOS, OS/2, NT, Amiga, and Atari versions - untested for 3.6.1) +(file for MSDOS, OS/2, NT, Amiga, and Atari versions - untested for 3.6.2) pcmain.c -(files for MSDOS, OS/2, NT, and Atari versions - untested for 3.6.1) +(files for MSDOS, OS/2, NT, and Atari versions - untested for 3.6.2) pcsys.c pcunix.c -(file for MSDOS, OS/2, and Atari versions - untested for 3.6.1) +(file for MSDOS, OS/2, and Atari versions - untested for 3.6.2) NetHack.cnf pctty.c (files for UNIX and Be versions) ioctl.c unixtty.c @@ -191,7 +191,7 @@ spec_lev.com sysconf vmsbuild.com vmsfiles.c vmsmail.c vmsmain.c vmsmisc.c vmstty.c vmsunix.c sys/wince: -(files for Windows CE and PocketPC - untested for 3.6.1) +(files for Windows CE and PocketPC - untested for 3.6.2) Install.ce bootstrp.mak celib.c cesetup.bat cesound.c defaults.nh keypad.uu menubar.uu mhaskyn.c mhaskyn.h mhcmd.c mhcmd.h mhcolor.c mhcolor.h mhdlg.c @@ -204,11 +204,11 @@ resource.h winMS.h winhack.c winhack.rc winhcksp.rc winmain.c sys/wince/ceinc: -(header files for Windows CE and PocketPC - untested for 3.6.1) +(header files for Windows CE and PocketPC - untested for 3.6.2) assert.h errno.h fcntl.h sys/wince/ceinc/sys: -(sys/stat.h for Windows CE and PocketPC - untested for 3.6.1) +(sys/stat.h for Windows CE and PocketPC - untested for 3.6.2) stat.h sys/winnt: @@ -257,13 +257,13 @@ win/chain: wc_chainin.c wc_chainout.c wc_trace.c win/gem: -(files for GEM versions - untested for 3.6.1) +(files for GEM versions - untested for 3.6.2) Install.gem bitmfile.c gem_rsc.uu gem_rso.uu gr_rect.c gr_rect.h load_img.c tile2img.c title.uu wingem.c wingem1.c xpm2img.c win/gnome: -(files for GNOME versions - untested for 3.6.1) +(files for GNOME versions - untested for 3.6.2) README gn_xpms.h gnaskstr.c gnaskstr.h gnbind.c gnbind.h gnglyph.c gnglyph.h gnmain.c gnmain.h gnmap.c gnmap.h gnmenu.c gnmenu.h gnmesg.c diff --git a/README b/README index 70545da1c..391b975fc 100644 --- a/README +++ b/README @@ -1,39 +1,23 @@ - NetHack 3.6.1 -- General information + NetHack 3.6.2 -- General information NetHack 3.6 is an enhancement to the dungeon exploration game NetHack, which is a distant descendent of Rogue and Hack, and a direct descendent of NetHack 3.4 as there was no NetHack 3.5 release. -NetHack 3.6.1 contains over 470 bug fixes to NetHack 3.6.0. The -file doc/fixes36.1 in the source distribution has a full list of them. -The text in there was written for the development team's own use and is -provided "as is", so please do not ask us to further explain the entries -in that file. Some entries might be considered "spoilers", particularly -in the "new features" section. +NetHack 3.6.2 contains a collection of more than 15 bug fixes to NetHack 3.6.1. +The file doc/fixes36.2 in the source distribution has a full list of them. The +text in there was written for the development team's own use and is provided +"as is", so please do not ask us to further explain the entries in that file. +Some entries might be considered "spoilers", particularly in the "new features" +section. Below you will find some other general notes that were not considered spoilers: -* additional Terry Pratchett tribute passages -* enhanced map position picking -* new status line conditions Stone Strngl Deaf Lev Fly Ride -* updated status hilites and several interface enhancements -* new paranoid_confirm settings -* a new extended command #kick -* the vanquished monsters list can be sorted during end of game disclosure -* fountains are bright blue -* travel accepts 'm' (request menu) prefix -* pressing a or A when cursor positioning shows menu of "interesting" features -* pressing z or Z when cursor positioning can cycle through valid locations -* add option herecmd_menu to make a mouse click on your character pop up a menu -* #adjust's behavior altered when collecting compatible stacks -* Some community patches that were included: - - Malcolm Ryan's improved tin opener - - Ray Chason's MSDOS port support for some VESA modes - - Ray Chason's Qt4 windowport - - Darshan Shaligram's pet ranged attack - - Jason Dorje Short's key rebinding - - Maxime Bacoux's new DUMPLOG -* updated database entries for several things +* Performance optimizations with tty including the ability to do per field + updating +* sys/winnt/nttty performance improvements mainly through the introduction + of a back buffer approach +* a couple of windows crash bug fixes - - - - - - - - - - - diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index 9b21196d7..8e84445b0 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -21,7 +21,7 @@ .ds vr "NetHack 3.6 .ds f0 "\*(vr .ds f1 -.ds f2 "April 27, 2018 +.ds f2 "May 16, 2018 . .\" labeled paragraph start (should be part of tmac.n, but I don't want to .\" make changes to that file) @@ -4181,7 +4181,7 @@ if your game is compiled with DUMPLOG. Allows the following placeholders: .PL %% literal '%' .PL %v -version (eg. "3.6.1-0") +version (eg. "3.6.2-0") .PL %u game UID .PL %t diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index 2cbc606bb..3859b4e68 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{April 27, 2018} +\date{May 16, 2018} \maketitle @@ -4851,7 +4851,7 @@ if your game is compiled with DUMPLOG. Allows the following placeholders: %.sd %.si {\tt \%\%} --- literal `{\tt \%}'\\ -{\tt \%v} --- version (eg. "3.6.1-0")\\ +{\tt \%v} --- version (eg. "3.6.2-0")\\ {\tt \%u} --- game UID\\ {\tt \%t} --- game start time, UNIX timestamp format\\ {\tt \%T} --- current time, UNIX timestamp format\\ diff --git a/doc/Guidebook.txt b/doc/Guidebook.txt index c95b18bd9..7aee6f7e3 100644 --- a/doc/Guidebook.txt +++ b/doc/Guidebook.txt @@ -126,7 +126,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -192,7 +192,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -258,7 +258,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -324,7 +324,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -390,7 +390,7 @@ friendly creatures. The lower this number is, the more - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -456,7 +456,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -522,7 +522,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -588,7 +588,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -654,7 +654,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -720,7 +720,7 @@ mouse support, the command is also invoked when a mouse- - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -786,7 +786,7 @@ scrolls, and so on), shop status (`u' for unpaid, in other - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -852,7 +852,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -918,7 +918,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -984,7 +984,7 @@ cept an item of armor and attempt to wear it.) - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1050,7 +1050,7 @@ (R)UNIX is a registered trademark of The Open Group. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1116,7 +1116,7 @@ enter a count prior to its letter. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1182,7 +1182,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1248,7 +1248,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1314,7 +1314,7 @@ and 'M-N'. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1380,7 +1380,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1446,7 +1446,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1512,7 +1512,7 @@ Throw something. Default key is 't'. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1578,7 +1578,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1644,7 +1644,7 @@ Show locations of special levels. Autocompletes. Wizard-mode - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1710,7 +1710,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1776,7 +1776,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1842,7 +1842,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1908,7 +1908,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -1974,7 +1974,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2040,7 +2040,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2106,7 +2106,7 @@ of that object to your load. The amount that you can carry - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2172,7 +2172,7 @@ as uncursed. They could just as easily have been described as - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2238,7 +2238,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2304,7 +2304,7 @@ and still hit a target is not an easy task. Rangers are among - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2370,7 +2370,7 @@ you feel more confident in your skills. At that point you can - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2436,7 +2436,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2502,7 +2502,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2568,7 +2568,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2634,7 +2634,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2700,7 +2700,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2766,7 +2766,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2832,7 +2832,7 @@ fungi (`F') are also considered to be vegetable matter. Certain - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2898,7 +2898,7 @@ of item; or fight with your hands and feet. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -2964,7 +2964,7 @@ ux, and Mac OS X it is ``.nethackrc'' in the user's home - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3030,7 +3030,7 @@ Defaults to HACKDIR, must be writeable. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3096,7 +3096,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3162,7 +3162,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3228,7 +3228,7 @@ (fire) command with an empty quiver (or quiver sack or have - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3294,7 +3294,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3360,7 +3360,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3426,7 +3426,7 @@ aren't interrupted with the ``More info?'' prompt, but it also - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3492,7 +3492,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3558,7 +3558,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3624,7 +3624,7 @@ Set your character's name (defaults to your user name). You - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3690,7 +3690,7 @@ instead of accepting any non-yes response as no - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3756,7 +3756,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3822,7 +3822,7 @@ screen on the rogue level. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3888,7 +3888,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -3954,7 +3954,7 @@ Put the ending display in a NetHack window instead of on stdout - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4020,7 +4020,7 @@ target. (default off) - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4086,7 +4086,7 @@ map window. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4152,7 +4152,7 @@ If NetHack can, it should pop up dialog boxes for input. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4218,7 +4218,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4284,7 +4284,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4350,7 +4350,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4416,7 +4416,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4482,7 +4482,7 @@ When asked for a location, the key to go to previous closest - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4548,7 +4548,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4614,7 +4614,7 @@ Prefix key to run towards a direction without picking up items - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4680,7 +4680,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4746,7 +4746,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4812,7 +4812,7 @@ tion flags: stone, slime, strngl, foodpois, termill, blind, - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4878,7 +4878,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -4944,7 +4944,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5010,7 +5010,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5076,7 +5076,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5142,7 +5142,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5208,7 +5208,7 @@ Load a symbol set for the rogue level that is appropriate for - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5274,7 +5274,7 @@ a game in wizard mode. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5332,7 +5332,7 @@ lows the following placeholders: %% - literal '%' - %v - version (eg. "3.6.1-0") + %v - version (eg. "3.6.2-0") %u - game UID %t - game start time, UNIX timestamp format %T - current time, UNIX timestamp format @@ -5340,7 +5340,7 @@ %D - current time, YYYYMMDDhhmmss format - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5406,7 +5406,7 @@ playmode:debug option. - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5472,7 +5472,7 @@ code for PC NetHack 3.0. Johnny Lee ported NetHack 3.0 to the - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5538,7 +5538,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5604,7 +5604,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5670,7 +5670,7 @@ Walz, and Paul Winner. In early 2015, ahead of the release of - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5736,7 +5736,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 @@ -5802,7 +5802,7 @@ - NetHack 3.6 April 27, 2018 + NetHack 3.6 May 16, 2018 diff --git a/doc/fixes36.2 b/doc/fixes36.2 index 49341e504..4547d4273 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -2,16 +2,17 @@ $NHDT-Branch: $:$NHDT-Revision: $ $NHDT-Date: $ This fixes36.2 file is here to capture information about updates in the 3.6.x lineage following the release of 3.6.1 in April 2018. Please note, however, -that another 3.6.x release is not anticipated, and most developer focus will -shift to the next major release. +that another 3.6.x release is not anticipated after 3.6.2, and most developer +focus will shift to the next major release. General Fixes and Modified Features ----------------------------------- last line of config file wasn't being heeded if it had no newline list MSGTYPE values shows empty strings as reported in H7140 -Killing Vlad while he was in bat/fog cloud/wolf form gave poorly - worded feedback when he reverted to vampire form +Killing Vlad while he was in bat/fog cloud/wolf form gave poorly worded + feedback when he reverted to vampire form spaces in hilite_status option title text field not working +numeric hilite_status values didn't allow negative numbers (needed for AC) Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository @@ -25,11 +26,11 @@ windows-gui: In nethackw, there could be conflicts between menu accelerators and an extra choice accelerator to fix H7132. windows-tty: Specify both width and height when creating font for width testing windows-tty: To counter lag problems that were occuring with the Win32 console - port, implement a console back buffer to reduce the number of calls made to - WriteConsoleOutputXXX -windows-tty: Additional changes to xputc_core() and early_raw_print() to manage - the cursor position correctly as that is needed to handle raw printing - correctly + port, implement a console back buffer to reduce the number of calls + made to WriteConsoleOutputXXX +windows-tty: Additional changes to xputc_core() and early_raw_print() to + manage the cursor position correctly as that is needed to handle + raw printing correctly windows-tty: Added check for when we might be running off the bottom of the screen when handling msmsg() windows-tty: Added runtime checks to keep cursor always within bounds @@ -38,7 +39,7 @@ windows-tty: Use nhraykey by default if the players keyboard layout is non-english as reported in H4216 windows-tty: We now support changing altkeyhandler in game windows: Added ntassert() mechanism for Windows based port use -tty: some optimizations for performance and per field rendering +tty: significant optimizations for performance and per field rendering General New Features diff --git a/include/config.h b/include/config.h index f2428075a..29c3e02cf 100644 --- a/include/config.h +++ b/include/config.h @@ -544,7 +544,7 @@ typedef unsigned char uchar; #define DUMPLOG_FILE "/tmp/nethack.%n.%d.log" /* DUMPLOG_FILE allows following placeholders: %% literal '%' - %v version (eg. "3.6.1-0") + %v version (eg. "3.6.2-0") %u game UID %t game start time, UNIX timestamp format %T current time, UNIX timestamp format diff --git a/include/flag.h b/include/flag.h index 277b42cfe..8d386decf 100644 --- a/include/flag.h +++ b/include/flag.h @@ -64,7 +64,7 @@ struct flag { * 'schar' to 'short int' instead of to 'char'. (Needed by pre-ANSI * systems that use unsigned characters without a way to force them * to be signed.) So, the type has been changed back to 'xchar' for - * 3.6.1. + * 3.6.x. * * TODO: change to 'char' (and move out of this block of booleans, * and get rid of these comments...) once 3.6.0 savefile compatibility diff --git a/src/botl.c b/src/botl.c index a191e1be8..2bd11768c 100644 --- a/src/botl.c +++ b/src/botl.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 botl.c $NHDT-Date: 1526427319 2018/05/15 23:35:19 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.92 $ */ +/* NetHack 3.6 botl.c $NHDT-Date: 1526597284 2018/05/17 22:48:04 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.93 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2006. */ /* NetHack may be freely redistributed. See license for details. */ @@ -892,7 +892,7 @@ status_finish() blstats[1][i].thresholds = blstats[0][i].thresholds; temp = next; } - } + } #endif /* STATUS_HILITES */ } } @@ -1317,7 +1317,7 @@ int newcolor; /* * get_hilite_color - * + * * Figures out, based on the value and the * direction it is moving, the color that the field * should be displayed in. @@ -1432,7 +1432,7 @@ int *colorptr; break; } hl = hl->next; - } + } } *colorptr = bestcolor; return; @@ -1515,17 +1515,23 @@ boolean from_configfile; return TRUE; } -/* is str in the format of "(<>)?[0-9]+%?" regex */ +/* is str in the format of "[<>]?-?[0-9]+%?" regex */ STATIC_OVL boolean is_ltgt_percentnumber(str) const char *str; { const char *s = str; - if (*s == '<' || *s == '>') s++; - while (digit(*s)) s++; - if (*s == '%') s++; - + if (*s == '<' || *s == '>') + s++; + if (*s == '-') + s++; + /* note: this doesn't match the regexp shown above since it doesn't + require at least one digit; but it's adequate for how it gets used */ + while (digit(*s)) + s++; + if (*s == '%') + s++; return (*s == '\0'); } @@ -1537,7 +1543,7 @@ const char *str; const char *s = str; while (*s) { - if (!index("<>0123456789%", *s)) + if (!index("<>-0123456789%", *s)) return FALSE; s++; } @@ -1763,12 +1769,12 @@ boolean from_configfile; up = TRUE; changed = TRUE; goto do_rel; - } else if (fld == BL_CAP + } else if (fld == BL_CAP && is_fld_arrayvalues(s[sidx], enc_stat, SLT_ENCUMBER, OVERLOADED+1, &kidx)) { txt = enc_stat[kidx]; txtval = TRUE; - goto do_rel; + goto do_rel; } else if (fld == BL_ALIGN && is_fld_arrayvalues(s[sidx], aligntxt, 0, 3, &kidx)) { txt = aligntxt[kidx]; @@ -1794,7 +1800,8 @@ boolean from_configfile; (void) stripchars(tmpbuf, "%<>", tmp); tmp = tmpbuf; while (*tmp) { - if (!index("0123456789", *tmp)) + if (!index("0123456789", *tmp) + && (*tmp != '-' || tmp > tmpbuf)) return FALSE; tmp++; } @@ -1842,8 +1849,7 @@ do_rel: else hilite.rel = LT_VALUE; - if (initblstats[fld].anytype == ANY_STR - && (percent || numeric)) { + if (initblstats[fld].anytype == ANY_STR && (percent || numeric)) { config_error_add("Field '%s' does not support numeric values", initblstats[fld].fldname); return FALSE; @@ -1901,7 +1907,7 @@ do_rel: if (c >= CLR_MAX || coloridx != -1) return FALSE; coloridx = c; - } + } } if (coloridx == -1) coloridx = NO_COLOR; @@ -2125,7 +2131,7 @@ int sidx; if (!success) config_error_add("Missing condition(s)"); return success; - } + } Strcpy(buf, tmp); conditions_bitmask = str2conditionbitmask(buf); @@ -2199,7 +2205,7 @@ int sidx; if (k >= CLR_MAX) return FALSE; coloridx = k; - } + } } /* set the bits in the appropriate member of the condition array according to color chosen as index */ @@ -2227,7 +2233,7 @@ clear_status_hilites() blstats[1][i].thresholds = blstats[0][i].thresholds; temp = next; } - } + } } } diff --git a/src/mapglyph.c b/src/mapglyph.c index 04ef068e9..719c8e175 100644 --- a/src/mapglyph.c +++ b/src/mapglyph.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 mapglyph.c $NHDT-Date: 1448175698 2015/11/22 07:01:38 $ $NHDT-Branch: master $:$NHDT-Revision: 1.40 $ */ +/* NetHack 3.6 mapglyph.c $NHDT-Date: 1526429201 2018/05/16 00:06:41 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.47 $ */ /* Copyright (c) David Cohrs, 1991 */ /* NetHack may be freely redistributed. See license for details. */ @@ -9,7 +9,12 @@ #include "color.h" #define HI_DOMESTIC CLR_WHITE /* monst.c */ -static int explcolors[] = { +#if !defined(TTY_GRAPHICS) +#define has_color(n) TRUE +#endif + +#ifdef TEXTCOLOR +static const int explcolors[] = { CLR_BLACK, /* dark */ CLR_GREEN, /* noxious */ CLR_BROWN, /* muddy */ @@ -19,11 +24,6 @@ static int explcolors[] = { CLR_WHITE, /* frosty */ }; -#if !defined(TTY_GRAPHICS) -#define has_color(n) TRUE -#endif - -#ifdef TEXTCOLOR #define zap_color(n) color = iflags.use_color ? zapcolors[n] : NO_COLOR #define cmap_color(n) color = iflags.use_color ? defsyms[n].color : NO_COLOR #define obj_color(n) color = iflags.use_color ? objects[n].oc_color : NO_COLOR @@ -233,6 +233,8 @@ unsigned *ospecial; *ospecial = special; #ifdef TEXTCOLOR *ocolor = color; +#else + nhUse(ocolor); #endif return idx; } @@ -241,7 +243,7 @@ char * encglyph(glyph) int glyph; { - static char encbuf[20]; + static char encbuf[20]; /* 10+1 would suffice */ Sprintf(encbuf, "\\G%04X%04X", context.rndencode, glyph); return encbuf; @@ -338,6 +340,7 @@ int attr; const char *str; { char buf[BUFSZ]; + /* now send it to the normal putstr */ putstr(window, attr, decode_mixed(buf, str)); } diff --git a/src/windows.c b/src/windows.c index 7a62582e6..9a82325d9 100644 --- a/src/windows.c +++ b/src/windows.c @@ -1091,7 +1091,7 @@ char *buf; case 'D': /* current time, YYYYMMDDhhmmss */ Sprintf(tmpbuf, "%08ld%06ld", yyyymmdd(now), hhmmss(now)); break; - case 'v': /* version, eg. "3.6.1-0" */ + case 'v': /* version, eg. "3.6.2-0" */ Sprintf(tmpbuf, "%s", version_string(verbuf)); break; case 'u': /* UID */ diff --git a/sys/unix/README.linux b/sys/unix/README.linux index 01b79265d..ec28d1000 100644 --- a/sys/unix/README.linux +++ b/sys/unix/README.linux @@ -26,8 +26,8 @@ home directory you might perform these steps. If you have old record and logfile entries from a previous NetHack version, you might want to save copies before they get overwritten by the new empty -files; old saved games and bones files from 3.6.0 should work with 3.6.1 -but even older saved games and bones files from 3.4.3 will not. +files; old saved games and bones files from 3.6.0 and 3.6.1 should work +with 3.6.2 but even older saved games and bones files from 3.4.3 will not. If you are installing from the RPM, there is no need to save the old record and logfile; they are automatically preserved. diff --git a/sys/unix/sysconf b/sys/unix/sysconf index 610653837..debb2de5b 100644 --- a/sys/unix/sysconf +++ b/sys/unix/sysconf @@ -90,7 +90,7 @@ MAXPLAYERS=10 # Only available if NetHack was compiled with DUMPLOG # Allows following placeholders: # %% literal '%' -# %v version (eg. "3.6.1-0") +# %v version (eg. "3.6.2-0") # %u game UID # %t game start time, UNIX timestamp format # %T current time, UNIX timestamp format diff --git a/sys/vms/Install.vms b/sys/vms/Install.vms index e917aefdf..dab086cda 100644 --- a/sys/vms/Install.vms +++ b/sys/vms/Install.vms @@ -1,4 +1,4 @@ - Instructions for Building and Installing NetHack 3.6.1 + Instructions for Building and Installing NetHack 3.6.2 on a VMS (aka OpenVMS) system ========================================= @@ -137,8 +137,8 @@ Notes: 0. Version 3.5.x was never publicly released. 1. Save files and bones files from 3.4.x and earlier versions - will not work with 3.6.1, but save files and bones file from 3.6.0 - should work. The scoreboard file (RECORD) from 3.6.0 or + will not work with 3.6.2, but save files and bones file from 3.6.0 + and 3.6.1 should work. The scoreboard file (RECORD) from 3.6.0 or 3.4.x or 3.3.x will work. 2. To specify user-preference options in your environment, define the diff --git a/sys/vms/Makefile.src b/sys/vms/Makefile.src index 1fee34ae7..e3cabd5c7 100644 --- a/sys/vms/Makefile.src +++ b/sys/vms/Makefile.src @@ -99,7 +99,7 @@ RANDOBJ = random.obj # Other things that have to be reconfigured are in vmsconf.h, # and config.h -VERSION = 3.6.1 +VERSION = 3.6.2 MAKEDEFS = $(UTL)makedefs.exe; diff --git a/sys/vms/vmsbuild.com b/sys/vms/vmsbuild.com index 2bc8176db..42fd104f2 100755 --- a/sys/vms/vmsbuild.com +++ b/sys/vms/vmsbuild.com @@ -1,5 +1,5 @@ $ ! vms/vmsbuild.com -- compile and link NetHack 3.6.* [pr] -$ version_number = "3.6.1" +$ version_number = "3.6.2" $ ! $NHDT-Date: 1524689429 2018/04/25 20:50:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.17 $ # Copyright (c) 2018 by Robert Patrick Rankin # NetHack may be freely redistributed. See license for details. diff --git a/sys/wince/winhack.rc b/sys/wince/winhack.rc index 79302066a..10a0a03f5 100644 --- a/sys/wince/winhack.rc +++ b/sys/wince/winhack.rc @@ -285,7 +285,7 @@ END VS_VERSION_INFO VERSIONINFO FILEVERSION 3,6,1,0 - PRODUCTVERSION 3,6,1,0 + PRODUCTVERSION 3,6,2,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x9L @@ -300,17 +300,17 @@ BEGIN BEGIN BLOCK "040904b0" BEGIN - VALUE "Comments", "NetHack 3.6.1 for Windows CE\0" + VALUE "Comments", "NetHack 3.6.2 for Windows CE\0" VALUE "CompanyName", " \0" VALUE "FileDescription", "nethackm\0" - VALUE "FileVersion", "3, 6, 1, 0\0" + VALUE "FileVersion", "3, 6, 2, 0\0" VALUE "InternalName", "nethackm\0" VALUE "LegalCopyright", "Copyright © 1985-2018\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "nethackm.exe\0" VALUE "PrivateBuild", "090914\0" VALUE "ProductName", "NetHack\0" - VALUE "ProductVersion", "3, 6, 1, 0\0" + VALUE "ProductVersion", "3, 6, 2, 0\0" VALUE "SpecialBuild", "\0" END END diff --git a/sys/wince/winhcksp.rc b/sys/wince/winhcksp.rc index 094c4f294..2ac6e1710 100644 --- a/sys/wince/winhcksp.rc +++ b/sys/wince/winhcksp.rc @@ -276,17 +276,17 @@ BEGIN BEGIN BLOCK "040904b0" BEGIN - VALUE "Comments", "NetHack 3.6.1 for Smartphone 2002\0" + VALUE "Comments", "NetHack 3.6.2 for Smartphone 2002\0" VALUE "CompanyName", " \0" VALUE "FileDescription", "nethackm\0" - VALUE "FileVersion", "3, 6, 1, 0\0" + VALUE "FileVersion", "3, 6, 2, 0\0" VALUE "InternalName", "nethackm\0" VALUE "LegalCopyright", "Copyright © 1985-2018\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "nethackm.exe\0" VALUE "PrivateBuild", "090914\0" VALUE "ProductName", "NetHack For Smartphone\0" - VALUE "ProductVersion", "3, 6, 1, 0\0" + VALUE "ProductVersion", "3, 6, 2, 0\0" VALUE "SpecialBuild", "\0" END END diff --git a/sys/winnt/Install.nt b/sys/winnt/Install.nt index 3551e4376..dd278e0a4 100644 --- a/sys/winnt/Install.nt +++ b/sys/winnt/Install.nt @@ -16,7 +16,7 @@ contributed the port. Alex Kompel, Dion Nicolaas, Yitzhak Sapir, Derek S. Ray, Michael Allison, Pasi Kallinen, Bart House, and Janet Walz contributed to the maintainance -of the tty and graphical windows versions of NetHack 3.6.1. +of the tty and graphical windows versions of NetHack 3.6.2. You can build a TTY version of NetHack and a Windows Graphical version. You can use one of the following build environments: @@ -106,7 +106,7 @@ a 32-bit x86 version, or a 64-bit x64 version. The default Makefile is set up for a 32-bit x86 version, but that's only because it will run on the most number of existing Windows environments. -NetHack's save files and bones files in the 3.6.1 release have not +NetHack's save files and bones files in the 3.6.2 release have not yet evolved enough to allow them to interchange between the 32-bit version and the 64-bit version (or between different platforms). Hopefully that will change in an upcoming release. diff --git a/sys/winnt/console.rc b/sys/winnt/console.rc index 1c35e16bd..0d9733971 100644 --- a/sys/winnt/console.rc +++ b/sys/winnt/console.rc @@ -12,8 +12,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,6,1,0 - PRODUCTVERSION 3,6,1,0 + FILEVERSION 3,6,2,0 + PRODUCTVERSION 3,6,2,0 FILEFLAGSMASK 0x1fL #ifdef _DEBUG FILEFLAGS 0x9L @@ -29,13 +29,13 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "NetHack for Windows - TTY Interface\0" - VALUE "FileVersion", "3.6.1\0" + VALUE "FileVersion", "3.6.2\0" VALUE "InternalName", "NetHack\0" VALUE "LegalCopyright", "Copyright (C) 1985 - 2018. By Stichting Mathematisch Centrum and M. Stephenson. See license for details.\0" VALUE "OriginalFilename", "NetHack.exe\0" VALUE "PrivateBuild", "050102\0" VALUE "ProductName", "NetHack\0" - VALUE "ProductVersion", "3.6.1\0" + VALUE "ProductVersion", "3.6.2\0" END END BLOCK "VarFileInfo" diff --git a/sys/winnt/nethack.def b/sys/winnt/nethack.def index e163eaf5e..9d3a5cceb 100644 --- a/sys/winnt/nethack.def +++ b/sys/winnt/nethack.def @@ -1,5 +1,5 @@ NAME NETHACK -DESCRIPTION 'NetHack 3.6.1 for Windows NT' +DESCRIPTION 'NetHack 3.6.2 for Windows' EXETYPE WINDOWS STUB 'WINSTUB.EXE' CODE PRELOAD MOVEABLE DISCARDABLE diff --git a/sys/winnt/sysconf b/sys/winnt/sysconf index 407aba29f..283a55df4 100644 --- a/sys/winnt/sysconf +++ b/sys/winnt/sysconf @@ -24,7 +24,7 @@ WIZARDS=* # Only available if NetHack was compiled with DUMPLOG # Allows following placeholders: # %% literal '%' -# %v version (eg. "3.6.1-0") +# %v version (eg. "3.6.2-0") # %u game UID # %t game start time, UNIX timestamp format # %T current time, UNIX timestamp format diff --git a/util/makedefs.c b/util/makedefs.c index 211589829..11ce64d12 100644 --- a/util/makedefs.c +++ b/util/makedefs.c @@ -1206,18 +1206,22 @@ char *outbuf; const char *build_date; { char subbuf[64], versbuf[64]; + char betabuf[64]; + +#ifdef BETA + Strcpy(betabuf, " Beta"); +#else + betabuf[0] = '\0'; +#endif subbuf[0] = '\0'; #ifdef PORT_SUB_ID subbuf[0] = ' '; Strcpy(&subbuf[1], PORT_SUB_ID); #endif -#ifdef BETA - Strcat(subbuf, " Beta"); -#endif - Sprintf(outbuf, "%s NetHack%s Version %s - last %s %s.", PORT_ID, - subbuf, version_string(versbuf, "."), + Sprintf(outbuf, "%s NetHack%s Version %s%s - last %s %s.", PORT_ID, + subbuf, version_string(versbuf, "."), betabuf, date_via_env ? "revision" : "build", build_date); return outbuf; } diff --git a/win/X11/winX.c b/win/X11/winX.c index 7c3c600f5..318fb4e41 100644 --- a/win/X11/winX.c +++ b/win/X11/winX.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 winX.c $NHDT-Date: 1507846693 2017/10/12 22:18:13 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.44 $ */ +/* NetHack 3.6 winX.c $NHDT-Date: 1526429314 2018/05/16 00:08:34 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.50 $ */ /* Copyright (c) Dean Luick, 1992 */ /* NetHack may be freely redistributed. See license for details. */ @@ -138,8 +138,10 @@ struct window_procs X11_procs = { * Local functions. */ static winid NDECL(find_free_window); +#ifdef TEXTCOLOR static void FDECL(nhFreePixel, (XtAppContext, XrmValuePtr, XtPointer, XrmValuePtr, Cardinal *)); +#endif static boolean FDECL(new_resource_macro, (String, unsigned)); static void NDECL(load_default_resources); static void NDECL(release_default_resources); @@ -427,6 +429,7 @@ XtPointer *closure_ret; } } +#ifdef TEXTCOLOR /* ARGSUSED */ static void nhFreePixel(app, toVal, closure, args, num_args) @@ -454,6 +457,7 @@ Cardinal *num_args; (unsigned long *) toVal->addr, 1, (unsigned long) 0); } } +#endif /*TEXTCOLOR*/ /* [ALI] Utility function to ask Xaw for font height, since the previous * assumption of ascent + descent is not always valid. diff --git a/win/macosx/NetHackGuidebook.applescript b/win/macosx/NetHackGuidebook.applescript index 28879c010..e91d12e03 100644 --- a/win/macosx/NetHackGuidebook.applescript +++ b/win/macosx/NetHackGuidebook.applescript @@ -1,5 +1,5 @@ #!/usr/bin/osascript -# NetHack 3.6.1 NetHackGuidebook.applescript $NHDT-Date: 1524684596 2018/04/25 19:29:56 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.8 $ +# NetHack 3.6.2 NetHackGuidebook.applescript $NHDT-Date: 1524684596 2018/04/25 19:29:56 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.8 $ # Copyright (c) Kenneth Lorber, Kensington, Maryland, 2011 # NetHack may be freely redistributed. See license for details. diff --git a/win/macosx/NetHackTerm.applescript b/win/macosx/NetHackTerm.applescript index f1d1eb122..a4936d021 100644 --- a/win/macosx/NetHackTerm.applescript +++ b/win/macosx/NetHackTerm.applescript @@ -1,5 +1,5 @@ #!/usr/bin/osascript -# NetHack 3.6.1 NetHackTerm.applescript $NHDT-Date: 1524684597 2018/04/25 19:29:57 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.8 $ +# NetHack 3.6.2 NetHackTerm.applescript $NHDT-Date: 1524684597 2018/04/25 19:29:57 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.8 $ # Copyright (c) Kenneth Lorber, Kensington, Maryland, 2011 # NetHack may be freely redistributed. See license for details. diff --git a/win/tty/wintty.c b/win/tty/wintty.c index 8a2e30a02..fc40dcc75 100644 --- a/win/tty/wintty.c +++ b/win/tty/wintty.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 wintty.c $NHDT-Date: 1526382995 2018/05/15 11:16:35 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.164 $ */ +/* NetHack 3.6 wintty.c $NHDT-Date: 1526429383 2018/05/16 00:09:43 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.166 $ */ /* Copyright (c) David Cohrs, 1991 */ /* NetHack may be freely redistributed. See license for details. */ @@ -3493,7 +3493,9 @@ const char *fieldnames[] = { }; #ifdef STATUS_HILITES +#ifdef TEXTCOLOR STATIC_DCL int FDECL(condcolor, (long, unsigned long *)); +#endif STATIC_DCL int FDECL(condattr, (long, unsigned long *)); static unsigned long *tty_colormasks; static long tty_condition_bits; @@ -3624,13 +3626,13 @@ tty_status_init() * the textual gold amount without the leading "$:" the port will * have to skip past ':' in the passed "ptr" for the BL_GOLD case. * -- color is an unsigned int. - * color_index = color & 0x00FF; CLR_* value - * attribute = color & 0xFF00 >> 8; BL_* values + * color_index = color & 0x00FF; CLR_* value + * attribute = (color >> 8) & 0x00FF; HL_ATTCLR_* mask * This holds the color and attribute that the field should * be displayed in. * This is relevant for everything except BL_CONDITION fldindex. * If fldindex is BL_CONDITION, this parameter should be ignored, - * as condition hilighting is done via the next colormasks + * as condition highlighting is done via the next colormasks * parameter instead. * * -- colormasks - pointer to cond_hilites[] array of colormasks. @@ -3653,16 +3655,15 @@ unsigned long *colormasks; char *text = (char *) ptr; char *lastchar = (char *) 0; char *fval = (char *) 0; - boolean do_color = FALSE; boolean force_update = FALSE; -#ifdef TEXTCOLOR - do_color = TRUE; -#endif - if (fldidx != BL_FLUSH && !status_activefields[fldidx]) return; +#ifndef TEXTCOLOR + color = (color & ~0x00FF) | NO_COLOR; +#endif + switch (fldidx) { case BL_FLUSH: force_update = TRUE; @@ -3680,8 +3681,8 @@ unsigned long *colormasks; Sprintf(status_vals[fldidx], status_fieldfmt[fldidx] ? status_fieldfmt[fldidx] : "%s", text); - tty_status[NOW][fldidx].color = do_color ? (color & 0x00FF) : NO_COLOR; - tty_status[NOW][fldidx].attr = (color & 0xFF00) >> 8; + tty_status[NOW][fldidx].color = (color & 0x00FF); + tty_status[NOW][fldidx].attr = ((color >> 8) & 0x00FF); tty_status[NOW][fldidx].lth = strlen(status_vals[fldidx]); tty_status[NOW][fldidx].valid = TRUE; tty_status[NOW][fldidx].dirty = TRUE; @@ -3690,11 +3691,10 @@ unsigned long *colormasks; /* The core botl engine sends a single blank to the window port for carrying-capacity when its unused. Let's suppress that */ - if (tty_status[NOW][fldidx].lth == 1 - && status_vals[fldidx][0] == ' ') { - status_vals[fldidx][0] = '\0'; - tty_status[NOW][fldidx].lth = 0; - } + if (tty_status[NOW][fldidx].lth == 1 && status_vals[fldidx][0] == ' ') { + status_vals[fldidx][0] = '\0'; + tty_status[NOW][fldidx].lth = 0; + } /* default processing above was required before these */ switch (fldidx) { @@ -3702,7 +3702,7 @@ unsigned long *colormasks; if (iflags.wc2_hitpointbar) { /* Special additional processing for hitpointbar */ hpbar_percent = percent; - hpbar_color = do_color ? (color & 0x00FF) : NO_COLOR; + hpbar_color = (color & 0x00FF); } break; case BL_LEVELDESC: @@ -3721,7 +3721,7 @@ unsigned long *colormasks; tty_status[NOW][fldidx].lth += 2; /* '[' and ']' */ break; case BL_GOLD: - tty_status[NOW][fldidx].lth -= 9; /* \GXXXXNNNN counts as 1 */ + tty_status[NOW][fldidx].lth -= (10 - 1); /* \GXXXXNNNN counts as 1 */ break; case BL_CAP: fval = status_vals[fldidx]; @@ -4007,11 +4007,17 @@ unsigned long *bmarray; if (bm && bmarray) for (i = 0; i < CLR_MAX; ++i) { - if (bmarray[i] && (bm & bmarray[i])) + if ((bm & bmarray[i]) != 0) return i; } return NO_COLOR; } +#else +/* might need something more elaborate if some compiler complains that + the condition where this gets used always has the same value */ +#define condcolor(bm,bmarray) NO_COLOR +#define term_start_color(color) /*empty*/ +#define term_end_color(color) /*empty*/ #endif /* TEXTCOLOR */ STATIC_OVL int @@ -4024,8 +4030,8 @@ unsigned long *bmarray; if (bm && bmarray) { for (i = HL_ATTCLR_DIM; i < BL_ATTCLR_MAX; ++i) { - if (bmarray[i] && (bm & bmarray[i])) { - switch(i) { + if ((bm & bmarray[i]) != 0) { + switch (i) { case HL_ATTCLR_DIM: attr |= HL_DIM; break; @@ -4086,13 +4092,6 @@ render_status(VOID_ARGS) long mask = 0L; int i, c, row, attrmask = 0; struct WinDesc *cw = 0; - boolean do_color = -#ifdef TEXTCOLOR - TRUE -#else - FALSE -#endif - ; struct tty_status_fields *nullfield = (struct tty_status_fields *) 0; if (WIN_STATUS == WIN_ERR @@ -4139,11 +4138,10 @@ render_status(VOID_ARGS) if (iflags.hilite_delta) { attrmask = condattr(mask, tty_colormasks); Begin_Attr(attrmask); - if (do_color) { - coloridx = condcolor(mask, tty_colormasks); - if (coloridx != NO_COLOR) - term_start_color(coloridx); - } + coloridx = condcolor(mask, tty_colormasks); + if (coloridx != NO_COLOR + && coloridx != CLR_MAX) + term_start_color(coloridx); } if (x >= cw->cols && !truncation_expected) impossible( @@ -4152,15 +4150,19 @@ render_status(VOID_ARGS) tty_putstatusfield(nullfield, condtext, x, y); x += (int) strlen(condtext); if (iflags.hilite_delta) { - if (do_color && coloridx != NO_COLOR) + if (coloridx != NO_COLOR + && coloridx != CLR_MAX) term_end_color(); End_Attr(attrmask); } } } if (x >= cw->cols) { - if (!truncation_expected) - paniclog("render_status()", " unexpected truncation."); + static unsigned once_only = 0; + + if (!truncation_expected && !once_only++) + paniclog( + "render_status()", " unexpected truncation."); x = cw->cols - 1; } tty_curs(WIN_STATUS, x, y); @@ -4175,15 +4177,14 @@ render_status(VOID_ARGS) if (iflags.hilite_delta) { /* multiple attributes can be in effect concurrently */ Begin_Attr(attridx); - if (do_color && coloridx != NO_COLOR - && coloridx != CLR_MAX) + if (coloridx != NO_COLOR && coloridx != CLR_MAX) term_start_color(coloridx); } /* decode_mixed() due to GOLD glyph */ tty_putstatusfield(nullfield, decode_mixed(buf, text), x, y); if (iflags.hilite_delta) { - if (do_color && coloridx != NO_COLOR) + if (coloridx != NO_COLOR && coloridx != CLR_MAX) term_end_color(); End_Attr(attridx); } @@ -4216,13 +4217,13 @@ render_status(VOID_ARGS) } if (iflags.hilite_delta) { tty_putstatusfield(nullfield, "[", x++, y); - if (do_color && hpbar_color != NO_COLOR) + if (hpbar_color != NO_COLOR && coloridx != CLR_MAX) term_start_color(hpbar_color); term_start_attr(ATR_INVERSE); tty_putstatusfield(nullfield, bar, x, y); x += (int) strlen(bar); term_end_attr(ATR_INVERSE); - if (do_color && hpbar_color != NO_COLOR) + if (hpbar_color != NO_COLOR && coloridx != CLR_MAX) term_end_color(); if (twoparts) { *bar2 = savedch; @@ -4249,14 +4250,13 @@ render_status(VOID_ARGS) } /* multiple attributes can be in effect concurrently */ Begin_Attr(attridx); - if (do_color && coloridx != NO_COLOR - && coloridx != CLR_MAX) + if (coloridx != NO_COLOR && coloridx != CLR_MAX) term_start_color(coloridx); } tty_putstatusfield(&tty_status[NOW][fldidx], text, x, y); if (iflags.hilite_delta) { - if (do_color && coloridx != NO_COLOR) + if (coloridx != NO_COLOR && coloridx != CLR_MAX) term_end_color(); End_Attr(attridx); } diff --git a/win/win32/mswproc.c b/win/win32/mswproc.c index a1af46ed2..8f3e1ae1f 100644 --- a/win/win32/mswproc.c +++ b/win/win32/mswproc.c @@ -2276,7 +2276,7 @@ logDebug(const char *fmt, ...) /* Reading and writing settings from the registry. */ #define CATEGORYKEY "Software" #define COMPANYKEY "NetHack" -#define PRODUCTKEY "NetHack 3.6.1" +#define PRODUCTKEY "NetHack 3.6.2" #define SETTINGSKEY "Settings" #define MAINSHOWSTATEKEY "MainShowState" #define MAINMINXKEY "MainMinX" diff --git a/win/win32/nethack.rc b/win/win32/nethack.rc index 04ff88d55..4330f14f1 100644 --- a/win/win32/nethack.rc +++ b/win/win32/nethack.rc @@ -60,8 +60,8 @@ IDI_ICON1 ICON "nethack.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,6,1,0 - PRODUCTVERSION 3,6,1,0 + FILEVERSION 3,6,2,0 + PRODUCTVERSION 3,6,2,0 FILEFLAGSMASK 0x1fL #ifdef _DEBUG FILEFLAGS 0x9L @@ -77,12 +77,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "NetHack for Windows - TTY Interface" - VALUE "FileVersion", "3.6.1" + VALUE "FileVersion", "3.6.2" VALUE "InternalName", "NetHack" VALUE "LegalCopyright", "Copyright (C) 1985 - 2018. By Stichting Mathematisch Centrum and M. Stephenson. See license for details." VALUE "OriginalFilename", "NetHack.exe" VALUE "ProductName", "NetHack" - VALUE "ProductVersion", "3.6.1" + VALUE "ProductVersion", "3.6.2" END END BLOCK "VarFileInfo"