$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.76 $ $NHDT-Date: 1580043420 2020/01/26 12:57:00 $

General Fixes and Modified Features
-----------------------------------
hero polymorphed into a vampire can use #monster to shape-shift rather than
	just do a one-shot polymorph into bat/cloud/wolf and shifted vampire
	hero can use #monster again to take on another form (randomly chosen
	among the shiftable shapes and true vampire form)
adjust bones filename buffer sizes to accommodate suffix
fix internal self-recover to work with recent fields added to checkpoint file
improvements to pronoun usage when hallucinating
function calls made from mapglyph based on dungeon level are now called once
	per level
fast hero could have random clairvoyance happen more than once on same turn
using 'Q' on wielded weapon would offer to split stack; make using 'w' on a
	quivered stack behave similarly
weight for giant spider was too low for creature of size 'large';
	weight for giant beetle was much too low for 'large'
leave some menu items out of "invert all" via '@' when their inclusion would
	degrade the usefulness of that interface feature
change crysknife from mineral to bone and worm tooth from unspecified to bone
worn meat ring shouldn't cause increased hunger; neither should fake Amulet
worn +0 ring of protection should cause increased hunger if it is the only
	source of extrinsic Protection
monster wielding Stormbringer or healer's Staff against another monster would
	heal the hero instead of the wielding monster when draining life
change twoweapon feedback from "not a weapon" to "not a suitable weapon"
don't allow twoweapon combat if either weapon is a bow, crossbow, or sling
drum of earthquake feedback reported various things (fountains, thrones, &c)
	falling into a chasm but they remained intact because trap creation
	had been changed to not clobber such things (so couldn't make pits)
make earthquake which hits a secret door or a secret corridor reveal it
wizard mode wishing for "Amulet of Yendor" had 50:50 chance for true Amulet
	or a cheap plastic imitation; recognize "real Amulet of Yendor" and
	"fake Amulet of Yendor" to precisely specify either of them but also
	take away the 50% chance of yielding a fake one when neither real nor
	fake is specified
unpaid globs showed weight info unconditionally outside of wizmode
walking out of tethered-to-buried-object trap condition was supposed to
	reinstate punishment but wasn't finding the buried iron ball because
	the trap condition was cleared first to indicate escape; result was
	attached chain that got dragged around but had no ball attached
when poly'd into a giant and moving onto a boulder's spot, message given was
	confused about whether autopickup would occur so could be misleading
random role selection wasn't honoring unwanted alignment(s) properly
if at the edge of the map window, trying to move farther fails but used a turn
hero can no longer wear blindfold/towel/lenses when poly'd into headless form
revamp achievement tracking for exploring Mine's End and Sokoban (by acquiring
	luckstone and bag of holding or amulet of reflection, respectively)
throttle long worm growth rate and HP accumulation


Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
------------------------------------------------------------------
fix compile when DLB isn't defined
urealtime.realtime was being incorrectly calculated
revised "mysterious force" when climbing out of gehennom could generate
	warnings about "rn2(0) attempted" or "rn2(-n) attempted"
after 'w' on split stack patch, wielding '-' would cause an object_lost panic
same patch allowed partial stack from getobj to replace cursed wielded weapon
if the orc-town version of mine town has been loaded, creation of orc zombies
	or orc mummies would name them as part of the town raiding orc clan
autounlock of door or chest took no time; chest case depended on whether
	anything got looted along with the unlocking
autounlock with artifact unlocking tool didn't do touch check on that tool
autounlock picked Rogue's artifact key over lock-pick or credit card (or
	ordinary key depending upon invent order) even for non-rogues who
	would be blasted when touching it
wielded aklys had its "(tethered weapon...)" description scrambled
randomized trap name could pick trap #0 which isn't a trap and yielded "water"
if running and Blind or Stunned or Fumbling or Dex < 10, encountering a closed
	door orthogonally would keep reporting "ouch! you bump into a door"
	repeatedly until eventually interrupted by approaching monster or
	hunger or ^C
data.base lookup of an entry with any blank lines would falsely claim that
	"'data' file in wrong fromat or corrupted" after some extra checks
	were added while investigating tab handling anomalies
using nhl_error() to report a Lua processing problem would clobber the stack


Platform- and/or Interface-Specific Fixes
-----------------------------------------
tty: role and race selection menus weren't filtering out potential choices
	which got excluded by OPTIONS=align:!lawful or !neutral or !chaotic


General New Features
--------------------
if a killer bee encounters a lump of royal jelly and there is no queen bee on
	the level, the bee will eat the jelly and become a new queen
automatic annotation "gateway to Moloch's Sanctum" for vibrating square level
	once that square's location becomes known (found or magic mapped);
	goes away once sanctum temple is found (entered or high altar mapped)
savefile: add support to deconstruct internal data structures down into their
	individual fields and save those fields instead of the entire struct
savefile: use little-endian format for fields where that makes a difference
replace build-time level compiler and dungeon compiler with run-time loading of
	the dungeon and level descriptions and interpreting them via LUA
split off some of the functionality that was in makedefs (compiled-in options
	build date/time, etc) so that it can be built by a cross-compiler
	and accessed on the target platform
replace quest.txt and associated conversion to quest.dat via makedefs with
	lua quest texts loaded at runtime
some altars are displayed in different colors (for tty and curses at least)
add 'quick_farsight' option to provide some control over random clairvoyance
	where pausing to be able to browse temporarily visible aspects of the
	revealed map can seem intrusive; doesn't affect clairvoyance spell
replace "money" in in-game texts with "gold"
when hallucinating, see hallucinated currencies instead of bits for an ale
when hallucinating, see hallucinated liquids when looking at water or lava
	on the map
applying a spellbook hints about read charges left
wizard mode wishing for level topology can now create hidden doors (ask for
	"secret door" when at a door or wall location), hidden corridor
	spots ("secret corridor" at a corridor location), and clouds
tiny chance for randomly created spellbooks to be Discworld novels instead
	of having only one in the first book or scroll shop created (won't
	occur in hero's initial inventory or NPC priest inventory or be
	bestowed as a prayer boon or be found in statues)
'goldX', 'implicit_uncursed', and 'mention_walls' options changed to be
	persistent across save/restore
wearing a wet towel confers "half damage from poison gas" attribute
for end of game disclosure and dumplog, show 'achievements' (previously only
	available as an encoded value in xlogfile) along with 'conduct'


Platform- and/or Interface-Specific New Features
------------------------------------------------


NetHack Community Patches (or Variation) Included
-------------------------------------------------
hallucinatory trap names from github pull request #174
autounlock feature originally from unnethack in github pull request #228
replace "You feel cold" message for freezing unseen door (github #265)
applying a candelabrum with no candles gives a tip (github #265)
candelabrum now reads "(n of 7 candles attached)" (github #265)
show appropriate message on throne when crowned (github #265)
choir chanting, bathing in darkness for death by Moloch (github #265)
remove "iron hook" unidentified description (github #265)
suppress "Unknown command" messages in the dumplog. (github #265)
give player message informing them they can use #enhance (github #265)
neutral sacrifices disappear in a cloud of smoke (github #265)
call potion bottles by nonsensical names if hallucinating (github #265)
add a default message for chatting to gnomes (github #265)
better reporting directions for impossible() (github #265)
underwater fire scroll causes vaporization (github #265)
default shk sell prompt to N (github #265)
teach non-mindless monsters about the Castle trapdoors (github #265)
always print a message when the hero teleports (github #265)
always print a message when the hero level teleports (github #265)
remove Sokoban luck penalties for actions you can't cheat with (github #260)


Code Cleanup and Reorganization
-------------------------------
move majority of global variables into instance_globals struct g
move zeroobj, zeromonst, zeroany into const_globals struct cg
remove STATIC_DCL, STATIC_OVL, STATIC_VAR, STATIC_PTR
old Qt moved from win/Qt to win/Qt3 and files renamed to use qt3_ prefix
more current Qt for Qt version 4 and 5 moved from win/Qt4 to win/Qt; qt4
	moniker changed to qt_
window-port-interface: add_menu() modified to take a more general itemflags
	parameter to support uses beyond just 'preselected'
add some bounds checking to tabexpand (doesn't prevent the apparent compiler
	optimization bug that put homebrew OSX executable into endless loop)


