Merge branch 'NetHack-3.6.0'
This commit is contained in:
30
Files
30
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
|
||||
|
||||
40
README
40
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
|
||||
|
||||
- - - - - - - - - - -
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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\\
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
44
src/botl.c
44
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user