$RCSfile: fixes34.1,v $ $Revision: 1.331 $ $Date: 2003/02/20 00:19:46 $ General Fixes and Modified Features ----------------------------------- prevent panic() obj_not_free when pushing a boulder over a landmine there was no feedback when successfully hitting shock resistant monsters with Mjollnir via hand-to-hand attack unbought single-bite food eaten in shops was not billed properly charge for shop contents inside "no charge" containers add wishing for "nothing" and genociding "none" to the conduct section of the Guidebook allow both wishing and genocide to accept either "none" or "nothing" when the player wants to decline left word in format string in get_wet() causing "The spellbook fadefades" two bad wizkit items in a row shouldn't make the user hit space many times kicking thrones no longer loosens rocks wall symbol not replaced when digging while blind and levitating increment FQN_NUMBUF from 2 to 3 to prevent premature reuse of a buffer that caused a level creation error to be reported as a lock file error print regular death message when leashed, mounted steed dies of starvation fix more funny messages, new and old restore the behavior of bumping into closed doors when moving while impaired fix iron ball cases that could put the chain in solid rock discovering a mimic on a closed door location should not unblock the location don't drop corpse when a monster kills another monster on an inaccessible location (i.e. behave like xkilled behaves) half-physical-damage from gas spore explosion should only affect you Sunsword didn't stop glowing when hero killed a monster wielding it mimics caught in explosions with messages printed about them are discovered let lev_comp and dgn_comp accept optional carriage return character prior to the terminating newline in special level and dungeon description files Wizard of Yendor will start harassing you after the invocation if you've managed to get that far without ever killing him characters polymorphed into centaurs can't wear boots if an unknown rolling boulder trap kills a monster, you shouldn't be a murderer touchstone entry in data.base specific message for engraving headstone with wand of digging wielded/quivered chained ball should be unwielded when thrown polymorphing into a form that cannot twoweapon should immediately disable twoweapon mode; likewise when reverting from a monster form which can use two weapons to a normal form which can't taking partial count of merged objects from a container while your pack was full split the object and did not re-merge animal_parts are not always appropriate for ravens prevent panic if tombstone window cannot be created clarify travel command behavior in the Guidebook touch_artifact checks needed when snagging w/bullwhip and stealing cannot trip over submerged objects if you're water walking wand of striking was not identified if it activated a statue trap cannot sacrifice while you're swallowed player polymorphed into an eel cannot drown breathless/amphibious monsters avoid dmonsfree impossible message due to migrating a dead monster via mhurtle causing the monster to end up in a hole or other trap avoid temporary disappearing Burdened message due to updating status line midway thru in_container don't credit player's wisdom when makelevel creates random Elbereth engravings reduce insect/monster creation from monster spells and limit chain summons avoid "couldn't place lregion type 5" warning when arriving at Plane of Fire avoid crash due to delayed poly or were change no longer being valid ensure that Priest's ability to recognize B/U/C is considered in B/U/C menus can't push boulders through iron bars; traps can't roll such through either; likewise for objects thrown by monsters thrown objects susceptible to breaking might do so when they hit iron bars assorted monsters can pass through iron bars; ditto for polymorphed character attempting to dig iron bars will wake nearby monsters instead of yielding "you swing your pick-axe through thin air" autodig won't accept iron bars as candidate location allow knight to retaliate for all thefts except those "you gladly hand over..." randomize starting position on goal level for M, P, and S quests prevent the Wizard of Yendor from displacing the high priest of Moloch out of the Sanctum's temple ATR_BOLD on spell menu header travel command should restrict its shortest paths to areas of the map the hero knows about or might reasonably guess non-altar prayer should limit god action, not maximize it potions of acid explode, not dilute, so make water_damage behave this way lookat monster notes if you see monster is trapped don't crash when angry shopkeeper re-enters the shop and you pick up something monsters with WAITFORU strategy should act if successfully attacked by non-damaging attacks (e.g. seduction, rust damage) don't summon kops if credit covers cost of unpaid goods taken out of shop update swallowed display immediately if an engulfing monster polymorphs into another engulfing monster undo xname FAKE_AMULET_OF_YENDOR AD_DRIN check, the_unique_obj checks this case axes should chop trees; picks shouldn't chance to aim grappling hook when skilled or better level limit of monsters like naga hatchlings should be high enough to grow up scroll of enchant weapon will become discovered when read in some cases don't crash when using lookat on a boulder an BOULDER sym is unique attaching a single candle to fill candelabrum's last slot gave message with poor grammar: "The candelabrum now has seven candle attached." vault guards won't ask who you are if you're unconscious or paralyzed monsters should not repeatedly try to teleport on noteleport levels crocodiles legs are not designed for kicking open doors, chests, et al. walls of one of the luckstone locations in minend-3 were diggable minetn-6 could place downstairs in a cut-off location corpses in bones files don't retain their role characteristic boulder was not displayed if blind and discovered with a monster known via ESP behind it don't claim that statue comes to life if the monster it turns into is invisible fix goodpos() so worm segments don't get placed on top of each other (causing a possible display problem if the worm is cut in two) fix fountain noises on some special levels (castle, valk home, various mines) disallow mounting a trapped steed to avoid inappropriate trap effects #chat with meditating monster will rouse it suppress redundant message when stoning effect transforms a golem clear worn bits of any object grabbed by shopkeeper to avoid extract_nobj panic looting any container on a location should suppress looting nearby monsters give more specific message when forbidden role attempts to use twoweapon mode avoid double billing if #loot causes a shop's bag of holding to explode when polymorphed, player killing a paper or straw golem via fire damage would kill the golem twice, resulting in an impossible error usually stop mimicing if you polymorph while using #monster mimic capability under !GOLDOBJ, gold shouldn't disappear if you try to throw it at yourself under !GOLDOBJ, remove temp gold from inventory during restore Staff of Aesculapius did not always cure sliming correct singularization of fungi, liches, vortices prevent "remove_object: obj not on floor" panic for iron ball placement if riding while punished leads to a fall off steed when changing levels specifying -D (or -X) to enter explore mode while restarting from a save file was lost in the restore process fix crash when using lookat on an known invisible monster with monster syms set prevent getting stuck in infinite loop when using wizard mode #levelchange command to reduce level while having level-drain resistance naming an already wielded elven dagger "Sting" activates warning against orcs naming either of the wielded weapons unintentionally ends two-weapon combat Various nemesis monsters must resist stoning so their death messages make sense don't call DEBUG impossible in rn2 when a level 0 monster tries to cast a spell GOLDOBJ: don't call money2mon with 0 zero when killed by shopkeeper headstone writing was using the adjective "weird" when engraving with a wand of digging. don't report "you were riding" if you die as a result of dismounting allow #untrapping of chests that are co-located with floor traps and hero unmap "I" symbols when searching while blind and levitating monsters that are frozen or sleeping cannot be grateful for untrapping grammar of blessed-detection eating warning messages when eating 1 of N objects message for charging for items lost in a cursed magic bag wasn't always shown dropping gold on an altar printed no message and didn't change gnostic conduct don't allow cursed daggers thrown by monsters to go thru closed doors hero polymorphed into an exploding monster should explode when attacking thin air, just like the monster itself don't mark holes/trapdoors as seen if you levitate over them while blind player polymorphed as rust monster would lose gold in inventory by attempting to eat it, even though the eat failed no messages were printed when dowaterdemon or dowaternymph failed to create a monster doe to the G_GONE check knights should be able to avenge attacks from covetous monsters eating various rotten food items would not break vegan/vegetarian conduct unaligned special levels should inherit alignment from the dungeon Samurai quest was missing several doors Cancelled while polymorphed and Unchanging should provide feedback stone to flesh on a statue with contents would lose the contents if a monster was on the same location as the statue steed movement would use your speed if walking step by step kicking a known, unseen monster would sometimes leave behind an extra I symbol applying a lance against a long worm could cause an impossible a knight applying a lance did not do a caitiff check blessed gain level when already at level 30 won't reduce experience points keep counting spell skill exercise even after expert status is reached when a fountain dries up or a throne vanishes, make sure it really happens allow player to name polymorph potion if nothing seems to happen avoid crash when drinking a potion causes the hero to float up over a fire trap, for example, which might try to destroy the in-use potion in some situations, if hero stood still, a hostile dwarf would switch back and forth between weapon and pick-axe and never move uncontrolled teleports did not handle leashed pets minetown fountain warnings shouldn't prevent finding gems/coins in fountain order of container and objects was different for mazelike and roomfilled levels minetown guards only enforce town rules inside the town proper electric damage heals hero polymorphed into flesh golem rather than iron golem fix bug preventing wishing for bear traps (not beartrap objects) in debug mode be notified about cessation of hallucinations even if blind and the time when using '/' to examine multiple map items in succession, don't mislabel some with "or a splash of venom" after having looked at a '.' item martial arts kick that knocks a monster into a trap would result in warning "dmonsfree: 1 removed doesn't match 2 pending" if the trap was fatal if you can't see or sense a monster when it dies, don't set dknown on corpse effect of wearing or removing the Eyes of the Overworld took effect on the next move, but should take effect immediately. dragon scale mail is magic armor invoking or applying an artifact must pass a touch_artifact check document 'D'rop BUCX behavior in the Guidebook remove levitation boots over a portal, the portal teleport is delayed until your next command is typed. armor vs cursed two-handed weapon anomalies: with 'T', couldn't remove armor, but with 'A', could remove it, and with 'W', could put it on don't print ape data.base description for other words that end in "ape" prevent crash after animating a statue via stone_to_flesh by avoiding use of the obj in newsym() after it was deleted print "magic spreads" message when eating ring of increase damage, etc. grammar tid: "The looking glass miss the ." fix wishing for "looking glass" and " glass" Archeologists suffer same alignment penalty for statue destruction by stone_to_flesh as they do by other means of statue destruction being unable to see a vault guard doesn't prevent him from arriving in town, secret doors should be called "wall", not "fountain" in town, watch should not allow trees to be cut down cancel chat direction cancels the chat prevent "the mimic looks better" on an unrecognized mimic hit with healing spell after forcefighting a concealed lurker, the lurker wouldn't fight back when polymorphed into a hider, cease hiding during level changes let mind flayer grow up into master mind flayer; also giant/sewer rat and cave/large spider engulfing green slime as a purple worm was causing stoning not sliming zero entries in DUNGEON, MONSTERS, et al, of config file are now treated as preserving the default rather than being ignored enlightenment: don't misreport polymorphed lycanthrope as "in beast form" remove TIMED_DELAY from the features checked for version compatibility rolling boulder hitting monster stuck in pit should stop even when mon survives don't see chest trap gas colors while Blind adjust fruit name in potion juice messages if it has the form "foo of bar" wielded camera passes harmlessly through shade reading spellbooks while confused should allow tearing the book Breaking wand of digging dug through rock which should be undiggable. Breaking wand of digging near shop walls wouldn't anger the shopkeeper Shop walls wouldn't be restored if there were pits in the way. If there were a hole outside a shop, you could kick stuff out of the door into the hole without the shopkeeper noticing. curing hallucination while wielding Grayswandir should print a message removing unowned pick-axe from container in shop gave inappropriate message don't let monster end up with more current HP than max HP after life drain make sure that missing file trickery in wizard mode which is discovered during level change doesn't try to keep going after discarding current level contribution by Adam Wozniak adds several const & changes some char* to char[] fix impossible when hitting/jousting a monster causes it to be killed twice fix a GOLDOBJ crash/hang in take_gold() that could be triggered by reading a cursed spellbook, or by sitting on a throne kicking a tree could produce 0 to 4 killer bees but it should have been 1 to 5 mounting a steed allowed hero to make moves that would otherwise be disallowed including mounting diagonally in a shop doorway monsters lose intrinsic speed when pertrified if you have converted, the quest leader banishes you instead of asking you to come back later, and tells you that you won't succeed without Bell don't state that "you narrowly avoid losing all chance" message if you try to put on a helm of opposite alignment in the quest after converting fix enlightenment feedback for bonus or penalty on damage and chance to hit effects of purple worms consuming special monsters is now more consistent across eating, digesting and dropped corpses while engulfed avoid "you finish disrobing" when disarming via the 'A' command make sure corpses and statues which remember monster attributes don't keep ones that were conferred by no longer worn items (mainly speed boots) elevate the trouble priority of any cursed item which is preventing removal of a ring of levitation starving pets will eat more aggressively when a pet starves to death, say so instead of just "Fido dies." starved pet raised from dead shouldn't immediately starve again skilled spell of detected treasure wasn't acting like blessed potion of object detection (from Roderick Schertler) fix end of game attribute disclosure for levitation negated by sink kicking a box embedded in a wall will knock it free rather than bust it open stop running or travelling if the vibrating square message is triggered show correct gender in ^X display when polymorphed into non-humanoid form for wizard and explore modes, skip second screen of ^X output when first screen is cancelled by ESC for wizard mode, override confusion when using ^F to reveal map polyself into minotaur causes hard headgear to fall off with multiple leashes in use, 2nd had 50/50 chance of having unbounded length GOLDOBJ: coins aren't subject to curses/blesses and don't need identification can no longer activate a figurine while engulfed can't use figurines to get too many erinyes or Nazgul include currently wielded weapon among the list of likely choices for 'w' likewise for currently quivered ammo among choices for 'Q' only include unknown gems as likely choices when applying known touchstone prevent mbodypart() from returning animal parts for lights removing a ring might relearn what it is after amnesia sleeping shopkeeper shouldn't talk to digging player give more specific feedback when dipping unicorn horns into potions can see self via infravision or ESP or monster detection when invisible class genocide that killed polymorphed self while `Unchanging' reported incomplete cause of death and possibly left rest of class in bones class genocide of @ by human or elf character polymorphed into non-@ gave "you feel dead inside" message twice unskilled rider who can't reach items on floor also can't dip into moat or pool from flying steed when summoning nasty monsters, use new monster's type to decide if they can be placed on boulders, et al, not the summoning monster's type don't display the "intones:" prefix when !soundok since the message suffix won't be displayed in this case document "sound" option in Guidebook destroy traps that are buried by boulders dropped in water renamed debug commands: light sources -> lightsources, monpoly_control -> monpolycontrol, poly -> polyself detect attempt to swap places with big pet through narrow opening stinking clouds in bones files do not get their ttl set reasonably stinking clouds in bones files may incorrectly set player_inside breaking wand of digging on a drawbridge shouldn't dig/hole a pit in the bridge avoid mimicking gold when the character has the Unchanging attribute handle polearm wielded prior to mounting the same as one wielded while mounted, and one still used after dismounting like one wielded while not mounted non-lawful angels don't chat using lawful messages and shouldn't summon lawful help cancelled yellow lights should not explode against other monsters, as well as not exploding against you becoming confused, eg from nausia, while reading a spellbook should result in the usual confusion effects teleports should not be controlled if you're stunned, confusion should have some effect on your ability to control level teleports vault wall repair should remove traps subsequently created at affected spots don't reveal deity name when a high priest(ess) gives temple entry greeting for ordinary remove curse, don't uncurse quivered object unless it is suitable to be used as a quivered weapon (ammo or missile) salamanders have no legs and cannot ride all objects carried by a monster who's hit by a polymorph zap are protected from that zap, not just worn armor which falls off due to shape change sparkle option for display effects was ignored on explosions level teleport while on a sleeping steed caused panic and possible crash breaking wand of digging causing a shopkeeper to fall left unpaid items unpaid use get_adjacent_loc() rather than getdir() directly for some things where you want to ensure valid adjacent coordinates are returned minor experience calculation tweaks level telporting out of the dungeon while carrying unpaid shop goods would trigger "not on any bill" warnings during final inventory disclosure only hard helmets protect against falling piercers don't crash teleporting out of a monster while engulfed, punished but not carrying the ball web breaking should consider steed strength and other characteristics various missing or inappropriate "killed by" death messages second attack for two-weapon combat will miss if first knocks target away jousting effect no longer occurs every time riding character hits with lance skeletons should be able to wear the armor they're created with bouncing zaps should not bounce around the edge of closed doors mimics that are detected but not seen should not display as their mimiced form when the detection ends not all cavemen are human, so avoid using human in quest messages tengu is singular and plural, some rumors were incorrect don't let leader or nemesis be renamed non-moving monster are not affected by liquid 'A' command wouldn't remove cursed item from quiver or alternate weapon slot 'A' command behaved differently depending on menustyle when non-weapons were present in the quiver or alternate weapon inventory slots most cases of the hero dropping things need to check for dropping on an altar zapping undiggable trees with wand or spell of dig gave feedback about rock being able to see invisible shouldn't cause you to not notice when potion or spell of invisibility wears off can't successfully bribe a demon who happens to be carrying the Amulet while over water, killing a monster that had engulfed you does not result in the usual water effects removing a ring of levitation while engulfed should not invoke spoteffects feedback from invoking Orb of Detection was sometimes misleading or wrong ranger quest artifact (Longbow of Diana) confers reflection when wielded by monsters like it does for the player avoid discrepancies in size and associated armor-wearing ability between wizard gnome player and same player polymorphed into gnomish wizard by forcing newman() if poly-target matches your_race() add missing data.base entries for caveman, healer, monk, priest, and samurai allow "grey spellbook" as alternative spelling of "gray spellbook" handle attacks by cancelled monsters more consistently armor worn by monsters might negate some magic attacks like it does for hero give feedback and discovery when visible monster puts on cloak of invisibility really add artifacts inside carried containers to final score (3.3.1 fix displayed them them but didn't include any points for them) drop alternate weapon to terminate twoweapon combat if the alternate weapon gets cursed restore monster creation sanity checks to wizard mode ^G command prevent recoil from hurtling you through narrow areas that you wouldn't be able to move through intentionally grammar in cause of death when killed by slipping while mounting named steed ensure `m'enu is still an available traditional menu choice for menu-upon-request even when there is only one class of object present engraving on headstone will appropriately dull your weapon certain types of golems should not "catch fire" so adjust the messages no longer need to manually examine inventory after regaining sight in order to give a type name to an object picked up while blind when adding an object to inventory, it is possible for it to becomed both wielded and quivered if it merges with weapon and autoquiver is enabled include rocks as likely candidates for quivering if alternate weapon is a sling Asmodeus fails an is_armed() check, so code in m_initweap() to give him wands of fire and cold never got called; move the code to m_initinv() #rub would wield the target tool even when already being worn as eyewear monks lose their to-hit bonus for bare-handed attacking if wearing a shield fix case on leading character in "Crunched in the head..." in ball.c using travel mode to move next to a known trap and then trying to step onto that trap required an extra step; the first one ended up as a no-op punished with ball and chain on the same floor square as a trapped chest when it exploded resulted in panic "remove_object: obj not on floor" see_monsters() wasn't called when you lost the innate warning intrinsic due to level loss xorns sink if the drawbridge they're standing on is raised applying figurines to an adjacent spot over water does drowning checks fix sequencing of Magicbane's hit messages avoid buffer overflow from long or too many -s params wake up first if trying to crawl out of water while asleep while waiting, don't try to change into were form when already in were form steed should remember traps encountered while mounted killing shopkeeper by throwing unpaid things would result in "item not on bill" impossible error choking pet to death with cursed leash incurs various pet-killing penalties wielding Werebane prevents catching lycanthropy via monster attack (but not via eating, nor does it cure an existing case) character inflicted with lycanthropy is vulnerable to Werebane when in human/elf/&c form as well as when in beast form shopkeeper could get angry without remembering the customer name any object held by ghost during recorporealization would cease to exist including the Amulet of Yendor harassing monsters will be less likely to teleport to your location while they're running away from you randomize warning symbols during hallucination Platform- and/or Interface-Specific Fixes ----------------------------------------- wince: added Windows CE port from Alex Kompel win32: win32 build no longer defines MICRO win32: allow error save files to be generated win32: strip illegal file name characters from plname and replace with '_' win32: don't let recover build a save file out of level files belonging to an active NetHack.exe or NetHackw.exe process win32,winCE: SELF_RECOVER to let NetHack itself recover aborted games win32gui: make error() work; it was essentially non-operative in 3.4.0 win32gui: fix alignment of columns in menu windows win32gui: Window menu File|Save worked during #quit disclosure processing win32gui: make mswin_yn_function() case insensitive like the tty version win32gui: In msg window, gray out lines that are old and concatenate msgs win32gui: --More-- prompt if there are more messages than can fit this turn win32gui: flicker reduction because clear_nhwindow no longer redraws window win32gui: A caret bug was fixed win32gui: fix bug that caused two lines too many to be drawn on each paint win32gui: last line no longer highlighted win32gui: reduce the number of popups and support for !popup win32tty: honour the use_inverse option and default to ATR_BOLD if disabled win32tty: respond only to mouse clicks not mouse movement win32tty: allow ^C to abort the game at the "Who are you?" prompt win32tty: fix truncated score list win32tty: prevent ALT+CTRL from sending NUL to core with the meta bit set win32tty: international keyboard handling improved by letting ToAscii() generate input char based on VK and state of shift and caps lock Gnome: add support for non-square tiles Gnome: destroy main game windows correctly Gnome: Dylan Alex Simon's port of KDE-style worn window Gnome: Dylan Alex Simon's port of KDE-style hero cursor color Gnome/Linux: more portable getres*id workaround X11: restore support for non-square tiles when USE_XPM is defined X11: getlin dialog got steadily narrower each time it was used msdos: compiling without NO_TERMS resulted in a link-time error msdos: reworked Makefile.GCC to get rid of need to duplicate source files msdos,win32: stop doing chdir when NOCWD_ASSUMPTIONS is defined tty: remove #define DEBUG that forced debug behavior in production builds tty: correctly handle an empty TERM environment variable tty: don't lose messages when ESC has canceled their display tty: clear topl after pickup_burden prompt tty: support terms where turning off inverse video turns off color too tty: object selection at --More-- prompt after '?' didn't work anymore tty: ext command autocomplete now lets you enter auto-completed characters non-tty: silently ignore tty msg_window option to allow sharing of config file unix: install recover command into GAMEDIR by default vms: prevent error() from indirectly triggering hangup save during forced exit General New Features -------------------- lootabc option runmode option showrace option travel option cmdassist option to provide additional error feedback for some commands mouse_support wincap option scroll_amount wincap option to adjust how many cells to scroll at scroll_margin debug mode: #panic routine to test panic() and panic save file generation a new PANICLOG optional file to log the reason for panic and impossible messages added validate_prefix_locations() for early directory prefix validation fire traps are particularly bad for paper and straw golems cream pies can be 'a'pplied to cause direct temporary blindness eating newt corpse or tin of same can boost magical energy (Malcolm Ryan) applying a eucalyptus leaf produces a whistle effect (Malcolm Ryan) hobbits can wear elven mithril-coats eating mimics now has an hallucination effect prefix pickup command with 'm' to force menu of all objects present provide feedback which states the correct command when players try to use 'R' or 'P' for armour, or use 'W' or 'T' for accessories optional #portdebug wizard mode command to invoke port-specific debug routines