From b46e61d486d024a0cedb8113241e8924c692b0ee Mon Sep 17 00:00:00 2001 From: nhmall Date: Thu, 28 May 2015 21:49:13 -0400 Subject: [PATCH] don't see Sting glowing light blue if you're blind Changes to be committed: modified: doc/fixes35.0 renamed: doc/fixes35.0 -> doc/fixes36.0 modified: src/artifact.c --- doc/fixes35.0 | 1232 +---------------------------------------------- doc/fixes36.0 | 1234 ++++++++++++++++++++++++++++++++++++++++++++++++ src/artifact.c | 12 +- 3 files changed, 1243 insertions(+), 1235 deletions(-) create mode 100644 doc/fixes36.0 diff --git a/doc/fixes35.0 b/doc/fixes35.0 index b77eb242c..30119b13e 100644 --- a/doc/fixes35.0 +++ b/doc/fixes35.0 @@ -1,1233 +1,3 @@ $NHDT-Branch$:$NHDT-Revision$ $NHDT-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 awkwardly 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 occurring 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 poisoning 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 arbitrarily 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 " 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 exercise or abuse wisdom when rumors get used for random graffiti -don't exercise 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 " 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 monsters -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 " disappears" 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 charge" 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 " 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 " 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 (nominally 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 " for nymph or succubus even while asleep -concealed mimic wasn't revealed if kicking attempt 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 teleportation 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 vice 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 ..." - 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 vulnerable - to malformed escapes and could potentially be abused to clobber the - stack and launch a buffer overrun attack -give alternate message for " 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 for N gold piecess" -hangup save made during magic mapping or 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 recognize 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 -gold dropped on altar by hero wouldn't stack with gold dropped there by monster -if lava burns up the player's water walking boots, the player falls in -the messages for lava burning items up are always printed -fix used-up magic trap trying to hit steed. -messages are now printed when objects on the ground are eroded -object erosion now always identifies fooproof objects -grease protects from all types of erosion -all sources of erosion now affect objects the same way -passive attacks no longer erode armor covered by other armor -dipping a fooproof item into acid no longer forgets that it's fooproof -dipping a container into uncursed water now gets its contents wet -sanitize petnames and fruit to prevent escape codes -data.base "bat" overrode later "combat" entry -data.base "gelatinous cube" and "jack boot" have their own entries -data.base "vampire bat" matched twice; use the bat entry -data.base dagger attribution started with spaces instead of tabs -remove 'if (Deaf)' guards preceding You_hear which already checks deafness -use a menu to loot multiple containers -do_look() in post-3.4.3 used glyph prior to setting it in pager.c -charge for a boulder that fills a pit in shop -abuse wisdom in keeping with Rider eating message -message inconsistency: death message "swallowed whole" was preceded - by "You bite into" -improve the messaging when a monster you can't see is causing an obstruction -add option mention_walls, which gives feedback when bumping against a wall -fix invalid pointer dereference in morguemon if ndemon returns NON_PM -after object loss through polyshudder don't get left hiding under nothing - if you're polymorphed into a hider -show object symbols in menu headings in menus where those object symbols - act as menu accelerators, toggleable via "menu_objsyms" option -show t-shirt text at end of game inventory disclose -hitting with a polearm remembers the position of the last monster you hit -add messages for trying to pick up some terrain features -boomerang makes noise when hitting a sink -non-pet rust monsters would eat rust-proofed non-digestibles but ignore - those non-digestibles otherwise -kicking a grave may topple the gravestone -allow showing legal positions for stinking cloud, jumping and polearms - when asked for a location -cloned creatures (of any type) don't deathdrop items -pudding corpses behave somewhat differently than before -mithril armor should have silver color -lichen corpse is an acid indicator -camera may contain a picture-painting demon -some monsters can eat through iron bars -inaccessible niches occasionally have iron bars in front -sinks may teleport or polymorph -shopkeepers give honorifics to vampires and elves -when commands (D, A, object identify) mix object class filtering with BUCX - filtering, take the intersection rather than the union (so ?B picks - blessed scrolls rather than all scrolls plus blessed everything) -bmask is stored with the objects on the Plane of Water to prevent segfault -engraving on drawbridge with wand of digging should produce appropriate - message instead of referring to gravel -engraving Elbereth is less efficient as protection -scare monster scroll now provides a better effect -monsters without hands can no longer pick up piles of objects (with - certain exceptions) -uncursed enchant weapon now correctly fixes erosion -scroll of earth messages cleaned up -long worms can no longer be leashed -the chest in the Castle containing the wishing wand can never be trapped -the vibrating square is now a trap -mimics wouldn't take on the form of "strange object" -add an option to prevent omitting the uncursed status from inventory -show prices when walking over the shop merchandise - - -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 -tty: fix crashing when a location has more than 32k items -tty: fix segfault when MD termcap is not defined -tty: do not cut off statuslines at 80 characters for wider term -tty: prevent accidental escapes from string entries -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 -unix: implement fcntl(2) locking on systems that can handle it -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 " armor" will match item named " 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 message 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 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 -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 -flexibility for specifying "detect " vs " 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 -Add database entry for shuriken and make it match throwing star -Add database entry for fedora -Add database entry for land mine -change command X to twoweapon toggle -pressing @ when cursor positioning moves cursor on top of hero -pressing # when cursor positioning toggles automatic description of features - under the cursor -cursor positioning ignores uninteresting dungeon features -allow reading many more items -when you're hiding under something a zap downward should not hit that - something, while a zap upward should -show more explicit reason why player was helpless at death -added new hallucinatory-only gods -options to create the character blind or nudist -moving clouds on the plane of air -disclose extinct species alongside genocided ones -a tribute to Terry Pratchett -Some levels in Gehennom now use the old corridor-style maze instead of - the new room-style. Beelzebub's level always does this and the - "beetle legs" are restored. -gnomes will occasionally have a candle -stop travel or run when you get hungry -'I' command can accept 'B','U','C',or 'X' as an alternative to normal object - class character to show inventory of items known to be blessed,&c -debug-mode viewing of object weight -prizes on various levels now protected by ?oSM scrolls as well as Elbereth -regexes now use system libraries consistently for all pattern-matching systems - - -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" -win32gui, win32tty: add support for looking for sysconf in %COMMONPROGRAMFILES% - first and for user config file in %USERPROFILE% (improves support for - multi-login Windows environments) -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 -tty: implement : (menu_search) command -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 -tty,win32gui,win32tty: add menucolors -MSVC: send debugpline output to 'debug' window to declutter game screen - - -NetHack Community Patches (or Variation) Included -------------------------------------------------- -Roderick Schertler's pickup_thrown patch -adopt/adapt/extend Malcolm Ryan's Statue Glyphs patch to work for tty and tiles -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' -adopt/adapt/improve Dungeon Overview -Aardvark Joe's Extended Logfile -Michael Deutschmann's use_darkgray -Clive Crous' dark_room -sortloot by Jeroen Demeyer and Jukka Lahtinen -Auto open doors by Stefano Busti - - -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 -make STEED unconditional -make EXP_ON_BOTL unconditional -make REDO unconditional -make AUTOPICKUP_EXCEPTIONS unconditional -make SEDUCE compile-time unconditional but still removable through SYSCF -clean up some DEBUG conditional code -make GOLDOBJ unconditional -make WIZARD unconditional -make SINKS -make REINCARNATION -make TOURIST unconditional -make KOPS unconditional -make ELBERETH unconditional -allow defining of generic usernames in config.h instead of hard-coding in role.c - +There was no NetHack 3.5.x release diff --git a/doc/fixes36.0 b/doc/fixes36.0 new file mode 100644 index 000000000..25f9fa534 --- /dev/null +++ b/doc/fixes36.0 @@ -0,0 +1,1234 @@ +$NHDT-Branch$:$NHDT-Revision$ $NHDT-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 awkwardly 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 occurring 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 poisoning 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 arbitrarily 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 " 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 exercise or abuse wisdom when rumors get used for random graffiti +don't exercise 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 " 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 monsters +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 " disappears" 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 charge" 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 " 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 " 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 (nominally 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 " for nymph or succubus even while asleep +concealed mimic wasn't revealed if kicking attempt 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 teleportation 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 vice 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 ..." + 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 vulnerable + to malformed escapes and could potentially be abused to clobber the + stack and launch a buffer overrun attack +give alternate message for " 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 for N gold piecess" +hangup save made during magic mapping or 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 recognize 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 +gold dropped on altar by hero wouldn't stack with gold dropped there by monster +if lava burns up the player's water walking boots, the player falls in +the messages for lava burning items up are always printed +fix used-up magic trap trying to hit steed. +messages are now printed when objects on the ground are eroded +object erosion now always identifies fooproof objects +grease protects from all types of erosion +all sources of erosion now affect objects the same way +passive attacks no longer erode armor covered by other armor +dipping a fooproof item into acid no longer forgets that it's fooproof +dipping a container into uncursed water now gets its contents wet +sanitize petnames and fruit to prevent escape codes +data.base "bat" overrode later "combat" entry +data.base "gelatinous cube" and "jack boot" have their own entries +data.base "vampire bat" matched twice; use the bat entry +data.base dagger attribution started with spaces instead of tabs +remove 'if (Deaf)' guards preceding You_hear which already checks deafness +use a menu to loot multiple containers +do_look() in post-3.4.3 used glyph prior to setting it in pager.c +charge for a boulder that fills a pit in shop +abuse wisdom in keeping with Rider eating message +message inconsistency: death message "swallowed whole" was preceded + by "You bite into" +improve the messaging when a monster you can't see is causing an obstruction +add option mention_walls, which gives feedback when bumping against a wall +fix invalid pointer dereference in morguemon if ndemon returns NON_PM +after object loss through polyshudder don't get left hiding under nothing + if you're polymorphed into a hider +show object symbols in menu headings in menus where those object symbols + act as menu accelerators, toggleable via "menu_objsyms" option +show t-shirt text at end of game inventory disclose +hitting with a polearm remembers the position of the last monster you hit +add messages for trying to pick up some terrain features +boomerang makes noise when hitting a sink +non-pet rust monsters would eat rust-proofed non-digestibles but ignore + those non-digestibles otherwise +kicking a grave may topple the gravestone +allow showing legal positions for stinking cloud, jumping and polearms + when asked for a location +cloned creatures (of any type) don't deathdrop items +pudding corpses behave somewhat differently than before +mithril armor should have silver color +lichen corpse is an acid indicator +camera may contain a picture-painting demon +some monsters can eat through iron bars +inaccessible niches occasionally have iron bars in front +sinks may teleport or polymorph +shopkeepers give honorifics to vampires and elves +when commands (D, A, object identify) mix object class filtering with BUCX + filtering, take the intersection rather than the union (so ?B picks + blessed scrolls rather than all scrolls plus blessed everything) +bmask is stored with the objects on the Plane of Water to prevent segfault +engraving on drawbridge with wand of digging should produce appropriate + message instead of referring to gravel +engraving Elbereth is less efficient as protection +scare monster scroll now provides a better effect +monsters without hands can no longer pick up piles of objects (with + certain exceptions) +uncursed enchant weapon now correctly fixes erosion +scroll of earth messages cleaned up +long worms can no longer be leashed +the chest in the Castle containing the wishing wand can never be trapped +the vibrating square is now a trap +mimics wouldn't take on the form of "strange object" +add an option to prevent omitting the uncursed status from inventory +show prices when walking over the shop merchandise +you shouldn't see Sting glow light blue if you're blind + + +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 +tty: fix crashing when a location has more than 32k items +tty: fix segfault when MD termcap is not defined +tty: do not cut off statuslines at 80 characters for wider term +tty: prevent accidental escapes from string entries +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 +unix: implement fcntl(2) locking on systems that can handle it +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 " armor" will match item named " 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 message 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 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 +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 +flexibility for specifying "detect " vs " 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 +Add database entry for shuriken and make it match throwing star +Add database entry for fedora +Add database entry for land mine +change command X to twoweapon toggle +pressing @ when cursor positioning moves cursor on top of hero +pressing # when cursor positioning toggles automatic description of features + under the cursor +cursor positioning ignores uninteresting dungeon features +allow reading many more items +when you're hiding under something a zap downward should not hit that + something, while a zap upward should +show more explicit reason why player was helpless at death +added new hallucinatory-only gods +options to create the character blind or nudist +moving clouds on the plane of air +disclose extinct species alongside genocided ones +a tribute to Terry Pratchett +Some levels in Gehennom now use the old corridor-style maze instead of + the new room-style. Beelzebub's level always does this and the + "beetle legs" are restored. +gnomes will occasionally have a candle +stop travel or run when you get hungry +'I' command can accept 'B','U','C',or 'X' as an alternative to normal object + class character to show inventory of items known to be blessed,&c +debug-mode viewing of object weight +prizes on various levels now protected by ?oSM scrolls as well as Elbereth +regexes now use system libraries consistently for all pattern-matching systems + + +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" +win32gui, win32tty: add support for looking for sysconf in %COMMONPROGRAMFILES% + first and for user config file in %USERPROFILE% (improves support for + multi-login Windows environments) +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 +tty: implement : (menu_search) command +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 +tty,win32gui,win32tty: add menucolors +MSVC: send debugpline output to 'debug' window to declutter game screen + + +NetHack Community Patches (or Variation) Included +------------------------------------------------- +Roderick Schertler's pickup_thrown patch +adopt/adapt/extend Malcolm Ryan's Statue Glyphs patch to work for tty and tiles +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' +adopt/adapt/improve Dungeon Overview +Aardvark Joe's Extended Logfile +Michael Deutschmann's use_darkgray +Clive Crous' dark_room +sortloot by Jeroen Demeyer and Jukka Lahtinen +Auto open doors by Stefano Busti + + +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 +make STEED unconditional +make EXP_ON_BOTL unconditional +make REDO unconditional +make AUTOPICKUP_EXCEPTIONS unconditional +make SEDUCE compile-time unconditional but still removable through SYSCF +clean up some DEBUG conditional code +make GOLDOBJ unconditional +make WIZARD unconditional +make SINKS +make REINCARNATION +make TOURIST unconditional +make KOPS unconditional +make ELBERETH unconditional +allow defining of generic usernames in config.h instead of hard-coding in role.c + diff --git a/src/artifact.c b/src/artifact.c index b7ac61046..6d0f12bac 100644 --- a/src/artifact.c +++ b/src/artifact.c @@ -1813,10 +1813,14 @@ Sting_effects(orc_count) int orc_count; { if (uwep && uwep->oartifact == ART_STING) { - if (orc_count > 0 && warn_obj_cnt == 0) - pline("%s %s %s!", bare_artifactname(uwep), otense(uwep, "glow"), - hcolor(NH_LIGHT_BLUE)); - else if (orc_count == 0 && warn_obj_cnt > 0) + if (orc_count > 0 && warn_obj_cnt == 0) { + if (!Blind) { + pline("%s %s %s!", bare_artifactname(uwep), otense(uwep, "glow"), + hcolor(NH_LIGHT_BLUE)); + } else if (!Deaf) { + pline("A very faint portamento briefly emanates from %s!", bare_artifactname(uwep)); + } + } else if (orc_count == 0 && warn_obj_cnt > 0 && !Blind) pline("%s stops glowing.", bare_artifactname(uwep)); } } -- 2.50.1