$RCSfile$ $Revision$ $Date$

General Fixes and Modified Features
-----------------------------------
change the dreaded "Stop eating?" to "Continue eating?" with default "no"
setmangry should not be called when a monster enters a bones region
bad capitalization of msg when charging for something that catches light
missing opthelp for use_inverse
Never say "It moves only reluctantly"
expert fireball/cone of cold could not target a monster seen only with
	infravision or ESP
display "lotus juice", not "lotu juice" for the fruit juice name
only humanoid angelic minions should get/use sword and armor
paper, straw and wood golems resist cold
the options lootabc, showrace, travelcmd, and runmode are now saved
use mons[] array offsets in mnum field in save file rather than storing
	the ptr and calculating the distance from beginning of array
two-weapon combat makes two attacks instead of having one attack hit with
	each weapon
apply weapon skill to-hit bonus or penalty to bare-handed attacks
only give monk's "cumbersome armor" message when the armor penalty causes
	an attack to miss
dust vortex-induced blindness should kick in immediately when blindfold
	is removed or glop is wiped off
prayer/unicorn-horn won't fix blindness while still engulfed in a dust
	vortex since it will just return immediately
being confused and reading cursed scroll of charging drains your energy
class genocide recognizes species name as an example of the class to
	genocide (Martin Snyder)
internals: use Is_box rather than explicitly checking what it checks
fix some unreachable messages (either make then reachable or remove them)
can quiver coins when GOLDOBJ is defined
make #loot behave same for GOLDOBJ as for !GOLDOBJ
for GOLDOBJ, can pick gold up into $ when all 52 letters are in use, and
	can pick non-gold up into unused letter when gold uses one of 52 slots
grammar, spelling and other typos
keep various delayed killers separate to avoid mixed up messages
don't place randomly-placed aquatic monsters in lava on special levels
hiding monsters don't hide under cockatrice/chickatrice corpses
"sound" option renamed to "acoustics"
deafness now a full-fledged attribute
water should flow into pits from broken wand of digging and drum of earthquake
objects that fall thru trapdoors, et al, can break on impact
support engraving in blood in special level files
many instances of physical damage were not taking Half_physical_damage
	into account when reducing your hitpoints
make it possible for the code to recognize your starting pet throughout the 
	game via is_starting_pet(mon) macro
healers notice when a wand of undead turning revives a monster so the
	wand is then identified
update display if bestowed a spellbook while unable to see invisible self
use small pool of static buffers for mon_nam() and Monnam()
Acknowledge Schroedinger's cat at end of game
grammar fixes for applying stethoscope to corpses and statues
player polymorphed as a ceiling hider cannot reach the floor, but
	automatically unhide on #sit
trappers do not hide on the ceiling
non-magical whistles do not work underwater
try to restrict whistles and musical instruments to monsters that can blow
thrown potions can sometimes hit a steed's saddle
sync default documentation of "null" option with the code
tripping over a cockatrice corpse didn't petrify, even when not wearing boots
do not call swamps on the Juiblex level "moat" when freezing or drowning;
	likewise for Plane of Water when drowning
keep score from wrapping around and becoming negative by capping it
kicked objects do not slide when on the air or water levels
when a giant carrying a boulder dies in a pit, ensure that the corpse is
	buried under the filled pit
when blind and levitating > shouldn't say "stairs" if player has not seen them
a slow-moving monster hidden under a rotting corpse was not immediately
	displayed when the corpse rotted away
mimic that ends up on the rogue level should not mimic a closed door
mimic should not mimic a boulder while on a pit or hole location
reviving invisible troll could appear visible until it moves
adjust some of the shop repair messages
charge for reviving a shop owned corpse or reanimating a shop owned statue
filled trap doors on castle can be re-dug
message order when swapping places with a pet (e.g. into a trap), also use
	different term instead of "displace"
flyers can get out of pits more easily than non-flyers
allow use of the < command to try to exit a pit
clean up messages when you stop levitation while riding a flying steed
account for all attacks when determining max_passive_dmg
dipping in acid can erode the dipped object
various actions--such as enchanting--performed on an unpaid shop object
	either force the hero to buy the item (when its value is lowered) or
	increase the current bill (when its value is raised)
adjust health threshold where wounded hero will be healed by successful prayer
prevent lose-level+regain-level cycle from arbritrarily boosting HP and Pw
prevent polymorphing into "new man" at low level from magnifying HP and Pw
losing a level while polymorphed affects hero's current monster HP as well as
	underlying normal HP
mind flayer brain eating is subject to certain fatal targets and to cannibalism
mind flayer can't eat brains of ghost or shade
corpses of unique monsters in bones behaved incorrectly if revived or eaten
fix pluralization for "this tin smells like mother-in-laws" when hallucinating
try harder to keep pluralization straight when user assigns an already plural
	value for named fruit
avoid false matches when looking up fruit names ("grapefruit" isn't "grape")
handle pluralization of man-at-arms and singularization of men-at-arms
assigning an artifact name is rejected on objects with similar description to
	corresponding artifact's type rather than just those of the same type
adjust feedback for gas spore explosion when hallucinating
traps detected by scroll or crystal ball overlooked carried or buried chests
can't wish for a trapped box/chest/tin by specifying "poisoned"
grammar bit if killed by stealing a cockatrice corpse from a monster
being petrified by swallowing a cockatrice violates foodless conduct
devouring Medusa whole is fatal
eating pet won't continue eating after becoming paralyzed or falling asleep
randomize shopkeeper names when hallucinating
fix wording for "leprechaun steals gold from between your feet" when mounted
fix monsndx panic which happened after currently moving monster expelled
	swallowed hero onto magic trap and was made tame by its effect; taming
	no longer replaces monster
reduced message verbosity when re-entering a temple
reduced message verbosity when monster with multiple attacks missed wildly
zapping a never seen wand while blinded won't make the wand a discovery
zapping an unID'd wand of teleportation at self will discover it (usually)
zapping unlocking magic at self while punished will remove attached chain
don't see objects or read engraving when hero changes location (random
	teleport) or position (levitation timeout) while asleep or fainted
polymorphed spellbooks may turn blank or be too faint to read
avoid inappropriate message when using a cursed lamp while blind
player polymorphed as a guardian naga spit the wrong kind of venom
put #define for potion occupant chance and cursed wand zap chance in one place
candles should not be fireproof
recognize most instances where hallucinatory monster name should be treated
	as a personal name (to avoid "the Barney") instead of a description
avoid giving misleading or redundant feedback when reading scrolls
custom arrival message for special levels could be delivered too soon
custom arrival message for special levels now supports quest text substitution
prevent scroll of charging that has already disappeared from showing in the
	picklist of things to charge
doors break instead of absorbing the blast of a broken wand of striking
avoid "Something's in the way" message with unidentified wand of locking
better handling for Fort Ludios and endgame in wizard mode's `^V ?' menu
no free lunch for gelatinous cubes eating scrolls of mail
eating gold in front of the vault guard will make the guard angry
calculate engulf time differently for non-digestion attacks than for digestion
preform autopickup and/or report on objects at the spot when a failed #untrap
	attempt causes the hero to move onto a trap's location
thrown silver weapon hitting silver-hating poly'd hero got double silver damage
wielded silver weapon hitting silver-hating poly'd hero lacked silver message
don't welcome the hero to Delphi if the Oracle was angered before first entry
shopkeeper polymorphed into animal form can no longer speak
don't give attribute adjustment messages ("you feel wise") unless the current
	value actually changes
meditating monsters stop meditating when affected by something which wakes
	sleeping mosnters
monsters capable of hiding can't do so when trapped or while holding you
limit recursive calls to spoteffects (poly'd hero fell into water, reverted
	to human because of it, fell into same water, then crawled out twice)
ensure that the punishment ball and chain make it into the save file after being
	temporarily orphaned from the normal chains in the swallowing code
charge for thrown wand that shatters into a thousand pieces in a shop
wielded light source susceptible to water gets extinguished when weapon rusts
don't discover unknown bag of tricks when monster it releases is undetected
make region ttl field a long instead of short to get rid of lint warnings
	about a possible loss of data
pushing a boulder onto a level teleporter trap could issue repeat messages
if shopkeeper or priest gets teleported while inside his shop or temple,
	give locations inside that room preference when choosing destination
tame/peaceful grabber/engulfer will release hero after conflict ends
make changes in hallucination be reflected by changes in mimickery feedback
add Unaware pseudo-property to suppress various messages while unconscious
missile which kills engulfer will now be placed prior to hero's return to map
bugles affect all monsters to some extent
nurses are affected if player is polymorphed as a cockatrice
getting a particular rotten food result can't make attempting to eat a
	corpse of one of the Riders be survivable
pad shortest rumors to improve distribution of delivered rumors
wake up sleeping steed when putting on saddle or mounting
stop wielding cockatrice corpse which triggered own death followed by life-save
format various prompts to avoid "Query truncated" entries in paniclog
for inventory display, include cost info on hero-owned containers holding
	shop goods
shops now claim ownership of items created by using an unpaid horn of plenty
shopkeepers shouldn't refer to non-male character as "cad"
tweak levitation timeout if trap is being triggered on same turn it is to end
if Rider corpse revival fails, usually try again later instead of rotting away
worn item transformed by polymorph remains worn if feasible
can't dip or apply grease to a worn item that's covered by another worn item
hero poly'd into stone golem and wielding cockatrice corpse casts stone-to-
	flesh at self to become flesh golem will revert to stone if no gloves
demon lords/princes can't be summoned to the elemental or Astral planes
same-race sacrifice can't damage high altars
allow corpses on floor to be offered at high altars
allow hero to attempt to offer the Amulet at ordinary altars
shooting range for crossbow isn't affected by strength; multi-shot volley is
right-handed boomerang throw travels counterclockwise
monsters can use ranged attacks over/around boulders, same as hero
can't drop part of a stack of N weapons welded to hero's hand
pickup still accepts m as command prefix, but now rejects F,g,G,M,numpad 5
scatter piles of kicked gold rather than move the entire pile at once
#jump attempt fails if mounted on sleeping steed; jumping spell still works
if normal game save file is restored via `nethack -X', restore in normal
	mode--with save file deletion--and require confirmation ala 'X'
	command to make deferred switch into explore mode
stethoscope applied to hiding mimic will bring it out of hiding
rephrase "<artifact> evades your grasp" message if artifact is already held
artifacts which subsequently evade your grasp/control after already being
	worn or wielded become unworn/unwielded
hero with lycanthropy is vulnerable to silver in human form as well as beast
changing alignment or shape triggers a check for equipment evading hero's grasp
passive fire effects can damage attackers weapons
wielded bow shouldn't affect outcome of kicked arrows
ranged polearm hit can divide puddings and can use confuse monster effect
charge for kicked shop-owned food if it gets used up taming a monster
give better feedback when thrown shop-owned food gets used up taming a monster
effect of negative AC on damage received was calculated differently than
	normal when deciding whether hero poly'd into pudding would split
unicorn horn produced by revived monster will polymorph as if non-magic
stone-to-flesh on any golem statue or golem figurine creates flesh golem
stone-to-flesh which activates shop-owned figurine entails shop charges
make giants be less likely to be randomly generated in Sokoban
bear traps dish out some damage on initial entrapment
bear traps and webs are harmless to water elementals
hero with polymorph control and inflicted with lycanthropy can specify own
	werecritter or human werecritter monster types as polymorph target
hero undergoing semi-controlled polymorph won't also undergo sex change
when doppelgangers taking on new shape don't specifically pick nasty monster
	or role monster, bias the random form towards humanoid
salamanders can use green slime corpses to cure themselves of petrification
feedback about summoned monsters may use singular when it should use plural
rogue's backstab bonus doesn't apply for throwing attacks
hiding monsters who are unhidden when hero leaves a level can hide upon return
touching a pile of objects while blind affects hero even when the pile is
	big enough to give "there are many objects here" and not list them
explosion while engulfed only affects engulfer and hero, not adjacent monsters
eliminate case-sensitivity when converting words from singular to plural and
	vice versa, so some failing wishes like "Gauntlets of Power" now work
breath attack directed at self by poly'd hero always hits
override non-silver vs shades for artifacts which deal extra damage to undead
assorted mirror fixes--mainly visibility issues
some monsters can't be strangled; self-polymorph can stop/restart strangulation
re-adjust gem generation probabilities when revisiting existing dungeon levels
kick evasion shouldn't move monsters through walls
kick evasion and jousting/staggering blows shouldn't move grid bugs diagonally
#untrap didn't check whether hero could reach the ground
digging/chopping a closed drawbridge message mentioned digging a "wall"
attacking via applied polearm now honors the "confirm" option
engulfer under influence of conflict or confusion could swallow monster at
	water/lava/trap spot and not be affected by destination til next move
unicorn horn restoration no longer overrides sustain ability characteristic
hider monster revived from corpse would start out hidden (even if own corpse
	was only object around to hide under)
fix sequencing issues with dropping #invoked Heart of Ahriman
applying an unpaid stack of potions of oil forced hero to buy all of them
	instead of just the one which got split off and lit
sometimes when hero is forced to buy an unpaid shop item its price changed
monster could attack with a polearm even after attempt to wield that failed
sometimes got "you trip over it" after intervening messages following the
	one which described "it"
wizard mode: WIZKIT wishes could overflow inventory's 52 slots
when loading bones files, censor suspect characters from player-supplied
	strings such as pet and fruit names
can't swap places with tame grid bug when moving diagonally
can't move diagonally through a long worm's body (can still fight that way)
require confirmation to read a scroll of mail if doing so will be the first
	violation of illiteracy conduct
using F to force an attack towards a boulder gave "you attack thin air"
random "treasure drop" upon monster's death bypassed dropping side-effects
melted ice on Valkyrie quest should be pool, not moat
some variations of attempting to use open or close commands on a drawbridge
	didn't give drawbridge-specific feedback
tin contents can now sometimes be accessed on the same turn that the tin
	starts being opened; when not, the opening feedback is more accurate
Nth adjustment of feedback when observing a pet eating
monsters who want the Amulet won't attack temple priests to try to get it
it was possible to generate an object of 0 gold pieces by dropping 2**32 gold
wizard mode's sanity_check option missed nested containers and migrating mons
always update map display and use up turn if open or close command attempted
	while blind reveals change in door state or discloses non-door spot
secret door detection's trap finding is no longer blocked by water or clouds
	on the Planes of Water and Air


Platform- and/or Interface-Specific Fixes
-----------------------------------------
unix: new -wwindowtype option
unix: don't clobber old level files if 2nd hangup/disconnect occurs while
	reconnected user is responding to the "destroy old game?" prompt
win32gui: better handling of "more" prompt for messages that would have scrolled
	off the window
win32gui: set correct checkmark on "Lock Windows" menu item on startup
win32gui: redraw message window on resizing (it does not update properly otherwise)
win32gui: fixed copy/paste error in read registry settings function
win32gui: improved calculation of the size of the menu window
win32gui: made auto-arrange windows on/off option (it was reset automatically
	which was unintuitive and in some cases annoying
win32gui: fix a possible crash with AltGr-4 WM_KEYDOWN handling
win32gui: use whatever alternate tile set is loaded in the menus
win32tty: prevent early error messages from flashing by too fast and not seen
win32tty: work around problem where display symbols were wrong or unrecognizable
	on systems where the default language for non-Unicode programs was not 
	set to "US English" - courtesy Ray Chason
win32tty: work around problem where some characters did not show up if the
	console code page was other than 437
platforms that support hangup: SAFERHANGUP to avoid losing objects in transit
	between lists when hangup occurs, and also avoid cheats due to
	well-timed hangups to stop a long melee
X11: support dynamic switching of map mode via tiled_map option
X11: added support for hilite_pet to text map mode


General New Features
--------------------
burying a punishment ball no longer ends your punishment
#tip command--pay a modest gratuity
add clicklook option to allow looking at things on the display by clicking 
	right mouse button when floating mouse pointer over them
Izchak's lighting store is now able to stock oil for your lamp
provide core support for saving of messsage history in save file
the following actions can now be continued after save/restore: digging, 
	eating, studying, removing armor
hero-created and monster-created ice will eventually melt away
extend Warning to include ice danger
wishing for particular variety of tin contents (deep fried, broiled, etc.)
debug-mode wishing for random monster(s) via '*'
debug-mode viewing of fully identified object descriptions without 
	actually identifying the objects
health-food store that stocks monk-appropriate foods in mine town when monk
give more information about your attributes in debug mode
polywarn to give intrinsic monster detection of limited species while polymorphed
rocks can skip on the water sometimes allowing them to pass over water creatures
vampires can now shapeshift into bats and fog clouds; the latter can be done at 
	will to slip through locked doors
shapeshifted vampire will transform back to vampire form after you defeat it and
	continue to fight in its native form
container lknown flag for locked/unlocked/broken awareness
container cknown flag for container content awareness
plname is stored in the save file on all platforms now
introduce support for negation of role, race, align, gender values to eliminate
	them from random selection and the pick list of startup choices
some intelligent pets will avoid cannibalism
keep track of which monsters were cloned from other monsters
cloned and revived monsters become worth fewer points than ordinary ones
number_pad:3 run-time option to use inverted phone keypad layout for movement
number_pad:-1 to swap function of y and z keys; z to move NW, y to zap wands
display spell retention information in the spell menu
tame ghouls can eat old eggs
new effect for reading a scroll of light while confused
allow digging an adjacent pit with wand of digging while trapped in a pit
#terrain command for debug mode
digging can activate or disarm some types of traps
some monsters can eat tins in addition to corpses to cure some ailments
add Roderick Schertler's pickup_thrown patch
add ability to sort the list when viewing known spells with '+' command
describe magic cancellation from worn armor in enlightment/end-of-game feedback
disclose half physical and/or spell damage in enlightment/end-of-game feedback
rephrase see invisibility enlightenment feedback when unable to see at all
add atmospheric sound messages for temples
sometimes give announcement message when monsters teleport to hero's vicinity
obsolete config file keywords: GRAPHICS, OBJECTS, TRAPS, EFFECTS
deprecated options: IBMGraphics, DECGraphics, boulder
new options: symset, roguesymset for choosing a symbol set from the symbols file
new config file keyword: SYMBOLS for overriding character symbol values by name
opening magic frees from bear traps and webs, activates trap doors
closing magic activates bear traps and webs
locking converts a hole into a trap door; striking does the opposite
add Malcolm Ryan's Statue Glyphs patch
lembas and cram never rot unless cursed
multiple squeaks for squeaky boards
include time, user ID, and play mode in paniclog entries
add oracle and rumor regarding priestly donations
anti-magic traps have alternate effect on targets who have magic resistance
the Amulet can be offered to Moloch
javelins and spears now share the same weapon skill
all stackable weapons are capable of being thrown/shot for multi-shot volleys
worm teeth and crysknives have become stackable
improved container interface
acid can destroy iron bars
OPTIONS=playmode:normal|explore|debug to choose mode without command-line
score bonus for ascending is reduced or denied for changing alignment
player can give a monster class when asked for type of monster to poly into
likewise when asked about type for #monpolycontrol
scroll of taming/spell of charm monster now gives some feedback
doppelgangers can take on the shape of alternate roles' quest guardians
pile_limit option to control when to switch to "there are objects here"
	vs listing objects on floor when hero goes over objects while moving
some monsters will use fire to prevent selves being turned into green slime
add `#vanquished' debug mode command
C and #name commands are now same and use menu to choose monster vs object
hallucination provides partial protection against gaze attacks
attempting to read "dull" spellbook might cause hero to fall asleep
dipping prompt is more precise
using F to attack wall/boulder/statue while wielding pick digs/breaks target
shapechangers shouldn't receive starting inventory of their initial shape


Platform- and/or Interface-Specific New Features
------------------------------------------------
pcmain: check for dlb_init failure rather than relying on dungeon open failure
win32gui: support perm_invent
win32gui: menu option to add/remove windows captions
win32gui: support for saving/restoring message history
win32gui: added menu options "Copy ASCII Screenshot To Clipboard" and "Save 
	ASCII Screenshot To File"
win32tty: support for 'selectsaved' option for menu of existing save files
	to choose from at game startup
tty: add window port routines for saving/restoring message history
smartphone: added "Type Cmd" command that allows to type arbitrary commands 
	using phone keypad
smartphone: added Q(quiver) command to "Attack" layout
smartphone: fixed F command to prompt for direction


Code Cleanup and Reorganization
-------------------------------
removed OVLx section dividers previously  used for TRAMPOLINE overlay system
move all flags that are system or port specific from flag struct to sysflags 
	struct which is used only if SYSFLAGS is defined
all fields in flags struct are unconditionally present
monst cham field now a short and uses mons[] index
rearrange some monster ordering to follow rule #2 listed at top of monst.c
change region player_flags to more appropriate unsigned int instead of boolean
remove remains of sync_hunger, which has been ifdef'd out for years
new mextra structure housing pointers to mname, egd, epri, eshk, emin, edog
consolidate vault.h, epri.h, eshk.h, emin.h and edog.h into new mextra.h
new oextra structure housing pointers to oname, omonst, omid, olong, and omailcmd
drawing symbols for DECGraphics, IBMGraphics, MACgraphics are now stored in an
	external symbol file that can be changed without rebuilding
new hints-based configuration system
