Skip to content

Commit 1b1f038

Browse files
committed
Merge branch 'NetHack-3.6' of github.com:NetHack/NetHack
2 parents 077ed1c + ed600d9 commit 1b1f038

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2417
-2700
lines changed

Files

+1-5
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,7 @@ sys/winnt:
284284
(files for Windows 7/8.x/10 version)
285285
.evilhackrc.template Install.nt Makefile.gcc
286286
Makefile.msc console.rc nethack.def
287-
nh340key.c nhdefkey.c nhico.uu
288-
nhraykey.c nhsetup.bat ntsound.c
287+
nhico.uu nhsetup.bat ntsound.c
289288
nttty.c porthelp stub-pdcscrn.c
290289
stubs.c sysconf.template win10.c
291290
win10.h win32api.h windmain.c
@@ -405,9 +404,6 @@ default_lib.props dgncomp.vcxproj
405404
dirs.props dlb.vcxproj
406405
dll.props files.props
407406
levcomp.vcxproj makedefs.vcxproj
408-
nh340key.def nh340key.vcxproj
409-
nhdefkey.def nhdefkey.vcxproj
410-
nhraykey.def nhraykey.vcxproj
411407
recover.vcxproj tile2bmp.vcxproj
412408
tilemap.vcxproj tiles.vcxproj
413409
travisci.sh uudecode.vcxproj

README

+28-12
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ NetHack's general information bit is below.
2626

2727
================================================================================
2828

29-
NetHack 3.6.6 -- General information March 2020
29+
NetHack 3.6.7 -- General information February 2023
3030

3131
NetHack 3.6 is an enhancement to the dungeon exploration game NetHack,
3232
which is a distant descendent of Rogue and Hack, and a direct descendent of
3333
NetHack 3.4 as there was no NetHack 3.5 release.
3434

35-
NetHack 3.6.6 is the official release of NetHack that follows NetHack 3.6.5
36-
and contains bug fixes since 3.6.5, including a security fix that affected
37-
versions 3.6.1, 3.6.2, 3.6.3, 3.6.4 and 3.6.5.
35+
NetHack 3.6.7 is the official release of NetHack that follows NetHack 3.6.6
36+
and contains bug fixes since 3.6.6, including a security fix which prompted
37+
the release.
3838

39-
The file doc/fixes36.6 in the source distribution has a full list of fixes.
39+
The file doc/fixes36.7 in the source distribution has a full list of fixes.
4040
The text in there was written for the development team's own use and is
4141
provided "as is", so please do not ask us to further explain the entries in
4242
that file. Some entries might be considered "spoilers", particularly in the
@@ -45,12 +45,28 @@ that file. Some entries might be considered "spoilers", particularly in the
4545
Below you will find some other general notes that were not considered
4646
spoilers:
4747

48-
* invalid status highlight color could be maliciously used to corrupt memory
49-
* formatting corpse names used internal buffers differently from formatting
50-
* other objects and could potentially clobber memory
51-
* avoid divide by 0 crash if 'bogusmon' (file of bogus monster types) is empty
52-
* avoid #wizrumorcheck crash if either 'rumors.tru' or 'rumors.fal' or both
53-
* were empty when makedefs built 'rumors'
48+
* during engraving, spaces were counted instead of non-space (cherry-pick of
49+
4e0a1e04 from NetHack-3.7)
50+
* avoid potential buffer overflow in append_str()
51+
* resolve missing dependency in NetHack.sln
52+
* code in include/tradstdc.h was trying to suppress warn_unused result by
53+
defining warn_unused_result to an empty string and that began causing
54+
a build error within a system-supplied header file cdefs.h when using
55+
ubuntu impish 21.10; disable that for any Linux unless GCC_URWARN is
56+
defined to force it back into effect
57+
* update_inventory() after leash goes slack
58+
* player assigned name for monsters, specific objects, or object types could be
59+
longer than what was intented to be allowed; for 'curses', much longer
60+
* windows: added winflexbison to travis-ci configuration to permit full build of
61+
levcomp and dgncomp
62+
* windows: a bad chdir specified in win/win32/dgnstuff.mak caused full build to
63+
abort
64+
* windows: the console.rc file had outdated information stating 3.6.3 when the
65+
official 3.6.6 binary was built.
66+
* windows: switch from using keyhandling dll's to incorporating the three
67+
variations (default, ray, 340) in sys/winnt/nttty.c
68+
* curses: cherry-picked selectsaved code from 3.7 for menu of save files
69+
* NetHackW: fix delay rendering of cursor when using farlook
5470

5571
- - - - - - - - - - -
5672

@@ -198,6 +214,6 @@ In our own patches, we will assume that your code is synchronized with ours.
198214

199215
-- Good luck, and happy Hacking --
200216

201-
# $NHDT-Date: 1583508658 2020/03/06 15:30:58 $ $NHDT-Branch: NetHack-3.6-Mar2020 $:$NHDT-Revision: 1.80 $
217+
# $NHDT-Date: 1672610729 2023/01/01 22:05:29 $ $NHDT-Branch: releasebits-3.6 $:$NHDT-Revision: 1.81 $
202218
# Copyright (c) 2012 by Michael Allison
203219
# NetHack may be freely redistributed. See license for details.

dat/hh

+125-101
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ b j n 1 2 3 g<dir>: run in direction <dir> until something
99
case means the Control key, not a caret)
1010
> down m<dir>: move without picking up objects/fighting
1111
F<dir>: fight even if you don't sense a monster
12-
If the number_pad option is set, the number keys move instead.
13-
Depending on the platform, Shift number (on the numberpad),
14-
Meta number, or Alt number will invoke the YUHJKLBN commands.
12+
If the number_pad option is set, the digit keys move instead.
13+
Depending on the platform, Shift digit (on the numberpad),
14+
Meta digit, or Alt digit will invoke the YUHJKLBN commands.
1515
Control <dir> may or may not work when number_pad is enabled,
1616
depending on the platform's capabilities.
1717
Digit '5' acts as 'G' prefix, unless number_pad is set to 2
@@ -22,112 +22,136 @@ b j n 1 2 3 g<dir>: run in direction <dir> until something
2222
used but 'y' and 'z' are swapped.
2323

2424
General commands:
25-
? help display one of several informative texts
26-
#quit quit end the game without saving current game
27-
S save save the game (to be continued later) and exit
28-
[to restore, play again and use the same character name]
29-
! sh escape to some SHELL (if allowed; 'exit' to resume play)
30-
^Z suspend suspend the game (independent of your current suspend char)
25+
? help display one of several informative texts
26+
#quit quit end the game without saving current game
27+
S save save the game (to be continued later) and exit
28+
[to restore, play again and use the same character name;
29+
use #quit to quit without saving]
30+
! sh escape to some SHELL (if allowed; 'exit' to resume play)
31+
^Z suspend suspend the game (independent of your current suspend char)
3132
[on UNIX(tm)-based systems, use the 'fg' command to resume]
32-
O options set options
33-
/ what-is tell what a map symbol represents
34-
\ known display list of what's been discovered
35-
v version display version number
36-
V history display game history
37-
^A again redo the previous command (^A denotes the keystroke CTRL-A)
38-
^R redraw redraw the screen
39-
^P prevmsg repeat previous message (subsequent ^P's repeat earlier ones)
33+
O options set options
34+
/ what-is tell what a map symbol represents
35+
\ known display list of what's been discovered
36+
v version display version number
37+
V history display game history
38+
^A again redo the previous command
39+
^R redraw redraw the screen
40+
^P prevmsg repeat previous message (consecutive ^P's repeat earlier ones)
4041
# introduces an extended command (#? for a list of them)
41-
& what-does describe the command a keystroke invokes
42+
& what-does describe the command a keystroke invokes
43+
44+
Control characters are depicted as '^' followed by a letter. Depress Ctrl
45+
or Control like a shift key then type the letter. Control characters are
46+
case-insensitive; ^D is the same as ^d, Ctrl+d is same as Ctrl+Shift+d.
47+
There are a few non-letter control characters; nethack uses ^[ as a synonym
48+
for Escape (or vice versa) but none of the others.
4249

4350
Game commands:
44-
^D kick kick (a door, or something else)
45-
^T 'port teleport (if you can)
46-
^U removeimarkers remove remembered 'I' monster markers
47-
^X show show your attributes
48-
a apply apply or use a tool (pick-axe, key, camera, etc.)
49-
A armor take off all armor
50-
c close close a door
51-
C call name a monster, an individual object, or a type of object
52-
d drop drop an object. d7a: drop seven items of object 'a'
53-
D Drop drop selected types of objects
54-
e eat eat something
55-
E engrave write a message in the dust on the floor (E- use fingers)
56-
f fire fire ammunition from quiver
57-
F fight followed by direction, fight a monster
58-
i invent list your inventory (all objects you are carrying)
59-
I Invent list selected parts of your inventory
60-
Iu: list unpaid objects
61-
Ix: list unpaid but used up items
62-
I$: count your money
63-
o open open a door
64-
p pay pay your bill (in a shop)
65-
P puton put on an accessory (ring, amulet, etc)
66-
q quaff drink something (potion, water, etc)
67-
Q quiver select ammunition for quiver (use '#quit' to quit)
68-
r read read a scroll or spellbook
69-
R remove remove an accessory (ring, amulet, etc)
70-
s search search for secret doors, hidden traps and monsters
71-
t throw throw or shoot a weapon
72-
T takeoff take off some armor
73-
w wield wield a weapon (w- wield nothing)
74-
W wear put on some armor
75-
x xchange swap wielded and secondary weapons
76-
X twoweapon toggle two-weapon combat (use '#explore' for explore mode)
77-
z zap zap a wand (use y instead of z if number_pad is -1)
78-
Z Zap cast a spell (use Y instead of Z if number_pad is -1)
79-
< up go up the stairs
80-
> down go down the stairs
81-
^ trap_id identify a previously found trap
82-
),[,=,",( ask for current items of specified symbol in use
83-
* ask for combination of ),[,=,",( all at once
84-
$ gold count your gold
85-
+ spells list the spells you know; also rearrange them if desired
86-
` classkn display known items for one class of objects
87-
_ travel move via a shortest-path algorithm to a point on the map
88-
. rest wait a moment
89-
, pickup pick up all you can carry
51+
^D kick kick (a door, or something else)
52+
^T Tport teleport (if you can)
53+
^U removeimarkers remove remembered 'I' monster markers
54+
^X show show your attributes
55+
a apply apply or use a tool (pick-axe, key, camera, etc.)
56+
A takeoffall choose multiple items of armor, accessories, and weapons
57+
to take off, remove, unwield (uses same amount of game time
58+
as removing them individually with T,R,w- would take)
59+
c close close a door
60+
C call name a monster, an individual object, or a type of object
61+
d drop drop an object. d7a: drop seven items of object 'a'
62+
D Drop drop selected types of objects
63+
e eat eat something
64+
E engrave write a message in the dust on the floor (E- use fingers)
65+
f fire fire ammunition from quiver
66+
F fight followed by direction, fight a monster
67+
i invent list your inventory (all objects you are carrying)
68+
I Invent list selected parts of your inventory; for example
69+
I( list all tools, or I" list all amulets
70+
IB list all items known to be blessed
71+
IU uncursed, or IC cursed, or IX unknown bless state
72+
Iu when in a shop, list unpaid objects being carried
73+
Ix in a shop, list any fees and used-up shop-owned items
74+
o open open a door
75+
p pay pay your bill (in a shop)
76+
P puton put on an accessory (ring, amulet, etc; can be used to wear
77+
armor too, but armor items aren't listed as likely candidates)
78+
q quaff drink something (potion, water, etc)
79+
Q quiver select ammunition for quiver (use '#quit' to quit)
80+
r read read a scroll or spellbook
81+
R remove remove an accessory (ring, amulet, etc; can be used to take
82+
off armor too)
83+
s search search for secret doors, hidden traps and monsters
84+
t throw throw or shoot a weapon
85+
T takeoff take off some armor; can be used to remove accessories too,
86+
but those aren't listed as likely candidates)
87+
w wield wield a weapon (w- wield nothing to unwield current weapon)
88+
W wear wear an item of armor; can be used to put on accessories too,
89+
but those aren't listed as likely candidates)
90+
x xchange swap wielded and secondary weapons
91+
X twoweapon toggle two-weapon combat if role allows that
92+
z zap zap a wand (use y instead of z if number_pad is -1)
93+
Z Zap cast a spell (use Y instead of Z if number_pad is -1)
94+
< up go up the stairs
95+
> down go down the stairs
96+
^ trap_id identify a previously found trap
97+
),[,=,",( show current items of specified symbol in use
98+
* show combination of ),[,=,",( all at once
99+
$ gold count your gold
100+
+ spells list the spells you know; also rearrange them if desired
101+
` classkn display known items for one class of objects
102+
_ travel move via a shortest-path algorithm to a point on the map
103+
. rest wait a moment
104+
, pickup pick up all you can carry
90105
@ toggle "pickup" (auto pickup) option on and off
91-
: look look at what is here
92-
; farlook look at what is somewhere else by selecting a map symbol
106+
: look look at what is here
107+
; farlook look at what is somewhere else by selecting a map location
108+
(for a monster on top of one or more objects, only describes
109+
that monster; for a pile of objects, only describes top one)
93110

94-
Keyboards that have a meta key can also use these extended commands
95-
via the meta modifier instead of the # prefix:
111+
Keyboards that have a meta key (some use Alt for that, so typing Alt as a
112+
shift plus 'e' would generate 'M-e') can also use these extended commands
113+
via the meta modifier as an alternative to using the # prefix. Unlike
114+
control characters, meta characters are case-sensitive so M-a is different
115+
from M-A. Type the latter with two keys used as shifts, Meta+Shift+a.
96116

97117
M-? display extended command help (if the platform allows this)
98-
M-2 twoweapon toggle two-weapon combat (unless number_pad is enabled)
99-
M-a adjust adjust inventory letters
100-
M-A annotate add a one-line note to the current dungeon level (see M-O)
101-
M-c chat talk to someone
102-
M-C conduct view optional challenges
103-
M-d dip dip an object into something
104-
M-e enhance advance or check weapon and spell skills
105-
M-f force force a lock
106-
M-i invoke invoke an object's special powers
107-
M-j jump jump to another location
108-
M-l loot loot a box on the floor
109-
M-m monster use a monster's special ability
110-
M-n name name a monster, an individual object, or a type of object
111-
M-N name synonym for M-n
112-
M-o offer offer a sacrifice to the gods
113-
M-O overview display information about visited levels and annotations
114-
M-p pray pray to the gods for help
115-
M-q quit stop playing
116-
M-r rub rub a lamp or a stone
117-
M-R ride mount or dismount saddled steed
118-
M-s sit sit down
119-
M-t turn turn undead
120-
M-T tip upend a container to dump out its contents
121-
M-u untrap untrap something
122-
M-v version print compile time options for this version
123-
M-w wipe wipe off your face
118+
M-2 twoweapon toggle two-weapon combat (unless number_pad is enabled)
119+
M-a adjust adjust inventory letters
120+
M-A annotate add a one-line note to the current dungeon level (see M-O)
121+
M-c chat talk to someone
122+
M-C conduct view optional challenges
123+
M-d dip dip an object into something
124+
M-e enhance show weapon and spell skills, can improve them if eligible
125+
M-f force force a lock
126+
M-i invoke invoke an object's special powers
127+
M-j jump jump to another location
128+
M-l loot loot a box on the floor
129+
M-m monster when polymorphed, use monster's special ability
130+
M-n name name a monster, an individual object, or a type of object
131+
M-N name synonym for M-n (both are the same as C)
132+
M-o offer offer a sacrifice to the gods
133+
M-O overview display information about visited levels and annotations
134+
M-p pray pray to the gods for help
135+
M-q quit stop playing without saving game (use S to save and exit)
136+
M-r rub rub a lamp or a stone
137+
M-R ride mount or dismount saddled steed
138+
M-s sit sit down
139+
M-t turn turn undead if role allows that
140+
M-T tip upend a container to dump out its contents
141+
M-u untrap untrap something
142+
M-v version print compile time options for this version
143+
M-w wipe wipe off your face
144+
M-X explore switch from regular play to non-scoring explore mode
124145

125-
If the "number_pad" option is on, these additional variants are available:
146+
If the 'number_pad' option is on, keys usually used for movement can be
147+
used for various commands:
126148

127149
n followed by number of times to repeat the next command
128-
h help display one of several informative texts, like '?'
129-
j jump jump to another location
130-
k kick kick something (usually a door)
131-
l loot loot a box on the floor
132-
N name name an item or type of object
133-
u untrap untrap something (usually a trapped object)
150+
h help display one of several informative texts, like '?'
151+
j jump jump to another location
152+
k kick kick something (usually a door)
153+
l loot loot a box on the floor
154+
N name name an item or type of object
155+
u untrap untrap something (usually a trapped object)
156+
157+
Additional commands are available in debug mode (also known as wizard mode).

dat/history

+3
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,9 @@ and a small number of bug fixes.
244244
NetHack 3.6.6 was released on March 8, 2020 containing a security fix and
245245
some bug fixes.
246246

247+
NetHack 3.6.7 was released in February 2023 containing a security fix and
248+
some bug fixes.
249+
247250
The official NetHack web site is maintained by Ken Lorber at
248251
http://www.nethack.org/.
249252

0 commit comments

Comments
 (0)