File: fixes36.3

package info (click to toggle)
nethack 3.6.7-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 21,468 kB
  • sloc: ansic: 266,495; cpp: 13,652; yacc: 2,903; perl: 1,426; lex: 581; sh: 535; xml: 372; awk: 98; makefile: 68; fortran: 51; sed: 11
file content (503 lines) | stat: -rw-r--r-- 31,896 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.197 $ $NHDT-Date: 1575173931 2019/12/01 04:18:51 $

This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
that another 3.6.x release is not anticipated, and most developer
focus will shift to the next major release.

General Fixes and Modified Features
-----------------------------------
when place_object() puts a non-boulder on the map at a spot which contains
	other objects, put it under all boulders in the pile rather than just
	under the top one; previously, map wasn't showing a boulder there if
	the top one got moved by means other than pushing
when examining the map with '/' or ';', picking a symbol which is used for
	more than 4 things yielded a sentence lacking its terminating period
billing and payment issue as a result of glob coalescing
glob pricing did not consider weight properly
glob shop interaction improved to handle more of the expected scenarios
non-flying steed on Plane of Water would drown when air bubble moved hero
xans fly, but could not reach your feet if you flew
adjust vortex database entry to be consistent with fire and energy vortices
when co-located with a boulder you could sometimes swap places with pets of
	any size
on rare occasions, multiple mine's end luckstones were being marked as the
	prize and triggering an impossible() on a public server
make sure the correct luckstone is the prize in mine's end
free dungeon overview's bones information at end of game
free current level's bones information at end of game
free ball and chain if Punished hero dies while descending stairs or dies or
	quits while swallowed; put ball and chain in bones for the stairs case
if hero dies while a thrown or kicked object is in transit, put that object
	on the map in case bones data gets saved
fix a memory leak that occurred if player used wizard mode to leave and return
	to the Plane of Air or Plane of Water (not possible in normal play)
free sortloot data if object handling is short-circuited by cockatrice corpse
on the Plane of Water, make water go all the way to the edges of the level
on the Plane of Air, make clouds disrupt line of sight along the edges
have '&' (whatdoes) command describe movement keystrokes instead of reporting
	them as unknown or showing their number_pad action when that is Off
some improvement to the handling of endgame levels filling up with monsters
if you survive turning into green slime due to life-saving (surviving as a
	green slime) then die again due to green slimes having been genocided,
	the feedback was strange because it assumed that the prior message
	came from answering No to "Really die?" in explore or wizard mode
various cases where objects had their bless/curse state become known weren't
	updating persistent inventory window, when enabled, to reflect changes
	(cited case was trying to remove cursed armor and being told of the
	curse but there were lots of other situations with the same issue)
similar perm_invent issue when lock state known and/or contents known become
	set for carried container
blessed scroll of remove curse read while confused might be shown to operate
	on itself by perm_invent after player is told that it has disappeared
fix memory leak if corpse auto-revival attempt failed ("you feel less hassled")
allow a parent function to issue an an unplacebc() call that restricts
	subsequent placebc() calls to that parent only
flying monsters could enter water on the Plane of Water but then they'd drown
	unless they could also swim or else didn't need to breathe
when finding a place to put a monster on the Plane of Water, don't pick a
	water location for flyers or floaters (levitate) or clingers (ceiling)
#turn worked when unable to speak despite "you chant an arcane formula"
#turn implicitly required sight due to wrong check for avoiding spanning walls
thrown or kicked light source (lit lamp, candle, oil) should emit light as it
	traverses the map; dungeon features, objects, or monsters seen while
	it's in transit will become part of hero's memory of the level, and
	any messages delivered won't have stale light from it around the hero
unlike watching a monster trying to swap out a cursed weapon for some other
	weapon and failing, watching it wield a cursed weapon didn't report
	that weapon becoming welded to the monster's hand/claw/whatever
accept "hidden" as an attribute for wizard mode ^G monster creation; created
	monsters which can't be seen will have their locations highlighted
don't give feedback for monster zapping a wand if a monster plays a fire horn
	directed at self to burn away slime
if hero knows the number of charges in a wand or magical horn and a monster
	acquires it and zaps/plays it when not in view, remove the hero's
	memory of the number of charges
for wizard mode 'monpolycontrol', allow usually disallowed type 'chameleon',
	'doppelganger', or 'sandestin' as answer to "change <monster> @ <x,y>
	into what?" prompt when <monster> is really that type of creature
add Space, Return, and Escape to '? k' (help for menu control keys)
hero can no longer negotiate a bribe with a demon lord when deaf
wishing for "foo amulet" now yields an "amulet of foo" rather than random one
code in parse_conf_file() to trim trailing blanks/cr was skipping over them
partly eaten food with one bite left had message anomalies when eaten; the
	usual "you resume your meal" case lacked the "you're finished" message
	when done; eating something else in between to clobber meal context
	resulted in no messages at all when restarting and finishing last bite
wizard mode ^I menu could list "Not carrying anything" after inventory items
	if perm_invent option was On (even on tty where that's not supported)
wizard mode ^I with 'perm_invent' On would unintentionally filter the content
	of the persistent inventory window to unIDed items if any item got
	chosen to be identified (^R would fix it, as would any invent change)
change #adjust to treat carrying only gold as not having anything to adjust
saving bones with 'perm_invent' On could result in "Bad fruit #N" warnings
update persistent inventory window immediately if 'sortpack' option is toggled
grammar bit for wizard mode final disclosure; attribute section could show
	"You had N experience points, 1 more were needed to attain level X+1."
if an engulfer has any worn items, hero could pick them up from inside and
	they wouldn't be unworn properly, eventually triggering warnings or
	worse (Juiblex will wear an amulet if created with one; a shapechanger
	might wear one and then turn into an engulfer)
kicking an altar ignored god's wrath if hero injured himself during the kick
detect unseen/secret door detection/^E failed to find monsters hiding under
	objects and failed to find monsters hiding at trap locations
when farlook describes a monster at a visible spot as trapped, reveal the trap
fix theft when poly'd into nymph form; 3.6.2 change made that anger the victim
hero poly'd into nymph would steal gold along with other items
change wizard mode #panic to require "yes" if 'paranoid_confirm:quit' is set
add some additional validation checks when setting up a new timer (triggered
	by an ancient source comment rather than by any observed problems)
if a chaotic monk or wizard gets crowned and is given a spellbook rather than
	Stormbringer as the crowning gift, don't describe the hero as having
	been "chosen to steal souls for [Arioch's] glory"
for multi-shot shooting by monsters, a typo checked hero's weapon for
	compatibility with ammo when monster was wielding an elven bow
when a boulder was teleported, if it landed in a pit or trap door or hole its
	former location wasn't updated to show that it wasn't there anymore
	(noticed in Sokoban but not limited to there)
Terry Pratchett tribute, fix typo in passage #4 for Mort ("the" -> "they");
	also passage #7 for Soul Music ("genious" -> "genius");
	and passage #11 for The Light Fantastic ("to" -> "do");
	passage #3 for Eric ("short" -> "sort");
	passage #10 for Witches Abroad ("was" -> "what")
fix typo in end_of_input() present since 3.6.0 that would prevent compilation
	for NOSAVEONHANGUP+INSURANCE configuration
when a status condition becomes fatal, keep it listed as an active condition
	during disclosure and/or dumplog rather than having it already reset
when a shape-shifted sandestin was turned to stone, it died and reverted to
	sandestin form with 0 HP; that confused known_hitum() because
	sandestins are immune to stoning; net result was monster dying twice,
	triggering "dmonsfree: N removed doesn't match N+1 pending" warning;
	instead of dying, make it revert to sandestin form with full health
toggling perm_invent (where supported) while swallowed or underwater didn't
	necessarily update the persistent inventory window right away
have 'O' update persistent inventory window if 'implicit_uncursed',
	'menucolors', or 'guicolors' (curses) is toggled or if menucolors is
	On and any menu color patterns are added or removed
'O's "set <option> to what?" could be used to force a buffer overflow
'O's response to bad 'statuslines' value said "must be 2 and 3" (at one point
	it was "must be between 2 and 3", change it to "must be 2 or 3")
when spellcasting monster aimed at wrong spot due to not being able to see
	invisible hero, feedback could be erroneous if hero could see self
	[messages used 'if (Invisible)' test where 'if (Invis)' was meant]
prevent impossible when guard tries to relocate a monster on a full level
hallucination provides partial protection from passive gaze counterattack
	against hero's attack; check for that before checking for free action
feedback from blessed potion of restore ability never reported "you feel great"
	due to bad logic for not-unihorn case in unfixable_trouble_count()
when rubbing a ring on a touchstone, all types of rings were treated as if
	they were gems; an iron ring made a cyan streak instead of yielding
	"scritch, scritch" and a gold ring made a yellow streak rather than
	a golden scratch
zapping self with wand of opening or spell of knock to escape from a trap
	reported "you're released from <trap>" rather than "from the <trap>"
zapping self with wand of opening or spell of knock to escape from a pit trap
	didn't reset vision limits--only spots adjacent to pit were visible
wielded aklys that returned to hero when thrown while inside an engulfer left
	a stale 'thrownobj' pointer that triggered "add_to_minv: obj not free"
	panic if same weapon killed any engulfer via melee from inside
uarmh null pointer dereference if a helm of opposite alignment came off due
	to being polymorphed
verb tense was inappropriate in some messages when a mon/pet had a name
	ending in 's'
orctown booty items should have been initialized in mksobj()
query_category() and whatdoes_help() had early returns which could each leave
	a temporary window around, which in turn might eventually lead to a
	panic due to lack of window slots [probably moot for unmodified 3.6.x;
	the query one couldn't happen unless there is a coding error for
	object classes somewhere and the help one couldn't happen unless the
	installed data files left 'keyhelp' missing]
ball and chain could end up too far from punished hero (triggering b&c warning
	for wizard mode with sanity checking active) when crawling out of
	water failed because dropping stuff left hero overly encumbered and
	hero was life saved--or player declined to die--if the hero got
	teleported one step further from ball and chain's current location
avoid 'object lost' panic when polymorph causes loss of levitation boots or
	water walking boots which dumps hero into water where emergency
	disrobing/dropping in order to crawl out chooses to drop those boots
'sortloot's attempt to group musical instruments separately from other tools
	didn't work as intended due to missing 'break' in sortloot_classify()
<shift><letter> running told player about engravings as they were being moved
	over but buffered output didn't show it until hero stopped, so it
	wasn't possible to tell where they were, unlike all other forms of
	multiple movement; so stop running if/when an engraving is reached
fix exploding land mine moving ball or chain and causing a sanity error
fix firing attached iron ball when swallowed causing a sanity error
fix vault guard impossible when he could not relocate in certain situation
fix temple priests or shopkeepers moving over other monsters
fix hero still hiding under a statue shattered by a land mine
fix helping a monster out of a pit addressing a deleted trap
fix launched rolling boulder code accessing deleted trap
fix monster stepping on a land mine code accessing deleted trap
revise 'O' to show symbol sets in the same order they appear in the symbols
	file and order the sets in dat/symbols to yield a sensible symset menu
yellow dragons had green breath
partly eaten food in a bones level shop would show a non-zero sale price
	while on the floor but not be placed on shop bill if picked up;
	sale price should have been "no charge"
when non-empty container is dropped in shop and hero is asked whether to sell,
	counting the subset of contents owned by hero vs those owned by shk
	could obtain wrong answer because the container had been placed on
	the floor but the 'unpaid' and 'no_charge' flags of its contents
	hadn't been updated yet, they were still set for when it was carried
in a shop which doesn't care about tools:  You drop a <box> containing 1 item.
	<Shk> offers you <gold> for your items in your <box>.  Sell them?
	[plural 'items' and 'them' were including the box along with the one
	item in it even though shk was only offering to buy its contents]
grammar correction for "That walking shoes is really a small mimic" when
	applying a stethoscope
mimic immitating a slime mold would change fruit type when player assigned new
	named fruit
parsing for the argument to 'scores' option was sloppy; "3a/o" (slash) and
	"3a 1o" (space and digit one, not lowercase L) both worked but "3a o"
	(just space) was supposed to but didn't
wizmakemap could leave genocided monsters on map
when entering Astral level, initial rendering of guardian angel didn't show
	it as tame; noticeable if the level was entered with 'hilite_pet' On
fix a leashed pet polymorphed into a long worm staying leashed
prevent leashing unsolid monsters and monsters with no extremities
playing musical instruments gave feedback which ignored deafness
some other deafness-related message corrections
when dipping into holy/unholy water while blind (where the glow message is
	suppressed), clear dipped item's bknown flag unless water potion's
	bless/curse state is known
playing music while hallucinating:  message misspelled "butterflies"
putting on gloves while having slippery fingers transfered slipperiness to
	those gloves; taking off slippery gloves directly was disallowed but
	losing them in other ways transfered slipperiness to bare fingers
when a monster reads a scroll of fire to cure sliming, don't access that
	scroll's memory after it has been used up (bcsign)
monster vs monster attacks didn't handle shades or silver weapon feedback
successful alchemy would show new potion's description (color) even when blind
dipping some types of objects into oil would yield "<object> gleams with an
	oily sheen" even when blind
dipping into an undiscovered potion would offer chance to give a name to the
	potion even when its description wasn't known (picked up while blind)
dipping lichen corpse into acid when not blind and acid was undicovered would
	not offer a chance to give a name to the potion after lichen feedback
pluralization improvement for words ending in a k-sound like "biotech"
check for whether a monster was entering a region (gas cloud) erroneously
	depended upon whether or not the hero was inside the same region
all Is_*_level tests during early startup would test as true until
	dungeon_topology was initialized in a new game or restored from 
	a save file


Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
------------------------------------------------------------------
elemental_clog() loop needed to guard against obliteration of the monster
	that was trying to be placed
using ^G to create "hidden mimic" shouldn't have marked it as undetected since
	mimics 'hide' by appearing to be something else; honor "hidden" for
	'hides_under' creatures if/when created at location with object(s),
	also for eels and other fish if/when created at water location
for wizard mode 'wizweight' option, glob weight wasn't shown unless glob had
	shop price information attached
fix for feedback when a monster plays a fire horn at self to cure green slime
	ended up being used for zapping a wand of fire at self too
wizard mode ^I "not carrying anything" still claimed "not carrying anything"
	if "(all items are already identified)" was given
monster throwing from stack of missiles (darts, daggers, spears) would cause
	crash if it wasn't wielding a weapon (bug in multi-shot shooting fix)
surviving death while polymorphed would yield "You are a <foo>" without
	terminating period
'mksobj failure' commit resulted in wrong corpse types for dying monsters
a recent intended sanity check fix inadvertently bypassed placing a thrown
	chained ball back onto the floor
in symset:curses, symbol S_tree was accidentally set to horizontal line where
	plus-or-minus sign was meant; also, change S_bars to not-equals sign
percentage highlighting for Xp broke up/down/changed highlighting for it;
	it was flagged as having gone up every time the percentage changed
deaf change to zap_over_floor needed to be restricted to player actions only
monster vs shade attack inflicted damage despite "passes harmlessly through"
fix for feedback from musical instruments played while deaf ignored whistles
special map display symbol S_player_override renamed to S_hero_override
curses: sometimes the message window would show a blank line after a prompt
curses: the change to show map in columns 1..79 instead of 2..80 made the
	highlight for '@' show up in the wrong place if clipped map had been
	panned horizontally
curses+'perm_invent': menu coloring patterns which match ordinary inventory
	menu might fail to match persistent inventory window because leading
	article and space ("a ", "an ", "the ") is stripped off for brevity;
	perform the pattern matching tests before stripping doname() prefix
tty: revert the attempt to fix "message line anomaly: if autodecribe feedback
	wrapped to second line, the wrapped portion wasn't erased when a
	shorter line was shown or getpos was dismissed" because it disrupted
	prompts that spanned more than one line, a more significant issue


Fixes post-beta1
------------------------------------------------------------------
fix several tribute typos
pluralization correction for unlikely epoch and loch
ensure that --showpaths displays the personal configuration file last
don't strip leading slash from hallucinatory monster name "/b/tard"
quaffing unknown potion of see invisible resulted in asking what to call the
	potion while updated monster display was buffered so not yet shown,
	hence potentially noticeable effect was concealed from player
when Riders use their bargethrough capability, don't let them swap places with
	something located at a spot where corpses can't be created (their
	door opening ability was letting them exchange places with something
	co-located with a closed door without opening it; if killed there,
	there'd be no corpse so no auto-revive)
putting on levitation boots while on sink would crash when attempting to set
	the enchantment known flag on Null 'uarmf' pointer
look-at of mimics mimicking altars got an arbitary alignment from misuse of
	underlying terrain
polymorph_sink creating an altar passed a call to rn2() as an argument to a
	macro which evaluates its parameter more than once
if a monster (presumably sensed but not seen) was displayed at a location
	showing "remembered, unseen monster", remove that since hero now knows
	something else is there (3.6.1 had similar fix for warned-of monsters)
clairvoyance showed all monsters in range, then after player viewed the map,
	replaced them with "remembered, unseen monster" glyph and finally
	did a normal monster refresh; the 'I' glyph step clobbers remembered
	object at same spot, so skip it for locations where monster refresh
	is going to immediately redisplay a monster
take holes that you avoided into consideration when you're on the brink
update window port spec to include a color-availability table that the window
	port can set; merge all has_color() implementations into one central
	function in src/windows.c which uses a few data checks only and
	elminates multiple string function calls for each map cell update
	that were being done in some cases previously
taking off a fedora or dented pot (no-delay helmets) left the helmet stuck
	and took off hero's suit
unix: fix double DLB definition in linux hints file
windows: fix --showpaths output for the data file which relies on being
	constructed programmatically to incorporate the version suffix
windows+tty: add code to make keypad support for swap_yz behave (currently
	commented out in include/ntconf.h)
windows: fix self-recover user prompting (tty, curses, mswin)


Platform- and/or Interface-Specific Fixes or Features
-----------------------------------------------------
EDIT_GETLIN: wizard mode 'monpolycontrol' was using the getlin() answer buffer
	to format the coordinate portion of the "change <monster> @ <x,y> into
	what kind of monster?" prompt, resulting in "<x,y>" as default answer
EDIT_GETLIN: when naming an object or a monster use the existing name, if
	there is one, as the default answer
EDIT_GETLIN: using 'O' to set message types or menu colors was overloading the
	answer buffer with other stuff, resulting in bogus default response
	during repeat prompting
EDIT_GETLIN: for paranoid confirmation, if answer was neither "yes" nor "no",
	don't supply the rejected answer as the default when retrying
USE_FCNTL: nethack wasn't closing lock file 'perm'
curses: very tall menus tried to use selector characters a-z, A-Z, and 0-9,
	but 0-9 should be reserved for counts and if the display was tall
	enough for more than 62 entries, arbitrary ASCII punctuation got used
curses: when all available lines in the message window are in use,
	autodescribe feedback for 'pick a position with cursor' overwrote
	the last line (usually the 'pick a position' prompt/hint), sometimes
	leaving part of longer underlying line's text visible
curses: if message window is only one line, cancelling some prompts with ESC
	left the prompts visible on the message line instead of erasing them
curses: support EDIT_GETLIN (but like with tty, it's disabled by default) to
	pre-load an earlier response as the default answer for some prompts
	(however, it's skipped if the 'popup_dialog' option is On)
curses: when display windows get reconfigured (after setting align_status,
	align_message, statuslines, windowborders or due to external resize),
	the message window was being refreshed with most recent message and
	the oldest available N-1 messages rather than next to most recent N-1.
	[Still room for improvement when short lines are combined or long
	ones are wrapped, where it still shows a subset of N original lines.]
curses: plug memory leak when getting a line of input is cancelled by ESC
curses: after requesting a line of input from player, next line of message
	window could end up being skipped
curses: don't convert ^M (or <return> or <enter> key) into ^J; both ^J and ^M
	indicate end of input when typing a line of text but as nethack
	commands, ^J means run toward bottom of screen (when number_pad is
	off) and ^M is not bound to any command, so accidental <return> won't
	cause the hero to try to move
curses: draw map in screen columns 1..79 like tty, rather than in 2..80
curses: make text windows wider so that help feedback is more readable
curses: using ':' for toggling menu items which match a search string, in a
	multi-page menu it would highlight arbitrary items on the currently
	visible page in sync with lines that matched items have on other pages
curses: when map window was clipped, position bars shown to indicate which
	part of the map was in view didn't work as intended, always drawing
	"*--------------" for horizontal (and comparable '*' with multiple '|'
	underneath for vertical) when it meant to show "---******------" if
	the 2nd and 3rd fifths (for example) were currently within view
curses: support users's setting for erase char and kill char when getting a
	line of input with 'popup_dialog' Off (already supported for popup On)
curses: support erase char and kill char when choosing an extended command
curses: attempting to use ^H to rush left actually executed ^G (#wizgenesis)
curses: disable the attempt to support Ctrl+Left_click as an alternate way
	to generate Right_click for systems with one-button mouse or trackpad;
	the mouse data passed to nethack didn't match the curses (ncurses on
	OSX 10.11) documentation and things didn't work as intended
curses: menu coloring required that both 'menucolors' and 'guicolor' be On;
	for menus, ignore 'guicolor' and honor more-specific 'menucolors'
curses: support symset:curses and symset:DECgraphics for map display
curses: enable the 'use_inverse' boolean option (via wincap WC_INVERSE flag)
	for extended monster detection and black&white lava; forced to True
	to override default of False (for tty's benefit)
curses: force 'O' command's menus for 'symset' and 'roguesymset' options to
	be wider so that fewer entries with set descriptions will wrap
curses: stop restricting menu width to half the display width
curses+'perm_invent': entries were wrapping without any control; usually not
	noticeable because next entry overwrote, but visible for final entry
	when whole inventory fit within the available height; looked ok with
	borders Off but clearly wrong for borders On
curses+'perm_invent': if too many entries for window height, last one which
	fit had the next one appended (including hightlighted selector letter)
	when window borders were Off
curses+'perm_invent': top line was wasted (left blank) when borders Off
curses+'perm_invent': don't highlight inventory letters since nothing is
	selectable from the menu comprising the persistent inventory window
curses+'perm_invent': could crash during restore if game was saved while
	hero was swallowed (invalid u.ustuck pointer; suppressing attempts to
	update persistent inventory window during restore hides the problem)
curses+'popup_dialog': show the text cursor at the end of prompts for single
	character input
curses+DUMPLOG: pass along old messages from save file and quest message
	summaries to dumplog message history
curses+EDIT_GETLIN: when a prompt's answer was preloaded, using ESC to discard
	it deleted it from the answer buffer but didn't erase it from screen
curses+EDIT_GETLIN: the preceding fix handled an answer which spanned more
	than one line but didn't remove the answer properly if the prompt
	portion of prompt+answer spanned more than one line
msdos:  code fixes to allow a build with curses and PDCurses
msdos:  added Makefile1.cross (host portion) and Makefile2.cross (target 
	platform portion) to assist in moving this port toward a cross-compiled
	build hosted on linux/OSX/Windows with recent C dialect support; that
	will also pave the way for CI automation and testing of the msdos port
	build in future should the port remain on the radar; currently only
	useful for testing the msdos port compile as it cannot yet build a
	complete game
tty: re-do one optimization used when status conditions have all been removed
	and remove another that tried to check whether condition text to be
	displayed next was the same as the existing value; sometimes new
	status condition wouldn't be shown unless a screen redraw was forced
tty: take two, if/when autodecribe feedback wraps past top line, clear
	continuation lines and redraw map if needed when top line is cleared
	['exposed by git' section has an entry for reversal of 'take one']
tty: video attributes (bold, inverse, &c) for status highlighting sometimes
	were scrambled
unix: sysconf CHECK_PLNAME=1 wouldn't work if attempt to obtain unix username
	failed even though it didn't need that to check player character name
unix+curses: startup error only reset terminal for tty; one noticeable
	example was answering 'n' to "Destroy old game?"
vms: update install.com to include overlooked file bigrm-10.lev in nh-data.dlb
Windows: some startup error messages were not being delivered successfully
WindowsGUI: player selection dialog box layout was not being adjusted for DPI
Windows: significant changes to default directory choices; see documentation
	for details


General New Features
--------------------
classify sources as released, beta, or work-in-progress via NH_DEVEL_STATUS
	rather than just released vs beta via BETA
if you reach the edge of a level (relatively uncommon) and try to move off,
	report that you can't go farther if the 'mention_walls' option is set
'attributes' disclosure at end of game includes number of experience points
	that were needed to reach the next experience level (new for normal
	play and explore mode; previously only shown for wizard mode)
report Friday-13th/phase-of-moon/time-of-day for ^X and final disclosure when
	their values matter to game play (date and moon are from the start of
	current session and are not dynamically updated as real time elapses;
	night is a fixed range of hours using the computer's conception of
	local time which could differ from player's if there are time zone or
	system clock issues or simply seasonal variation based on latitude;
	not new but needs to be documented somewhere other than spoilers...)
status highlighting using percentage rules now supported for experience level
	and experience points; for both, percent is based on Exp progress from
	the start of the current Xp level to the start of the next Xp level;
	100% isn't possible so used as special case for next_Xp_lvl - 1 Exp_pt
wizard-mode: display effect to show where an unseen wished-for monster landed
for 'O's symset and roguesymset menus, mark current symbol set as preselected
curses: enable latent mouse support
curses: give menus and text windows a minimum size of 5x25 since tiny ones can
	sometimes be overlooked when shown over old messages rather than map
curses+'perm_invent': since persistent inventory is narrow, strip off "a",
	"an", or "the" prefix on inventory entries shown there so that a tiny
	bit more of the interesting portion is visible
curses+'curses': change the curses map display to use new symbol set 'curses'
	instead of hard-coded values; it attempts to show IBMgraphics-style
	map using DECgraphics characters; DECgraphics can also be used as-is
fulfill a request from a blind player to have a unique overriding SYMBOL for
	pets and for the player
ROGUESYMBOLS can be overridden in config files like SYMBOLS can
in symset:DECgraphics, set S_altar to 'pi' (was default '_'), S_bars to
	not-equals sign (was 'pi')


NetHack Community Patches (or Variation) Included
-------------------------------------------------
add a couple of engraving suggestions in pull request #79
chasonr's faster method to write characters to msdos VGA in pull request #220
chasonr's msdos Makefile.gcc pdcurses build changes in pull request #243
autopickup exception priority change in pull request #226
FIQ's curses (PDCurses) number pad changes in pull request #247


Code Cleanup and Reorganization
-------------------------------
began to add some function caller BREADCRUMBS to aid debugging
flag existing occurrences of "You hear" as "Deaf-aware" to aid in
	future maintenance