Leaked development version

From NetHackWiki
Jump to navigation Jump to search

In September 2014, some source-code was leaked, claimed to be Nethack Version 3.5.0.

While the DevTeam has since claimed that the code is not version 3.5.0, they have claimed that the code was written by them, and that variants are welcome to use their code. To avoid confusion, the next version was numbered 3.6.0[1].

Changelog

The changelog included with the leak reads as follows and can be found on Pastebin.

$rcsfile: fixes35.0,v $ $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
fix "You hear The food ration tumbles downwards" for blinded pit dropping
silver arrows weren't causing silver damage on some silver-haters when wielded
wizard mode: avoid division by 0 crash for level teleport in the endgame if
	confusion overrides teleport control
don't #sit on an object in a pit if you're only on the precipice
fix message when pushing a boulder into a pool while riding
plural of "Nazgul" is "Nazgul" not "Nazguls"
trap messages referring to named steed were ackwardly worded when hallucination
	overrode use of the name
some actions such as eating corpses off the floor didn't check whether hero
	could reach the bottom of a pit
usmellmon() instead of "It turns into it" during monster polymorph
grammar of messages regarding eating artifacts
avoid a message about an invisible monster looking much better
player polymorphed as a xorn could not pick up items in pits
non-magical whistles do not work underwater
try to restrict whistles and musical instruments to monsters that can blow
don't display "turns to flee" message for a mimicing mimic
don't display "turns to flee" message for a monster who has just died
dipping acid in a fountain could cause an explosion but not destroy the potion
thrown potions can sometimes hit a steed's saddle
if your blindfold glows and you're not otherwise blinded, you can see it
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
added strsubst() to hacklib
be consistent with use of "removing" rather than "lifting" for encumber 
	messages associated with taking things out of a bag of holding
when a giant carrying a boulder dies in a pit, ensure that the corpse is
	buried under the filled pit
cursed scroll of destroy armor damaging cursed armor didn't adjust attributes
add passive() flag that indicates uwep was destroyed during the turn
polymorphed or shapechanged monster sometimes got erroneous hit points
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 or closed door
calculate weight of corpses on special levels correctly
Sting could trigger premature display of orcs during savegame restore
Sting now glows light blue again
prevent "offering" or other words with similar ending from matching ring quote
make cleric cast lightning blind as other lightning does
change the wording slightly to use "one of " when a monster wielding 
	multiple daggers thrusts them
if you didn't see a rolling boulder fall into a pit, you only heard the sound
	of it doing so if you were blind
fire trap was triggered twice in the same turn when melting ice was involved
abandon the specialized djinn and ghost counters used for potion tuning and
	use the mvitals[].born field instead
if you were Poison_resistant, only a *blessed* potion of sickness caused
	loss of hitpoints
reviving invisible troll could appear visible until it moves
adjust some of the shop repair messages
shopkeeper removal of trap from shop doorway yields an open door instead of
	a closed one if an intact open door is present
guarantee that hostile djinn released from bottles really are hostile
handle lava when removing or losing water walking boots
fix incomplete sentence occuring when unique monster's corpse fell down stairs
fractured boulders or statues produced inconsistent object settings on the
	resulting rocks
really fix rolling boulder bug C340-18, the previous "fix" reversed the test
monster throwing greased weapon has same chance for slip/misfire as player
killing a pet by displacing it into a trap now yields experience
prevent a rolling boulder that is in motion from vanishing in bones files
ensure that a sleeping steed doesn't answer a #chat
eliminate two very minor anomalies when using Luck to adjust random numbers
destroying a worn item via dipping in burning oil would not unwear/unwield
	the item properly, possibly leading to various strange behaviors
avoid a panic splitbill when shopkeeper is trapped by the door
grammar tidbit for message given when eating tainted meat is also cannibalism
gas spores shouldn't be described as "unable to attack" while hero is praying
incorrect screen display if engulfer gets turned to stone when trying to
	swallow while hero is poly'd into cockatrice
panic on subsequent move if engulfer gets turned to stone and poly'd hero
	also has attached ball&chain
give more specific messages when dropping weapons due to slippery fingers
various helmet messages changed to distinguish between "helm" and "hat"
helmets don't protect against cockatrice eggs thrown straight up
breaking container contents in a shop didn't always charge for them
some types of shop theft of a stack of items only charged for a single one
some thefts weren't charged at all even though shopkeeper noticed
wizard mode: WIZKIT wish for own quest artifact triggered crash at startup
avoid "your steed is still eating" message when going through a magic portal
cannot drink from fountain, sink or surrounding water while swallowed
don't hallucinate anything for an exploding black light as it dies
give blindness feedback when moving into/through stinking cloud
fix case on monster name when monster reflects floating eye's gaze
monsters "shrieking in pain" from a potion didn't wake anything up
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
Master of Thieves as Tourist Nemesis still had STRAT_CLOSE
co-aligned unicorns in bones could be hostile
finding "something" posing as a statue while Blind should map_invisible()
adding more candles than required to total 7 to a candelabrum which 
	already had between 1 and 6 gave an ungrammatical message
give correct message when a spellcasting monster summons other monsters
correct experience calculation for monsters that cause nonphysical damage
clean up messages when you stop levitation while riding a flying steed
monsters evading a kick on noteleport levels would cause a "teleports" message
interrupt current activity during certain stages of petrification or vomiting
warning about bad food didn't recognize tin of Medusa meat
eating tainted Medusa corpse caused food poisioning instead of petrification
avoid potential stale pointer use after magic bag explosion
nymphs and monkeys can't steal rings worn under gloves
monkeys can't steal rings worn under cursed weapon
succubi will remove hero's gloves before taking worn ring; incubi will do
	so before forcing ring to be put on
mbodypart should return forehoof, not foreclaw, for horselike monsters
further digging of an existing hole finishes in a single turn
only prefix shopkeeper names with "Mr." or "Ms." when not a personal name
account for all attacks when determining max_passive_dmg
green slime should not affect noncorporeal monsters
land mine explosion will destroy a drawbridge at same location
avoid some more buffer overflows in query buffers containing object names
avoid giving extra information about things that break out of sight
dipping in acid can erode the dipped object
avoid giving away wand type for near misses while blind
avoid excessive repetition of "monsters are aware of your presence"
monster's aggravation spell now affects meditating monsters
handle pets sooner at end-of-game to avoid message delivery anomalies
busy pet won't miss out upon ascension
fix various places that "finally finished" could be displayed after the hero
	stopped doing something other than eating
fix some cases where movement was disallowed but the hero was still conscious
after destroying drawbridge, hero could appear to be in the wall
sometimes shop items which hero is forced to buy could be sold back twice
non-empty container dropped but not sold in a tended shop and then picked up
	after that shop became untended could be sold twice in another shop
vision was not updated when polymorphing a statue into a boulder
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)
`I u' when carrying single unpaid item listed its cost twice
armor which auto-curses when worn by hero should do same if worn by monster
limit how high accuracy, damage, or protection can become via eating rings
when blinded hero detects a trap by touch, make sure it shows up on the map
confused remove curse will cause loss of knowledge of items' curse/bless state
with astral vision, the ";" command should only display "normal vision"
	for things that could be seen without astral vision
reanimating a statue containing gold produced double gold
probing the resulting double-gold monster caused "static object freed" panic
cursed wand might explode if used to engrave
fatal wish from magic lamp left functional magic lamp in bones data
fatal wish granted by monster left that monster in bones data
death due to dipping potion of acid into a pool left the potion in bones data
clear prompt from screen after ESC is used to abort "In what direction?"
minor interface changes for interactively manipulating autopickup exceptions
chatting with quest leader who was brought back from the dead gave warnings
becoming green slime or mimicking gold violates "never changed form" conduct
when a monster grew into a higher form which had previously been genocided,
	the message explaining its fate was only given if it was sensed via ESP
hero could still see for brief period after being blinded by potion vapors
avoid crash when thrown potion hits bars before a monster
don't give messages about seeing things happen while asleep
adjust health threshold where wounded hero will be healed by successful prayer
protect hero from mind flayer's remote mental blast during successful prayer
recognize if hero has already entered Gehennom by means other than usual route
	so that prompt can be skipped if Valley's stairs are subsequently used
once you've passed the Valley, drawbridge tune is no longer a prayer reward
fix up grammar and punctuation in variants of shopkeeper's price message
regression, bug fixed in 3.4.1 reintroduced in 3.4.3:  Sunsword continued to
	emit light after monster who was wielding got killed
weaken "farming" strategy
don't suppress corpse if you kill your own steed
fix typo in tourist quest leader's greeting
fix grammar for graveyard sounds when polymorphed
avoid divide by zero crash if Luck drops below -1 while a prayer is in progress
make hero inflicted with lycanthropy immune to level drain just like monsters
describe locomotion method accurately when flyers traverse ladders or holes
when there were multiple boulders at a location, moving one of them sometimes
	resulted in line-of-sight anomalies
unicorn can't catch gems if it is asleep or paralyzed
fix grammar when choking on gold
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
some messages which referred to "mirror" ought to have used "looking glass"
incubi react to mirrors
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
alignment of Angels was handled inconsistently
corpses of unique monsters in bones behaved incorrectly if revived or eaten
pets capable of digging could pass through walls and stone on the Rogue level
don't generate mimics pretending to be closed doors when making Rogue level
fix pluralization for "this tin smells like mother-in-laws" when hallucinating
force user-specified fruit name to be singular
avoid false matches when looking up fruit names ("grapefruit" isn't "grape")
handle pluralization of man-at-arms and singularization of men-at-arms
avoid inappropriate "the corridor disappears" when vault guard gets killed
avoid inappropriate "the guard calms down" if vault guard's magic corridor
	reaches a spot where gold is embedded in the rock
avoid having vault guard ask hero's name when hero is swallowed
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
adjust message for gas effect from chest trap if hero resists hallucination
cancelling non-shop objects in a shop's entrance would upset the shopkeeper
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
identified touchstone can rub on gold like the data.base entry says
restore the capability of rubbing any object against known touchstone
being petrified by swallowing a cockatrice violates foodless conduct
devouring Medusa whole is fatal
tombstone's reason for death after being killed by mis-returning Mjollnir
	varied depending upon whether it was fully identified
tombstone's reason for death from kicking an object could include so much
	detail about the object that is was too verbose
several quest messages were worded inappropriately if the hero was blind
a samurai quest guardian message used "ninja" where "ronin" was intended
revive from fainting if vault guard or bribe-demanding demon approaches
tame flaming spheres and shocking spheres shouldn't pick up items
eating pet won't continue eating after becoming paralyzed or falling asleep
can hear the opening or closing of an unseen drawbridge
prevent "object lost" panic caused by accessing freed memory after worn
	non-fireproof water walking boots are destroyed by lava
stop multi-turn running, searching, or resting early if levitation ends
randomize shopkeeper names when hallucinating
fix wording for "leprechaun steals gold from between your feet" when mounted
Call command could be used to remotely identify which high priest is which
large amorphous, whirly, noncorporeal, or slithy creatures can fit through
	tight diagonal gaps despite their size
avoid "You summoned it!" for unseen monster produced by same-race offering
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
recognize "mindflayer" as an alternative spelling for "mind flayer"
putting on a never seen ring while blinded won't make the ring a discovery
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
treat mattock as blunt object when forcing locks
restore capability to force locks with wielded statue
only count successful statue creations against the monster limit in sp_lev.c
don't see objects or read engraving when hero changes location (random
	teleport) or position (levitation timeout) while asleep or fainted
unseen wand of striking zapped by unseen monster became known if it hit a door
tweak knight quest messages
guidebook grammar bits
special level loader wasn't able to place random door in 1x1 room; could
	trigger divide-by-0 crash for user-developed custom levels
polymorphed spellbooks may turn blank or be too faint to read
make gender of quest leaders and nemeses consistent with data.base and
	quest messages
Orion and Norn should be giant sized
Orion, Norn, Cyclops and Lord Surtur should be able to tear webs
avoid inappropriate message when using a cursed lamp while blind
player polymorphed as a guardian naga spit the wrong kind of venom
ensure monsters cannot teleport to or be created outside nonpassable bounds
	of special levels
candles should not be fireproof
put #define for potion occupant chance and cursed wand zap chance in one place
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
monsters could end up off the left side of the Ranger quest start level
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
worms don't have scales, krakens have tentacles, stalkers have a head
you no longer "fry to a crisp" as a water elemental
change leather spellbook to leathery; pertains to appearance, not composition
more precise probing/stethoscope feedback when engulfed
make baby long worms have lower level than full grown ones
use "your kraken" instead of "a kraken" when searching reveals a tame
	hidden monster
Magicbane should not produce "<something> are confused" message
handle antholes more sensibly when ants aren't available
avoid "Something's in the way" message with unidentified wand of locking
cancelled nurses shouldn't say "Relax, this won't hurt a bit"
check for hero location in digactualhole() before clearing u.utrap
clear any pits that the hero digs in the vault guard's temporary corridor
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
shattering a monster's weapon didn't work as intended for stack of N>1
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 reveal surface information that you can neither feel or see
if the hero or a monster is already in a pit don't have them "fall into a chasm" 
	from drum of earthquake
monsters who ate lizard corpses to cure confusion would lose intrinsic speed
monsters couldn't eat lizard corpses to cure being stunned
code handling a monster's use of potion or food to cure stoning or confusion
	was accessing freed memory after the object had been used up
properly handle destruction of equipment carried by monsters hit by
	disintegration breath; life-saving retained conferred properties of
	formerly worn items (loss of steed's saddle caused much confusion)
don't exercize or abuse wisdom when rumors get used for random graffiti
don't exercize wisdom twice for each minor oracle consultation
don't welcome the hero to Delphi if the Oracle was angered before first entry
create_object() created lizard corpses without timers and troll corpses with
	their revive timers, then changed the corpsenm field
when a potion of acid was dropped into water and exploded, nethack would
	continue to use already freed memory and later might panic or crash
when jumping over an already seen trap, use an() to get appropriate grammar
fix bad grammar when putting on not-yet-seen Eyes of the Overworld while blind
don't "walk quietly" while levitating
shopkeeper polymorphed into animal form can no longer speak
don't give attribute adjustment messages ("you feel wise") unless the current
	value actually changes
fix message handling when multiple shopkeepers are present at end of game
'C' command can't name shopkeepers or temple priests and other minions
when "of <deity>" is intentionally being suppressed, an aligned or high
	priestess would be described as an aligned or high priest
specifying role and/or race along with an invalid alignment for it/them in
	NETHACKOPTIONS or config file would yield a prompt which misleadingly
	mentioned the rejected alignment when asking player to pick alignment
temple donation can recover protection previously stolen by attrcurse attack
	even when protection amount is so big that no increment would be given
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
display the invisible monster glyph ('I') whenever an unseen monster forces
	poly'd hero out of hiding
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
escape the deleted trap after performing the invocation while trapped
use alternate phrasing when life drain attack affects non-living creature
bypass "wait! there's a creature hidden there" when attacking a hidden monster
	sensed by ongoing monster detection
remove makedefs.c dependency that time_t and long are the same size
terminal window set to 21 lines can cause a crash during player selection 
	menus; have bot() check for valid youmonst.data
make region ttl field a long instead of short to get rid of lint warnings
	about a possible loss of data
free storage used to hold region messages in free_region()
honor pushweapon when applying a tool or weapon causes it to become wielded
in the quest, if the locate level hasn't been reached yet, don't fall or
	randomly teleport past it
fix phrasing in monster against monster attack feedback when attacker is
	wielding stacked weapons
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
don't place hero on top of monster when arriving on level which is so full
	that the monster can't be moved out of the way
tame/peaceful grabber/engulfer will release hero after conflict ends
any grabber will release hero if it moves away while confused/stunned/afraid
make changes in hallucination be reflected by changes in mimickery feedback
have to see a divine gift in order to have it become a discovery
honor the never-in-hell flag when selecting random monster type for corpses,
	eggs, figurines, and statues created in Gehennom
hero is not subject to light-based blindness while fainted from hunger
add Unaware pseudo-property to suppress various messages while unconscious
engraving while underwater should use surface() which handles that case
prevent obj_is_local panic during bones creation when splattered burning oil
	from a thrown potion of oil kills the hero
don't leave lit potion intact when splattered burning oil from broken floor
	potion kills the hero
fix region timeout detection, caused strange display of stinking cloud
	while wearing the Eyes of the Overworld
try to keep migrating monsters from escaping the wizard tower
affected monsters should always respect "Elbereth"
try harder to keep dragged chain between ball and hero
fireproof containers should not burn in lava
missile which kills engulfer will now be placed prior to hero's return to map
fix invalid pointer dereference after applying a wielded cream pie
avoid drowned in a drowning and burned by burning if life-saving is inadequate
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
reveal hidden monsters who change levels or are magically summoned
hero can't carry an unlimited number of boulders when poly'd into a giant
stop wielding cockatrice corpse which triggered own death followed by life-save
format various prompts to avoid "Query truncated" entries in paniclog
prevent very large number of objects in # inventory slot from causing
	buffer overflow
!fixinv config was using arbitrary characters instead of # for invent overflow
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
don't report death by petrification if cockatrice kills hero via HP loss
Riders are immune to green slime
Rider corpses can't be engulfed by gelatinous cubes
if Rider corpse revival fails, usually try again later instead of rotting away
wielding a cloak of magic resistance or gray dragon scales, or carrying one in
	alternate weapon or quiver inventory slot, conferred magic resistance
	to polymorphed hero
wielding a potion of blindness or carrying one in alternate weapon or quiver
	slot conferred resistance against light-based blindness to any hero
worn item transformed by polymorph remains worn if feasible
zapping closing or breaking magic up or down from beneath an open drawbridge's
	portcullis failed if bridge orientation was north-to-south (Valk quest)
can't dip or apply grease to a worn item that's covered by another worn item
sinking into lava didn't track passage of time properly
sinking into lava eventually burns away slime; sitting in it always does
after escaping lava by foot, if hero doesn't move he'll fall back in
suppress corpse from bones data if death is due to being dissolved in lava
suppress "you rise from the dead" if game ends due to be turned into slime
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
don't give erroneous "<mon> disppears" message for hero poly'd into quantum
	mechanic who hits engulfer while swallowed and blinded
demon lords/princes can't be summoned to the elemental or Astral planes
feedback from casting spell of protection was wrong in some situations
can't engrave on floor while inside solid rock, wall, or closed door
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
remove engravings at drawbridge location when it is opened, closed, or wrecked
monster killed in midst of multi-shot volley throwing/shooting might cause
	freed memory to be accessed, potentially triggering a crash
right-handed boomerang throw travels counterclockwise
can't arm bear traps or land mines on Planes of Air or Water
statues that "come to life" when trap activates shouldn't start out sleeping
shopkeepers and priests wouldn't step on graves put in their rooms by bones
can't throw if poly'd into form which lacks hands
monsters can use ranged attacks over/around boulders, same as hero
can't eat an artifact you're unable to touch
attempting to kick beyond map edge performed an out of array bounds memory
	access; symptom seen was "show_glyph: bad pos" warning when blind
attempting to engrave with an empty wand should always use a turn
don't access freed memory after engraving "wrests one last charnge" from wand
a magic portal could be rendered inactive for the hero if a successful
	hangup save took place during level change; leaving the level by any
	means other than triggering the portal would reactivate it
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
hero wasn't allowed to affix candles to the candelabrum while underwater
non-unicorn horn healing magic which cures sickness now also cures vomiting
vomiting/nauseated state is included in enlightenment feedback
vomiting countdown actually triggered the final vomit code twice
rats aren't capable of vomiting
fireproof, non-rustable weapon would be revealed as fireproof by hitting a
	rust-causing target; ditto for fixed crysknife
surviving choking while eating various foods (cockatrice egg, fortune cookie,
	wolfsbane, others) didn't carry through to those foods' side-effects
shapechangers who take on mimic or hider form will mimic or hide when feasible
avoid War message if tinning a Rider corpse fails
prevent long messages from triggering access violation or segmentation fault
	due to buffer overflow in pline()
cursed corpse wielded by a monster isn't welded to its hand or paw
fix grammar errors in samurai quest, wakarimasu ka?
fix spelling of Dr Dolittle
hero's sleep resistance shouldn't protect steed from sleeping gas trap
#jump attempt fails if mounted on sleeping steed; jumping spell still works
dropped wielded, in use leash should remain in inventory, since it's in-use
wielded, in use leash can't be snatched by whip-wielding monster
when using two weapons at once, whip-wielding monster can target either one
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
can't #force floor item while engulfed, levitating, or unskilled riding
can't lock or unlock doors while engulfed
if hero or monster standing on opened drawbridge survives its destruction,
	fall into water or lava instead of remaining on top
don't give a speed change message when an immobile monster is seen to be hit
	by a wand of speed or slow monster
when shopkeeper "gratefully inherits possessions" of hero who dies in shop
	doorway without owing the shop, move those items inside shop for bones
dying in a shop while wielding two weapons could cause "Setworn: mask" warning
make score file processing more bullet proof to avoid potential security issue
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
towel equipped in weapon, alternate weapon, or quiver slot can be applied
lit candle or potion of oil which burned out while equipped would leave stale
	weapon/alternate-weapon/quiver pointer that could cause panic or crash
wielded/worn figurine which auto-transformed had same stale pointer bug
likewise with casting stone-to-flesh on self for figurine of non-veggy monst
format names of not yet id'd artifacts such that obj type shows for non-weapons
hero with lycanthropy is vulnerable to silver in both human and beast form
changing alignment or shape triggers a check for equipment evading hero's grasp
passive fire effects can damage attackers' weapons
make quest leader and nemesis be unlikely to be affected by traps
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
use a more precise jumping path for far, non-straight line destinations
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
increase damage bonus applies when kicking while polymorphed into a monster
	form which has a kicking attack, just like for other kicks
feedback about summoned monsters may use singular when it should use plural
if magically removing steed's saddle is fatal, don't leave it saddled in bones
charging prompt used wrong criteria when deciding whether to list rings
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
an orc (or gnome) will respond to #chat if hero is also an orc (or gnome)
override non-silver vs shades for artifacts which deal extra damage to undead
assorted mirror fixes--mainly visibility issues
kicking at "empty space" has side-effects so should use current turn
using weapon to kill tame engulfer from inside triggered "placing defunct
	monster onto map?" warning
some monsters can't be strangled; self-polymorph can stop/restart strangulation
nymphs could steal carried boulders
amnesia of object discoveries would never forget the very last one
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
code controlling item drops by small monsters still used pre-3.1.0 weight
monsters who want the Amulet won't attack the Wizard to try to get it
when loading bones files, censor suspect characters from player-supplied
	strings such as pet and fruit names
opening or closing the castle drawbridge via music consumes a turn
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
could get "suddenly you cannot see the <mon>" while invisible mon remained
	displayed due to telepathy or extended detection
cutting a long worm in half would trigger segfault/accvio crash if the hit
	took parent down to 1 hit point or if long worms had become extinct
cutting a level 0 long worm in half produced a new worm with 0 hit points
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
blinded invisible hero can't see self as invisible via ';' or '/'
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
a hangup save while picking up gold from shop floor could duplicate that gold
secret door detection's trap finding is no longer blocked by water or clouds
	on the Planes of Water and Air
potion thrown by monster which hit a long worm's tail gave feedback about
	hitting its head
implement energy vortex's previously unused energy drain attack
changing alignment type resets alignment record to 0 (nomimally aligned)
jellyfish do not technically have a head
while polymorphed, suppress attribute gain/lose earned by pre-poly exercise
wizard mode #monpolycontrol prompting asked about "it" when monster was unseen
reprompt if player fails to make a menu choice during inventory identification
potion explosion during failed alchemy should awaken nearby monsters
seen eels who were stuck in isolated pools would never re-hide
can no longer get both strength and resistance from eating one giant corpse
aborting key/lock pick usage via ESC at direction prompt no longer uses a move
lit south wall of C quest leader's room contained dark gap at secret door spot
when probing from inside an engulfer, "not carrying anything" overlooked hero
archeologist shouldn't start with sling skill by carrying slingable touchstone
wearing or removing an amulet of restful sleep clobbered permanent sleepiness
if attempt to select a co-aligned artifact for first divine gift fails because
	none is available, choose one from among nonaligned artifacts
ensure current_fruit gets set to the correct index when setting fruit
	option to existing entry whose fid is not the highest
monsters already wearing suits can't put on shirts
if breaking a wand of polymorph causes hero to drop items, don't transform them
give "shuddering vibrations" feedback if breaking a poly wand uses up items
if polymorph causes a monster to drop items, they won't be used up via
	shuddering vibrations or as golem creation fodder
monsters who ate green slime corpses weren't turned into green slime
"hand slip" while naming an object would never pick 'z' as a substitute letter
hero would "gladly take off <armor>" for nymph or succubus even while asleep
concealed mimic wasn't revealed if kicking attmpt yielded a clumsy miss
too accurate feedback given to a blinded hero when a monster summons insects
if life-saved steed became untame, repeated "placing steed onto map?" warnings
	would be given as long as the hero remained mounted
message sequencing for fatal explosions was confusing if feedback was given
	for carried items being destroyed
when dipping something in holy/unholy water, only learn its new bless/curse
	state if hero sees it glow
describe lit Sunsword as shining rather than glowing
prevent poly'd shopkeepers from taking on forms that can't handle objects
attempting to move direction 'u' as a grid bug performed #untrap command;
	the other diagonals reported "unknown command" instead of "you can't"
mimic posing as statue or corpse now picks and maintains particular monst type
trying to move down while levitating said "you are floating high above floor"
	even when being stuck in floor or lava blocked full levitation
when levitating, don't show '>' as a likely direction for digging
poly'd or mimicking hero who was hidden from monsters would still be treated
	as a normal target for their ranged attacks
hero would remain stuck to an adjacent monster after rehumanizing if he had
	been attacked while hiding via #monster when poly'd into a small mimic
hero poly'd into mimic and hiding as an object via #monster didn't unhide
	when polymorphing into non-mimic
attacking via applied polearm never scuffed engraving underneath hero
auto-wielding a polearm took no time if ESC was used to cancel target choice
applying a bullwhip while at very edge of map could target beyond edge,
	potentially leading to a panic or crash
prevent temple priests and minions from wearing helms of opposite alignment
'D' drop command didn't handle 'u' choice correctly if the only unpaid items
	were inside containers
pearl rings shouldn't rust
shouldn't be able to read a worn T-shirt when it's covered by a worn suit
simplify hero placement on Castle level when climbing up stairs from Valley
spell attack by low-Int hero could inflict negative damage
some wand/spell/breath zaps that hit a secret door failed to reveal it
wand explosion feedback about adjacent door was phrased as if for a wand zap
improve the message sequencing when a thrown poisoned weapon loses is poison
message "You hit the  with all your might." could be issued if a boulder
	went away while it was being dug/broken with a pick-axe
prevent "object lost" panic if/when drinking a wielded potion of polymorph
	causes hero's new form to drop weapon
documentation tidbit:  change Guidebook and in-game help for pickup_burden
	option to match game's 'O' command ("Unencumbered", not "Unburdened")
writing while blind no longer possible for books, might fail for scrolls
blanking items in pools while blind shouldn't reveal new obj description
	for ones which had been seen before becoming blind
avoid infinite loop in topten output when killed by long-named monster
grid bug could move diagonally 1 step using travel command
attempting to open, close, or lock/unlock a door while confused or stunned
	uses up a move regardless of whether direction choice finds a door
grammar fixes for vault guard messages given after player assigns guard a name
wearing cloak of displacement auto-discovered it even when hero couldn't see
wearing elven cloak auto-discovered it even when already stealthy
putting on ring of stealth never auto-discovered it
forgetting spells due to amnesia now sets memory retention to zero instead
	of removing them from hero's list of known spells
shouldn't have been able write scrolls by guessing type name when they're
	only partly known via name assignment
scrolls given names can be written by assigned name as well as by description
fix writing feedback "the spellbook warps strangely, then turns parchment"
make stone artifacts usually resist stone-to-flesh
when reading an unknown scroll and learning it, discovery of teleporation was
	too late if hero happened to land on another scroll of teleportation
using an unlocking tool on a closed door which was actually a mimic reported
	that there was no door to unlock instead of exposing the mimic
purple worm could end up in wall or solid rock when swallowing ghost or xorn
unpaid shop items stolen from hero by a monster remained on hero's shop bill
#untrap toward known trap location containing concealed mimic would yield
	"{The mimic|It} {is in the way|isn't trapped}." but not reveal mimic
some actions taken when blind would yield "Wait!  That's a monster!" (for a
	mimic posing as a door) but not display the unseen monster glyph
enhance life-saving by preventing subsequent poison from being fatal upon
	rescue from death due to spiked pit, dart trap, or poisoned missile
don't create mail daemons when populating special levels with random demons
teleport control and polymorph control are ineffective while hero is stunned
don't report "fried to a crisp" for disintegration from divine wrath
when polymorphed into an opposite sex monster, if you then become a new
	human while failing to polymorph into something else, you'd be told
	"you feel like a new man" for female or "a new woman" for male  
spellcasting monsters' spell selection became less likely to choose harder
	spells as their level got higher (including Wizard's "double trouble")
Eye of the Aethiopica, Eyes of the Overworld, and Sceptre of Might must be
	worn or wielded rather than just carried to convey magic resistance
Mitre of Holiness and Tsurugi of Muramasa convey Protection when worn/wielded
effectiveness of magic cancellation by worn armor has been reduced
Protection improves the effectiveness of magic cancellation
the weight of a non-cursed bag of holding was sometimes off by 1 unit
for number_pad:2 (MSDOS compatibility), M-5 (Alt+5, or Shift+keypad5 using
	MSDOS/Windows keystroke hackery) didn't function as G movement prefix
if an angry shopkeeper chased the hero to a different level and then got paid
	off, he'd dismiss kops on that other level but not on his shop level
objects inside the Wizard's Tower can't be teleport to outside and vica versa
dying in lava and being life-saved or leaving bones would destroy ring of
	fire resistance if it happened to be made of wood, and also burn up
	scrolls of fire and spellbook of fireball
surviving in lava boils away carried potions, but dying in lava and being
	life-saved or leaving bones would keep them intact
when applicable, give "your body rises from the dead as an <undead>..."
	even when bones data isn't being saved
unlit candelabrum would become unlightable if its candles had exactly 1 turn
	of fuel left and it was applied anywhere other than the invocation spot
have shk claim ownership of worn saddle dropped by dying pet if hero is
	not within the same shop at the time of the drop
temporary loss of Dex from wounded legs will become permanent if it occurs
	while mounted and hero dismounts before steed's legs have healed
for poly'd hero hiding on ceiling who gets attacked, make attacker's position
	be an eligible location for hero when vacating hero's spot for attacker
	to prevent ending up far away under crowded conditions
for poly'd hero hiding on ceiling, attack by sea monsters won't move them
	into hero's position unless it is over water or they're already on land
for poly'd hero hiding on ceiling, attack by long worm might fill hero's
	destination with worm's tail, so double check and maybe choose again
poly'd hero can't hide on floor or ceiling when on Planes of Air or Water
when shop prices are adjusted, handle roundoff (integer truncation) better
for hero poly'd into a monster form that lacks a weapon attack but has a claw
	attack, use wielded weapon even when claw attack isn't the very first
rename the SLEEPING property and Sleeping attribute to SLEEPY and Sleepy, resp.
character escape sequence handling during options processing was vulernable
	to malformed escapes and could potentially be abused to clobber the
	stack and launch a buffer overrun attack
give alternate message for "<mon> turns to flee" when mon can't move
all statues in a cockatrice nest were for giant ant if 'record' was empty
when dying outside all shops on a level with multiple shopkeepers and one takes
	hero's stuff, choose one who is owed money over first one on fmon list
hero poly'd into a critter without hands could still open tins
if a vault guard was killed, his inventory would be dropped at <0,0>
throwing gold to/at a vault guard will no longer be treated as an attack
non-pit traps created in vault guard's temporary corridor would remain after
	the location reverted to solid rock
using magic to light vault guard's temporary corridor would produce lit solid
	rock after reversion, and then yield lit corridor if dug out again
if hero was blind, killing the vault guard while in his temporary corridor
	would leave hero encased in solid rock without informing player
if hero dragged iron ball into temporary corridor and then killed vault guard,
	the portion of corridor currently in existence would become permanent
on Plane of Water, restrict levitation and flying to air bubbles;
	elsewhere, restrict them such that they don't work inside solid rock
wand/scroll/spell of light now hurts gremlins (lamp/candle light doesn't)
ditto for hero in gremlin form (camera too)
autosearch finds and transforms secret doors and corridors even while blind,
	but it wasn't updating the map to show them unless the hero could see
fix message typo, "you sold some items inside <container> for N gold piecess"
hangup save made during magic mapping or <foo> detection performed while
	underwater could put hero on top of the water after restore
fix bug preventing stone-resistant monsters w/o gloves from wielding cockatrices
items conferring life drain resistance were affected by drain life spell
'a'pply command could be used to recogniize undiscovered potions of oil
fix replacing an existing bones file in wizard mode [load?y, unlink?n, die?y,
	save?y, replace?y] for configurations using external file compression
theft of worn armor with wear/unwear delay would interfere with completion of
	wearing or unwearing some other armor which also imposed a delay
	(disrupted wear attempt for +N helm of brilliance would result in loss
	of N points of Int and Wis; gauntlets of dexterity had similar problem)
#sit while swallowed would give the wrong message
alchemical explosion or evaporation only used up one potion instead of all
	the potions being dipped
feedback for reverse-genocide was plural even when just one monster was created
fix message given when part of a stack of items in a monster's inventory is
	being destroyed
add "Boing!" message when hero zaps resistant monster with striking/force bolt
adjust gaze reflection message when your scales are embedded in your skin
adjust turning-to-stone or -slime messages when you have no limbs
wizard mode ^F on Plane of Water marked portal as seen but didn't display it
magic mapping now displays furniture in preference to known or remembered traps
	or objects and known traps in preference to remembered objects
restrictions on diagonal movement were ignored when crawling out of water
when using magic whistle, prevent steed from being affected (trap interaction)
declining to attack a peaceful monster via movement used up nutrition even
	though no action took place
declining to attack a peaceful monster via kicking woke nearby monsters and
	scuffed engraving at hero's location even though no action took place
make hero be immune from stinking cloud damage during successful prayer
very fast hero would sometimes take two consecutive moves with very fast
	monsters then getting two moves, instead of interleaving the activity
when a monster zapped by polymorph drops inventory because of its new form,
	don't let that same zap hit the dropped item(s)
entering an untended shop while blind gave an inappropriate message
engraving feedback about partial text when weapon became too dull to finish
	was lacking sentence-ending period
impossible() might display inaccurate feedback after updating paniclog
fix crash which occurred if hero was teleported onto a sink while busy putting
	on or taking off levitation boots
fix "object lost" panic (or even crash) when dropping multiple items while
	levitating and a lit potion of oil explodes and destroys some inventory
fix "object_is_local" panic when saving bones after hero is killed by explosion
	produced by dropped or thrown lit potion of oil


Platform- and/or Interface-Specific Fixes
-----------------------------------------
FreeBSD: compilation problems on FreeBSD 6.1
linux: compile support for TIOCGWINSZ by default
smartphone: do not translate input when command helper is hidden (fixes 
	Motorola Q keyboard bug)
smartphone: new keypad layouts
smartphone: wizard mode command layout
smartphone: option to feed arbitrary text as a command to nethack core
tty: when loading user's run-time configuration, explicitly negating one of
	{DEC,IBM,MAC}graphics options after enabling another of them switched
	to regular ASCII and left the earlier option inaccurately set to "on"
tty: various bugfixes for very wide and/or tall screens
tty+GOLDOBJ: dropping or looting by menu wouldn't honor a count for gold
unix: remove use of parentheses in nethack man page usage that confused a
	man page conversion tool
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
unix/Qt: saved games were not found if nethack was built with prefixes in use
unix,vms: allow digits after first character in name at "Who are you?" prompt
vms: the DLB configuration could fail to build if a file without a dot
	in its name happened to match a logical name
Windows: starting a game with nethack.exe (tty) and saving, then restoring
	and finishing with nethackW.exe (win32) would display the high scores
	output in a series of popup windows, one for each line of text
Windows, probably MSDOS and OS/2: attempting to use very first false rumor
	for cookie fortune or random engraving could produce garbled text
	when rumors.tru had CR+LF line ends instead of Unix-style LF lines
#if CLIPPING: during teleport or hurtle, re-clip the map immediately instead
	of waiting until hero's next move
winCE: disable processing of double-click messages if the first click
	causes map to scroll
winCE: help text windows close immediately after open (unhandled WM_KEYDOWN in mhtext.c)
winCE: correct coordinates used by action button
winCE: wrap/unwrap text option for text windows
winCE: hardware keyboard detection
winCE: hide keypad when hardware keyboard is present
winCE: backport message window highlighting from winnt port
winCE: new icon with recommended image sizes
pocketpc: menu window closes on up/down keys from first/last position
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
X11: support dynamic switching of map mode via tiled_map option
X11: added support for hilite_pet to text map mode
X11: ensure vertical scrollbar shows up in text display windows
X11: fix typo in mouse click sanity check; result might have pointed to
	spurious location after window resizing
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
build-from-source: dlb utility can handle arbitrary number of files


General New Features
--------------------
when you're teetering on the edge of a pit you can use '>' to enter the pit
when you're flying over a pit you can use '>' to enter the pit
when asked for a direction, a response of '?' yields help and then asks again
when adding an item to inventory, try to stack it with the quiver slot
	before trying against other carried objects
#adjust can be used to split an inventory stack
cockatrice meat has a distinct flavor to some
wish request for "<something> armor" will match item named "<something> mail"
Fire Brand and Frost Brand have a chance to avoid taking rust damage
support ^R (and ^L in numpad mode) to request display repaint during direction
	choosing and location choosing prompting modes
intelligent pets will use keys to unlock doors
destroyed drawbridge leaves some iron chains
give feedback when a nearby monster grows into a stronger form
familiars are now created without any starting inventory
using the 'f' command when quiver is empty will fill quiver with player's
	response to the "what to throw?" prompt
breaking a wand with the apply command has a chance to wrest an extra charge
burying a punishment ball no longer ends your punishment
#tip command (with M-T shortcut) to empty a container's contents onto floor
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 to show unobstructed view of map (w/o mons, objs, traps)
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
both controlled self-polymorph and #monpolycontrol accept ESC, "*" or "random"
	when asking for type of monster; ESC aborts #polyself command
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
streamline old ^X output and integrate it with enlightenment feedback;
	new ^X output includes expanded form of abbreviated bottom line info
"killed by X" becomes "killed by a chameleon imitating X" when appropriate
eating disenchanter corpses is now considered risky
make '[' command more precise when poly'd hero has embedded dragon scales/mail
fainting while wielding a cockatrice corpse will be fatal
Sunsword's light radius depends on its curse/bless state
Add M-C and M-R meta-key shortcuts for #conduct and #ride, respectively 
can now use ESC to cancel out of prompts for playing musical instruments
being crowned gives an additional benefit:  one extra skill slot/credit
chatting to a gecko or shopkeeper while hallucinating gives alternate message
mimic posing as door might steal hero's key when [un]locking is attempted
polymorphing into a dragon while wearing dragon scale mail will cause that
	mail to revert to dragon scales
adopt/adapt/improve the Paranoid_Quit patch; default is paranoid_confirm:pray
	paranoid_confirm:Confirm when requiring "yes" instead of y to confirm,
				 also require explicit "no" to reject
	paranoid_confirm:quit    yes vs y to quit or to enter explore mode
	paranoid_confirm:die     yes vs y to die in explore or wizard mode
	paranoid_confirm:bones   yes vs y to save bones when dying in wizard mode
	paranoid_confirm:attack  yes vs y to attack a peaceful monster
	paranoid_confirm:pray    y to confirm #pray; supersedes prayconfirm
	paranoid_confirm:Remove  always pick from inventory for 'R' and 'T'
flexibility for specifying "detect <foo>" vs "<foo> detection" when wishing
when a sokoban puzzle has been completed (last pit or hole filled in),
	stop assessing luck penalties and lift most movement restrictions
'`' command to show discoveries for one class of objects
add "about nethack" to '?' menu as an alternate way to view 'v'+'#version'
display version and build information at startup
repeatedly setting the fruit option will check to see if fruits have been
    created, so the user can't easily overflow the maximum this way
bones files now include extra data to identify dead hero and reason for death
dipping multiple potions in another potion may only dip part of their stack
make being inside a stinking cloud (when not immune or resistant) become a
	major trouble which is fixable by prayer
introduce some variation in monster movement rates


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
tty: enhanced role, race, &c selection at start of new game
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
unix,vms: altmeta option to handle terminals which send "ESC c" for Alt+c


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
allow documentation to be specialized to the options in the game binary
add param to winsys ini routines to allow cleaner shifting during startup

References

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.