$NHDT-Branch$:$NHDT-Revision$ $NHDT-Date$

General Fixes and Modified Features
-----------------------------------
doc/*.6 man pages and corresponding doc/*.txt text copies were out of date
data.base entry for "lava" had wrong first name for Don Woods' attribution
cursed genocide of "none" sent in monsters, but "that's enough tries" didn't
update MAXPLAYERS documentation in sysconf file and accept 0 for 'no limit'
wizard mode: don't include feedback about named fruit for ^X and enlightenment
looking at distant objects while wearing the Eyes of the Overworld made their
	up-close descriptions known when not intended
message when cursed wand zapped by a monster happens to explode was suppressed
	if hero was deaf, even though that message has no audible component
support explicit 'symset:default' and 'symset:Default symbols' in options
crash during startup if player name set as 'player' in defaults
crash during startup if defaults file has a long line
any existing vampire shape-shifted into critter (fog cloud, bat, wolf) became
	an unkillable critter if vampires were genocided
unlike in previous versions, an uncursed scroll of enchant armor failed to
	uncurse the piece of armor being enchanted (change was unintentional)
slice of {pizza,cake,&} pluralized as "slouse of ..." due to false match
	with "lice" (discovered pre-3.6.0-release)
change dipping prompt to not ignore 'called' and 'named' attributes of item
	to be dipped
avoid 'the unlabeled {scroll,spellbook} fades' when blank item is hit by water
wrong message given when high priest on astral plane rejects being assigned a
	name (got the one for unique monsters instead of the one for priests)
negative intrinsic protection shouldn't confer MC=1, "you are warded" (not
	possible from divine protection but is possible from eating rings)
make a slight adjustment to the quickmimic() sense wording
fix typo in passage 1 of The Colour of Magic
falling asleep when reading dull spellbook ignored sleep resistance
getpos() complaint about invalid movement keystroke didn't describe meta-chars
	accurately
'realtime' value in xlogfile was incorrect if 'checkpoint' option was active
make a previously-discovered scroll written with marker while blind have its
	label known so it can be read while blind
#name or C for discoveries list that spanned multiple pages would exit on
	space instead of advancing to next page (workaround: use '>' instead)
don't show the old level when you die going down the stairs because of an
        iron ball
new high score with ", while helpless" attribute appended would erroneously
	result in ", while helpless" being appended to all scores
allow bright aliases for colors in menucolors
avoid hearing yelps when you are deaf
make corpse visible if stethoscope told you about it being there
sceptre of might database entry word change
avoid "spellbook of novel" on discoveries list after object ID of novel
add novel to discoveries list after reading one
putting gold into hero-owned container on shop floor gave free credit
stack splitting for dipping large quantities of potions was done poorly
dipping fruit juice into enlightenment gave different result than the inverse
make travel walk up to a trap and stop when the trap blocks the only
	way forward, instead of trying to go straight line
travel will displace pets rather than stop
do not autopickup unpaid items in shops
death due an unseen gas spore's explosion resulted in "killed by a died"
allow optional parameter "true", "yes", "false", or "no" for boolean options
actually make the castle chest not trapped
level-drain resistance wasn't shown during enlightenment if it was conferred
	by worn/wielded equipment or by lycanthropy
wizard mode enlightenment now shows more reasons for various intrinsics
rehumanizing after being poly'd into vampire left hero with ability to sense
	humans and elves
Warn_of_mon wouldn't have been able to sense giant ants if any creature were
	to have that ability, caused by using 0 instead of NON_PM for 'none'
tone down energy vortex's drain energy attack
fix message typo if tame mind flayer dies trying to eat Medusa's brains
use alternate rejection message if attempting to name an unnameable monster
	with the name it already has
cockatrice corpse no longer leaves multiple statues for shape-shifted vampire
alter name of monster causing hero's death if name contains characters that
	could cause confusion when using record, logfile, or xlogfile later
teleporting or polymorphing a sink via ring drop shouldn't depend upon being
	able to see it happen
change "unlockable chest" to "broken chest" so that it won't be misunderstood
	("capable of being unlocked" vs intended "not capable of being locked")
use doname instead of xname when using '/' or ';' to look at objects on map
when a pet moves reluctantly, name the top item of the pile it is reluctant
	to step on if the hero sees or remembers any object(s) at that spot
ensure sufficient messages are given to clarify the transition from detected 
	vampire bats to fog clouds in Vlad's tower
fix "killing by kicking something weird" when kicking an object causes death
guard macros available for mextra fields similar to those for oextra fields
compile-time option for an alternate paniclog format for public server use
make monsters forget where they stepped when fleeing or teleporting
requiver pickup_thrown objects if quiver is empty
make mimics mimicing walls or trees also block light
stepping onto lava destroyed non-fireproof water walking boots but left other
	vulnerable boot types intact
damage and death reasons when eating globs referred to them as corpses
fix death reason when petrified (avoid redundant 'while getting stoned')
use appropriate place name for drum of earthquake shakes
fix unmapped branch stairs on sokoban level
redraw map when hilite_pile is toggled to display the highlighting
make commands that accept a count prefix for item selection
	show "Count:" like command repeating does
make vault guard accept names starting with number
fix weight of containers in special levels
make the raven medusa level shortsighted
fix possible segfault in lev_comp when map was too tall
fix "the ice is bridged with ice" when freezing castle's moat or Medusa's sea
make monsters and pets avoid poison gas clouds if it would damage them
covetous monsters may choose to teleport to downstairs or ladders
doppelganger posing as Rider would never change shape
since doppelganger posing as Rider could never revert to innate form,
	protection from shape changers turned it into genuine Rider
don't create globs of ooze/slime/pudding with bknown flag set so pre-known to
	be "uncursed"
do allow globs with same curse/bless state to merge even when that state is
	known for one and unknown for the other; result will have bknown clear
make glob merging on floor behave the same as glob merging in inventory
track age of merged globs
support globs for edibility temporary intrinsic
restore ability to gain intrinsics from black puddings (pass globs to cpostfx)
eating tainted black pudding (glob in 3.6.0, corpse in 3.4.x and 3.3.x)
	referred to it as "meat" (because it's not vegetarian food)
fix pile mark after killing a monster carrying a potion which is destroyed
don't list suit as likely candidate for Take-off if cloak blocks it
only list known blank scrolls and known blank spellbooks as likely candidates
	when choosing an item to write on for applied magic marker
make status hilites use same color names as menucolors
limit monster spell aggravate monsters to either outside or inside of the
	Wizard's tower
prevent revived unique from inheriting a user-defined name
make hurtling out of water bubble on the Plane of Water handle entering water
fix floor descriptions on the Planes when levitating
fix warning glyph description when monster symbol coincided the warning symbol
allow the same color names for status hilites and menucolors
override MSGTYPE=norep while executing the ':' command
if a chameleon took vampire form, it would stop periodically changing shape
corpses obtained from tipping an ice box wouldn't rot away
suppress "you climb up the stairs" message if verbose option is off
physical damage from mind flayer attack was being inflicted twice
adjust pending movement points when polymorphing into a slower creature
damage inflicted by burning glob of green slime gave wrong messages
monsters fleeing up the upstairs on level 1 were supposed to escape the
	dungeon but ended up arriving on Plane of Earth
monster hitting fire-dealing monster with weapon triggered passive damage to
	weapon every time, when hero doing so only had 1/6 chance per hit
hitting steam vortex with flammable weapon would damage the weapon with fire
if a non-cursed spellbook being read becomes cursed and hero recognizes that
	(bknown is set), interrupt reading
if a non-cursed spellbook being read becomes cursed and hero doesn't notice,
	don't leave it flagged as in-use (hence to be deleted during the
	next save/restore cycle) if contact-poison cursed book effect occurs
stolen_value, used when breaking shop items from outside the shop among other
	times, could describe the shopkeeper as "it" when not seen
when two or more shopkeepers were visible at once, 'p' command could be used
	to probe map for locations of other shopkeepers and arbitrary monsters
vortexes and other unsolid monsters need not avoid webs
barbarian and samurai can achieve basic in their special spell's skill
scalpel and tsurugi can now split puddings; bashing with darts or arrows can't
jumping while punished could leave ball and chain in the wrong place
improve Deaf message handling for the minetown watch and shops
issues with Warning when you're adjacent to an undetected hider; clearly you
	are aware a monster is present so this causes you to search it out
allow lookup of names like Hachi when selecting monsters from the map
lookup "More Info?" prompt will now tell you what it will look for on 'y'
using 'R' on armor would bypass some restrictions imposed by 'T' (inner layer
	could be taken off from under outer layer, embedded scales could be
	attempted but triggered "select_off" impossible)
when examining hidden monsters (probing, persistent monster detection), tell
	how they're hidden (under an object, on the ceiling, etc)
some quest text corrections
use a much tighter upper bound when summoning nasties; old method could
	theoretically create 200 critters at a time
if a long worm inherited inventory from a previous shape, and if an egg or
	figurine in that inventory hatched or auto-activated, messages were
	given when hero could see any tail segment even if head was unseen,
	making it seem as if worm's inventory was kept in the visible segment
Wizard will now steal any quest artifact from hero, not just own role's
prevent a hostile renegade Angel of <lawful god> from delivering taunt
	messages which mention threats of retribution from that god
a few types of monster (barrow wight, Nazgul, erinys) have weapon attacks that
	don't deal physical damage, so special damage like stoning via wielded
	cockatrice corpse wouldn't be inflicted
non-item-using monsters who happened to be carrying scroll or wand of fire or
        a fire horn could use it to cure themselves of being turned into slime
when looting multiple containers, add 'n' for "loot next container", change
	'q' and ESC from "done with this container" to "done looting"
change looting to choose ":iobrs nq" action from a menu for menustyle:Partial
wand/spell/breath zaps that reached the edge of the level on the Plane of Air
	and "vanished into the aether" left temporary display effects on screen
stop amulets and other items which aren't affected by erosion damage from
	being subjected to erosion damage
grammar bit: polyself w/ gender change yielded "you turn into a Elvenking"
some blindness cures ignored u.ucreamed
some instances of stun or confusion timers were being overridden rather than
	incremented when new stun or confusion damage was suffered
female gnome who gains level can grow up into male-only gnome lord; give an
	an alternate message instead of prohibiting the promotion
kicked weapon which successfully hits monster vanishes from play
unseen landmine explosion could result in "The <monst-type> statue crumbles."
when using the 'O' command for regexp options (autopickup exceptions,
	menucolors, message types), provide opportunity to add more than one
	at a time [after 'add', return to add/list/remove menu]
commands invoked by uppercase meta characters: M-A, M-C, M-N, M-O, M-R, M-T
	were missing from '? c' list of game commands (dat/hh)
tweak Baalzebub's lair and clean up the map display for it
symbol set definitions didn't recognize S_darkroom and S_vibrating_square
wizard mode enlightenment was reporting "very fast innately" (which is not
	possible) for very fast hero who was innately fast
when attacking a monster with a rust or corrosion or acid passive
	counter-attack, grease wasn't protecting the attacker's weapon
the Bell of Opening now correctly reports when it opens a trapdoor/hole
knocking can no longer send a monster through a trapdoor/hole and desaddle it
game no longer gets confused when you break an unpaid shop item while inside
	a different shop
shopkeepers now correctly handle nested containers and gold in containers
for menustyle traditional, 'D' followed by (B|U|C|X)&m presented a menu of
	everything, not just invent subset matching specified BUCX categories
for menustyles traditional or combination, 'A' (or object ID) followed by i
	displayed an inventory of everything rather than just worn items (or
	not fully identified items)
exploding chest trap would destroy uchain while still worn if uball carried
if monster shapechange message "<foo> turns into <bar>!" was given, <bar>
	could be "it" (if <foo> sensed telepathically and <bar> is mindless)
automatic annotation for Ft.Ludios level got applied when a drawbridge became
	mapped, but entry there is a secret door rather than a drawbridge
sortloot changed to group holy water and unholy water with water instead of
	placing them among the h- and u-named items
sortloot changed to place diluted potion of foo after potion of foo instead
	of listing all diluted potions followed by all non-diluted ones
digging down on a grave converted the terrain to floor but did not create a
	pit and uncover the grave's contents; digging again--on floor--did
when feel_location removed a remembered-unseen-monster glyph from a known
	water location while hero was levitating, the map was redrawn showing
	floor instead of water at that spot
Vlad's tower2 and tower3 didn't show up in wizard-mode ^O output or ^V? menu
remove extra space from "All of your  <stack-of-potions> boil and explode."
	(also applies to potions freezing and to scrolls burning)
effects of cursed potion of levitation were skipped if already levitating
when engulfed, having swallower be killed by angry deity trying to zap hero
	no longer violates pacifist conduct (other penalties--reduced luck or
	alignment--still apply if target is something you shouldn't kill)
likewise when a monster kills inself trying to prevent turning to stone or
	into slime that's been caused by the player, pacifism is not affected
metabolism adjustments: hero poly'd into metallivore form still needs to eat;
	being fainted or unconscious from other than sleep now consumes
	nutrition at lower rate, like being asleep already did;
	starvation threshold shortened due to slower food use while fainting
after using detection magic or #terrain while underwater, then leaving water
	and saving while on land, save would flag you as underwater again and
	then restore would limit the map display accordingly; next move would
	notice, retify things, and report "you are on solid land again"
change #terrain used while underwater to view the regular map rather than the
	crippled underwater one
can see or feel adjacent lava or ice when underwater
farlook when underwater now reports "land" for adjacent non-{water,lava,ice}
	and "unreconnoitered" for non-adjacent anything, instead of "dark part
	of a room" for the former and either dark-room or "unexplored" for the
	latter depending upon whether the spot had previously been scouted
monster who accidentally killed itself by zapping wand of fire or fire horn
	at self to prevent turning into slime was not properly killed off;
	it wouldn't benefit from an amulet of life saving and would trigger
	impossible "dmonsfree: N removed doesn't match M pending"
resurrecting a shopkeeper corpse caused crash (replmon -> replshk -> inhishop
	-> no eshk data for temporary monster being replaced with revived shk)
new character with OPTIONS=role:Valk,race:!human,align:!lawful yielded
	"Shall I pick your Dwarven Valkyrie's for you?" where !human forces
	dwarf and dwarf forces lawful, contradicting align:!lawful
new character with OPTIONS=role:Valk,race:random yielded
	"Shall I pick your Valkyrie's race and alignment for you?" instead
	of honoring race:random without asking


Fixes to Post-3.6.0 Problems that Were Exposed Via git Respository
------------------------------------------------------------------
fix "object lost" panic during pickup caused by sortloot revamp
more sortloot revisions
fix inventory menu for response of '?' to getobj (more sortloot revamp fallout)
rings covered by non-cursed gloves not listed as 'R' candidates
in baalz_fixup, move any monster away from the two fake pool spots
switching farlook from xname to doname was giving away information for items
	located via object detection (quantity of detected gold)
catch up win/Qt/qt_win.cpp on 18-Dec-2015 change to formatkiller()
fix for long lines in config file (28-Jan-2016) made 'O' command's 'list' and
	'remove' menu choices in interactive handling for menu colorings,
	message types, and autopickup exceptions subject to buffer overflow


Platform- and/or Interface-Specific Fixes
-----------------------------------------
tty: M-N gave "Unknown command 'M-" with "'." finishing the sentence on the
	line below it, leaving bogus '.' displayed on the top row of the map
tty: specifying all four of role, race, gender, and alignment still prompted
	for confirmation with "Is this ok?" before starting play
tty: responding with <return> or <enter> during role, race, &c selection
	behaved same as <escape> to quit; now it will pick [random] instead
tty: rename struct variable 'filter' (role.c) and function 'winch()' (wintty.c)
	to avoid conflicts with <curses.h>
tty: skip selector letter and selection indicator (-,+,#) during menu coloring
tty: '>' no longer closes a menu window
tty: if color is disabled and use_inverse is enabled, display lava in inverse
	video so that it is visually distinguishable from water
tty: if "--More--" was written to leftmost column (beginning of second line)
	while hero was swallowed, cursor would end up in wrong place (at end
	of status line instead back on map) after message line was cleared
unix/X11: in top level Makefile, some commented out definitions of VARDATND
	misspelled pilemark.xbm (as pilemark.xpm)
unix: options file with CR+LF line ends and an invalid option line resulted in
	"ad option line: "whatever-the-line-was
	because embedded carriage return character changed cursor's position
unix: race condition with parallel make: src/Makefile might start building
	makedefs before finishing monst.o and objects.o; if so, util/Makefile
	can build them too, and they might be clobbered by simultaneous write
unix: Makefile.{src,utl} ignored CPPFLAGS which is expanded by the default .c
	rule by GNU make so if user had a value for that in the environment,
	it would apply to some files but not others; explicitly override it
win32gui: getversionstring() was overflowing the provided Help About buffer
win32gui: guard against buffer overflow in in mswin_getlin()
win32gui: handle menu_color attribute
MacOSX: initial binary release was built from out of date source code that
	had 'BETA' and 'DEBUG' inappropriately enabled
MacOSX: force TIMED_DELAY build option on so that 'runmode' run-time option
	is functional
Qt: could issue impossible "Destroy called before we know if Menu or Text"
	followed by crash caused by deferencing a Null pointer if player quit
	immediately after creating character and declined to disclose anything
X11: core bug for '`' (backtick) and #terrain commands was only noticed by
	X11 interface: impossible "add_menu: called before start_menu"
X11: enable a scroll bar in menu windows
X11: support pre-selected entries in menu windows
X11: make the extended command menu be easier to use and look a little nicer
X11: make the getline text entry widget display a bigger text entry area
X11: color didn't work when the map was displayed as text rather than tiles


General New Features
--------------------
naming Sting or Orcrist now breaks illiterate conduct
different feedback for reading a scroll of mail created by writing with marker
reading non-cursed scroll of enchant weapon uncurses welded tin opener
if hero has no jumping ability but knows the jumping spell, the #jump command
	will attempt to cast the spell
allow moving cursor to monsters with 'm' (nearest first) and 'M' (furthest
	first) when asked for map location, or to objects with 'o' and 'O'
allow picking a used inventory letter from menu when #adjusting
zapping wand of opening at yourself, unlock carried boxes
dissolve iron bars by force-fighting with wielded potion of acid
poison breath leaves a trail of poison gas
allow knife and stiletto as possible tin opening tools
wizard mode #wizintrinsic command
additional tribute passages for The Colour of Magic, The Light Fantastic,
	Equal Rites, Mort, Sourcery, Wyrd Sisters, Pyramids, Guards! Guards!,
	Eric, Moving Pictures, Reaper Man, Witches Abroad, Snuff, and
	Raising Steam
compile-time options SIMPLE_MAIL and SERVER_ADMIN_MSG for public server use
database entries for Cleaver, Sunsword, Frost and Fire brands, and
	polymorph trap
allow showing coordinates when picking a position on the map and
	autodescribe option is on
new status line conditions Stone Strngl Deaf Lev Fly Ride
allow some extra color name aliases for menucolors and status hilites
add extended command #kick
when choosing an inventory item and '-' for bare-hands/fingers/no-ammo is a
	choice, include that in the inventory menu if player types '?' or '*'
feedback from probing of long worm now includes number of segments it has
monk starts with 'shuriken' pre-discovered (despite language issue...)
item-using monster on or next to a fire trap can use it to be cured of
	turning into slime
wizard mode ^G can now specify "male" or "female" when creating a monster
REPRODUCIBLE_BUILD is new config.h setting to fetch build date+time from
	environment instead of using current date+time, so that later rebuild
	could duplicate the original (disabled by default; tested for Unix)
default value for vibrating square symbol changed from yellow '^' to purple '~'
allow symbol set values to be specified via char within single quotes
add symbols set "plain", same as default except it uses '+' for corner walls
extend wizard-mode '#stats' command
'Q' to ready an item for quick-throwing ('f') now allows the wielded weapon to
	be moved to quiver; if quantity is more than 1, it offers to split the
	stack and leave 1 wielded, otherwise it requires confirmation
'Q' will accept an item count to manually split a stack as part of it being
	quivered, provided the stack isn't already in the quiver slot
during end of game disclosure, the vanquished monsters list can be sorted in
	one of several ways by answering 'a' to "disclose vanquished monsters?"
when #terrain is displaying a censored version of the map (no monsters, &c),
	moving the cursor will display farlook's brief autodescribe feedback


Platform- and/or Interface-Specific New Features
------------------------------------------------
tty: menu_overlay -option to clear screen and align menus to left
tty: compile-time option to output escape codes for tile data hints
unix: compile-time option MSGHANDLER to pass messages to external program
unix: add CHECK_PLNAME-option to sysconf to make WIZARDS, EXPLORERS, and
	SHELLERS check player's character name instead of login name
X11: new NetHack*highlight_prompt resource to control whether the persistent
	prompt line between the map and message windows for the NetHack*slow
	configuration will be highlighted when it's expecting input
X11: NetHack*extcmd_height_delta resource can be used to adjust initial size
	of the extended commands menu
X11: status display split into three columns to accomodate Stone/Deaf/Lev/&c;
	NetHack*status_condition.foreground, .background, and .showGrip
	resources replaced by status_condition[1-3].*


NetHack Community Patches (or Variation) Included
-------------------------------------------------
Malcolm Ryan's improved tin opener
Ray Chason's keyboard may stop responding after locking or unlocking a door when
	using altkeyhandler=nhraykey.dll 
Ray Chason's fix: window interfaces that support transparency may give away unseen
	parts of the map
Ray Chason's xprname should honor iflags.menu_tab_sep
Ray Chason's punctuation for "That foo is really a mimic."
Ray Chason's proper background tiles for lava and water
Ray Chason's MS-DOS port restored to functionality with credit to Reddit user 
	b_helyer for the fix to sys/share/pcmain.c
Ray Chason's MSDOS port support for some VESA modes


Code Cleanup and Reorganization
-------------------------------
removed some unused variables and dead code
the level generator no longer uses the native pRNG
