1328653ShselaskyGeneral Fixes and Modified Features 2328653Shselasky----------------------------------- 3328653Shselaskyobjects falling down a level don't cause everything at destination to scatter 4328653Shselaskyrandomize visible trap glyphs during hallucination 5328653Shselaskydon't match statue entry when looking up statue trap [after trap detection] 6328653Shselaskydo match statue entry when looking up "statue of a <foo>" when foo happens 7328653Shselasky to precede statue in the database; likewise for figurines 8328653Shselaskyinitialize random number generator before processing user configuration file 9328653Shselasky (random role selection always selected tourist) 10328653Shselaskysupport "character:X" and "role:X" in NETHACKOPTIONS as well as in config file 11328653Shselaskyallow colon as an alternative to equals sign for `OPTIONS:whatever' and 12328653Shselasky equals sign as an alternative to colon for `pickup_types=?!="$' 13328653Shselaskymake rndexp (blessed gain level) be safe for 16 bit integer configurations 14328653Shselaskydon't add player's weapon proficiency bonus for weapon attacks by monsters 15328653Shselaskycreate quest artifact crystal balls with 5 charges instead of 0 16328653Shselaskystore ghost names in the same manner as other monster names (fix pet bug) 17328653Shselaskyboost kobold shaman level to 2 (was 1, too low to ever cast a spell) 18328653Shselaskyboost ogre king level to 9 (was 7, same as ogre lord) 19328653Shselaskythrowing quest artifact to quest leader won't cause anger; also, artifact 20328653Shselasky will be caught and thrown back instead of being explicitly ignored 21328653Shselaskyboost level of fake players in endgame to match their rank titles 22328653Shselaskydon't lose odd hit points (integer division truncation) when splitting HP 23328653Shselasky for cloned monsters 24328653Shselaskyupdate status line when cloning yourself halves your hit points 25328653Shselaskysuppress clone's initial inventory for poly'd player just as for monsters 26328653Shselaskyupdate the documention describing the O command 27328653Shselaskypolyself: immediately update vision when reverting to human from eyeless form 28328653Shselaskyuse right pronoun when a mind flayer's attack is blocked by a monster's helmet 29328653Shselaskytins of lizard meat are never rotten, just like the corresponding corpses 30328653Shselaskytattered capes should not match ape entry in database 31328653Shselaskybooze should not match ooze entry in database 32328653Shselaskylowered drawbridge should not match werecritter entry 33328653Shselaskylengthen option file line length to 4*BUFSZ 34328653Shselaskymake zaps of death at polymorphed players work properly 35328653Shselaskychange way invisibility works, add remembered invis monsters and 'F' command 36328653Shselaskydon't list pick-axe and unicorn horn as likely candidates for charging 37328653Shselaskygive more accurate message when nymph steals multi-turn armor from female char 38328653Shselaskyfix splitting merged group of wielded weapons for menu mode version of #loot 39328653Shselaskyif a buried container rots away, bury rather than destroy any contents 40328653Shselaskythe 'W'ear command now only shows armor you can actually wear at this instant, 41328653Shselasky instead of all armor you're not currently wearing 42328653Shselaskywishing for a genocided monster egg gets a dead egg, not a generic egg 43328653Shselasky"Unfortunately it is still genocided" printed only if monster is in range 44328653Shselasky (particularly important for lifesaved monster genocided off-level). 45328653Shselaskymessage for monster growing into genocided monster only printed if in range 46328653Shselaskyinclude number of attached candles when formatting candelabrum's name 47328653Shselaskysupport attaching already lit candles to candelabrum 48328653Shselaskyrange of candlelight varies with number of candles 49328653Shselaskydropping ring of hunger onto sink won't falsely claim that undestroyed objects 50328653Shselasky like the Amulet have vanished 51328653Shselaskywinged gargoyle can't wear body armor 52328653Shselaskyself probing and stethoscope display speed with same detail as enlightenment 53328653Shselaskythrowing attacks can trigger reprisals similar to hand-to-hand and zap attacks 54328653Shselasky'A' now works in dropping like when picking up 55328653Shselaskymake setting bear traps and land mines be a multi-turn occupation 56328653Shselaskymake lava be properly lit on special levels 57328653Shselaskyadd orig.female flag to handle E quest monster situation 58328653Shselaskyclean up inconsistent quest text 59328653Shselaskyin initial legacy message, use "goddess" when appropriate 60328653Shselaskyallow FIRSTNEMESIS message to actually be printed 61329963Shselaskytaking a peaceful monster's weapon with applied bullwhip will anger victim 62329963Shselaskyapplying an unpaid magic lamp will charge a low lighting fee instead of the 63329963Shselasky djinni release fee 64329963Shselaskyteleporting a Rider will usually bring it near you instead of sending it away 65329963ShselaskyRiders can open locked doors without a key, just like the Wizard 66328653ShselaskyRiders, angels, and elves won't avoid stepping on Elbereth/scare monster when 67328653Shselasky deciding where to walk 68328653ShselaskyRiders and angels will ignore the sanctuary effect of temples 69328653Shselaskymind flayers cannot suck out brains by hitting long worm tails 70328653Shselaskydon't ignore object age when #offering a partially eaten corpse 71inability to pick up is not as general as nolimbs (blobs may pick up with 72 pseudopods and purple worms by swallowing) 73wishing for a magic lamp produces an oil lamp, not a no-charges, possibly lit, 74 magic lamp 75blobs may not ooze under doors if their inventory can't be squeezed through 76peaceful/tame monsters will not use bullwhips on the player 77ghosts were not inheriting player gender in bones files 78cannot wish for tins of untinnable (due to insubstantiality) monsters 79flying monsters cannot fall down stairs 80prevent divine retribution from destroying a wand which is being broken 81fix resuming to read a spellbook which has become blank since the prior read 82 attempt got interrupted 83make recharging cancelled wands behave like recharging other cancelled objects 84prevent "late" pline calls from triggering a crash when the RIP window was 85 displayed at end of game (observed when bones file rename failure 86 under Win95 was reported to wizard mode users) 87cannot shatter soft weapons (whips, rubber hoses) 88being punished on the Plane of Water doesn't trigger a panic when air bubbles 89 try to move the ball&chain or you around 90seen-invisible monsters are consistently visible but transparent, rather 91 than looking like normal monsters 92kicked object message for hitting another object no longer claims it "stops" 93kicked object hits objects (plural) if quan>1 but there is nothing else there 94kicking an object which is embedded in a closed door behaves like one in rock 95can't kick object out of a known pit, but could when pit hadn't been seen yet 96pets, shopkeepers, unique monsters, trolls, and Riders retain 97 their characteristics when killed and brought back to life 98being polymorphed into a black light makes you hallucination resistant 99don't attempt to perform panic save if the game is already over 100don't leave old game's timers, light sources, and shop data in place if 101 aborted restore attempt reverts to starting new game [eventual panic] 102Magicbane carried by mplayers has a lower enchantment than other artifacts 103if pets take longer to untame than to starve, make them go wild anyway 104split up erosion to allow both rust and acid (or fire and rot) 105rust/fire/corrosion/rot now work in all cases (monster/monster, monster/you) 106upon arrival to quest, mark return portal as seen 107can't be blinded by light while asleep 108can't put boulders or big statues into containers 109engulfers which engulf a pile engulf 'several objects' 110polyself: use right set of hit points for hunger and strength loss 111polyself: likewise when checking for troubles during prayer 112polyself: stop mimicking gold immediately if shape change occurs 113polyself: change monster type when sex change occurs for succubus or incubus 114Y2K fix: use 4 digit year values for the dates in the score file 115when changing levels, update the screen to show the new level sooner 116when changing levels, a monster might displace you from the stairs upon arrival 117petrify polymorphed player who has protected hands but is using a non-hand 118 attack on a cockatrice 119fix bug where barehanded AT_WEAP by polymorphed player on cockatrice worked 120prevent multiple purchases of clairvoyance at temple from overflowing the 121 intrinsic's timed subfield and becoming permanent 122when cursed, greased or oilskin cloak might fail to protect against grabbing 123when any corpse wielded by a monster rots away, unwield it to avoid "bad 124 monster weapon restore" 125hallucination affects priest and minion names 126don't try to make the word "aklys" singular 127bullwhip can't yank welded weapon from target 128eroded T-shirts now display the eroded shirt text consistently 129fix "killed by kicking something weird" when kicking a fountain 130disallow fruit names whose prefixes are valid for food (uncursed, numbers, etc.) 131properly handle wishing for fruits which start with other prefixes 132avoid rn2(0) divide by 0 for empty inventory when trying to crawl out of water 133don't let randomly placed monsters on special levels prevent explicitly 134 placed monsters who target that location from being created (a web 135 trap's spider resulted in no quest nemesis) 136don't let randomly placed stairs on special levels be covered by explicitly 137 placed features such as fountains 138substitute random monsters when special level monsters have been genocided 139fix intrinsic blockage by worn items so that wielding a mummy wrapping or 140 cornuthaum won't have the same special effect as wearing one 141magic markers created via polymorphing tools are flagged as being recharged 142unseen rust monster eating messages, and make tame rust monsters consistent 143 with wild ones with regard to rustproofed items 144pager: guard against '%' in output from being treated as a printf formatting 145 directive (using '/' or ';' to look at food yields "% blah blah") 146getpos: support shifted movement letters in number_pad as per help text 147getpos: properly truncate diagonal movements at map edge 148using #name to call an object type something could be used to distinguish 149 fake amulet of yendor (appeared in discoveries list) from real (didn't) 150upon quest completion, leader now IDs quest artifact and also tells player 151 that Bell of Opening is necessary if character doesn't already have it 152remove unwanted quote marks from quest message R 70 153make polymorphed objects be likely to retain magic state: non-magic items 154 usually yield other non-magic items, magic items yield magic ones 155make artifact mirrors unlikely to break when used to hit monsters 156make sure that nemeses don't leave corpses if the message says there's no body 157fix wizard-mode problem with generating Master of Thieves (was singularizing it) 158allow weapon-using monsters who ignore gems to throw darts 159make flint stones be the preferred ammo for sling wielding monsters 160gaining/losing telepathy via polymorph (i.e. mind flayer) redisplays monsters 161prayer result of ``escape from solid rock'' isn't inhibited by teleport 162 restrictions (attempting to fix all troubles got stuck in a loop) 163fix surviving level teleport to a negative destination from somewhere other 164 than the main dungeon (was corrupting the level maps) 165surviving level teleport to a negative destination ("you float down to earth") 166 escapes the dungeon instead of arriving on level 1 167dying due to level teleport directly to heaven won't leave bones 168kicking shades with blessed boots, punching with blessed gloves or when wearing 169 silver rings, does the appropriate damage to them 170add artifacts to ending score and display 171prevent used objects like scrolls and potions which immediately cause the 172 character's death from remaining in final inventory (disclosure+bones) 173blessed genocide of '@' will list the player's role during genocide disclosure 174moved skill definitions to their own file (skills.h) and embedded them in 175 the object table. 176increased the maximum number of branches supported by dgn_comp. 177increased the number of characters permitted in a role name. 178the number of bits available for properties are expanded. 179water demons should not chat about being freed. 180since hallucinating players see monsters constantly change anyway, don't print 181 message when werecritter changes 182artifacts which do fire/cold/electric damage to their targets can destroy 183 carried objects which are susceptible to that type of damage 184some artifacts are now unaligned in order to be more accessible to all types 185 of characters 186wizard mode ^F command reveals floor traps along with the map 187pager: '/' was not finding data.base entries for shopkeepers, mimics, or 188 race/role spit when picking from the screen 189small monsters like hobbits and gnome zombies couldn't wear cloaks/wraps 190make sure non-erodable objects aren't eroded or erodeproof (could happen by 191 wishing or object polymorph) 192consistently let iron non-weapons rust, etc. 193handle more spelling variations ("boots of speed",&c) when granting wishes 194fix 3.2.0 change which flags the castle and priest quest levels as graveyards 195when stepping on a spot where "there are several objects here" (so many 196 objects that they aren't automatically shown to the user), report any 197 dungeon feature such as stairs just like when there are fewer objects 198report "file empty?" rather than "version mismatch" when that's the reason 199 why a data file fails its validation check 200to-hit bonuses don't accumulate for monsters with multiple weapon 201 attacks 202skill definitions moved to skills.h 203skills are stored in the objects[] table. 204intrinsics and extrinsics are now >32 bit 205number of roles no longer limited to 26 letters 206renamed typename() to obj_typename() 207add "You hear a nearby zap" when monster is close 208fixed a bug that would print of "a Book of the Dead" instead of "The" 209fixed a bug so there is no delay when a rolling boulder trap is 210 triggered completely out of sight 211fixed emergency_disrobe() so it will drop gold 212fixed a missing case that occurs (rarely) when praying during a 213 full moon and your god is very pleased 214ask for confirmation before praying; no more accidental Alt-P 215more guilt messages when you do something which lowers alignment 216mplayers get more suitable equipment for their role 217allow spaces before <option-name>= in the options file 218dragon scales/scale mail of all colors now work when worn by monsters (in 219 3.2.x, only gray conferred any special benefit) 220when shopkeeper takes cash from dead player's corpse, clear `been robbed' 221 status if there's enough gold to cover the amount so that next 222 player who loads level as bones data won't start out owing money 223merged scrolls of scare monster crumble to dust together, matching the 224 existing feedback (was destroying one and leaving the rest) 225properly disallow wishing for venom and allow wishing for iron balls by class 226drum of earthquake can't destroy the high altars 227potion of oil can't be ignited while underwater 228zapping a wand of digging upwards while underwater won't dislodge a rock 229 from the ceiling 230add "born" field so monster extinction limits the number created, not killed 231allow "okonomiyaki", etc. to pluralize properly (Ranma 1/2 is popular) 232fix off-by-one bug that disabled the check to see if you tried to name your 233 fruit after a previously existing corpse or egg 234avoid a "glorkum" message if an object conveying a warning is stolen before 235 the warning message is delivered 236flags.made_amulet flag was never being set 237make sure proper message is given when tinning cockatrice while a flesh golem 238fix punctuation on cancelled cobra's dry rattle message 239leash cannot choke monsters that do not breathe 240rothes are now brown, harder to confuse with much more powerful grey quadrupeds 241defer level change for every schedule_goto() call, not just while monsters 242 are moving (player's move could cause an engulfer to expel character 243 onto a level changing trap, then attempt to access stale monster and 244 possibly trigger relmon panic or crash) 245fix obscure worm bug which did not consider the tail tip to be visible. Bug 246 produced "You miss it" on 3.2 and a blatantly obvious 'I' in prerelease 3.3. 247water prayer: treat already blessed potions as `other' rather than as `water' 248water prayer: potions being blessed glow light blue rather than amber; 249 hallucination affects the color seen when changed potions glow 250fix Death/Sandman #9 joke (should be 8) and make sure the message can be seen 251zapping Death with wand of death multiple times could cause hit points to wrap 252when pet attacks monster that attacks back, be sure it's in range (could be a 253 worm attacked on the tail) 254 255 256Platform- and/or Interface-Specific Fixes 257----------------------------------------- 258micro: -uwizard-{class} counts as -uwizard when allowing debug mode 259micro (assorted): readmail()--don't show fake mail text when blind; also, 260 update the "report bugs to" message to specify devteam@nethack.org 261msdos: fix overlay separations in weapon.c 262msdos: fix problem breaking compile without REINCARNATION 263msdos: fix dependency in djgpp Makefile (wintty.c -> hack.h) 264tty: try to use terminfo sgr0 (aka termcap me) attribute to turn off all 265 text attributes, instead of just using "rmso" (aka "se") attribute. 266tty: change name of nethack's termcap.h to be tcap.h 267tty: ^P at a long prompt printed an extra newline (and then wrapped oddly) 268tty: get repeat to work properly on extended commands 269tty/ASCIIGRAPH: rogue level uses PC Rogue colors and symbols 270nt: in TTY port, non-English keyboard layouts that depended on AltGr-+ sequence 271 were getting "Unknown command 'M-\'" for '\','@','$','{','[',']','}'. 272tty and X11: avoid crashing trying to display long (>128 char) menu items 273X11: avoid setuid install problems by changing uid to real uid while 274 opening the X11 connection. 275unix: compress/uncompress detects failure of the compressor, such as for 276 filesystem full or missing compressor, and no longer deletes the 277 valid file. In the uncompress case, such as uncompressing the save 278 file, a message is generated as well. 279dlb: handle situation where lseek(,,SEEK_END) doesn't yield the size of the 280 contents of a file (specifically, VMS "variable length" record format) 281vms: install.com couldn't handle the `copy readonly files' step when DLB 282 wasn't enabled 283mac: added unix tty-ish menu flexability 284mac: stoped using OLDROUTINENAMES 285mac: added dlb support 286mac: Increased the maximum number of menu items, so the inventory 287 won't get cut off at the bottom. 288mac: Changed the behavior of Cmd-Q so it uses the new #quit command. 289mac: Will only dispatch events if the window system is initialized. 290 This fixes a bug that would crash the system if the user had an 291 invalid option in the NetHack Defaults file. 292mac: Added an appropriate message when eating an apple. 293mac: Change the askname dialog for the new role patch. 294mac: Add a gray background to all dialogs. 295mac: Replace some improper calls to InitCursor(). 296mac: Remove a whole bunch of unused code. 297mac: Added Balloon Help messages. 298mac: Pop-up menus display the 3-letter file code instead of a single 299 letter. 300mac: Pop-up menus and text item have a 3-dimensional look. 301 302 303General New Features 304-------------------- 305incorporate the "wizard patch" 306`#quit' command added 307`*' command added; displays inventory of all equipment currently in use 308add Stone To Flesh spell 309wands eventually explode if rechaged too many times 310show IDed Amulet of Yendor + invocation tools in own section of discoveries 311 list; likewise for IDed artifacts 312add infravision 313add Eyes of the Overworld 314add lenses 315split players race from role in life 316cursed figurines cam spontaneously transform when carried 317`in_use' struct obj field is unconditional rather than just #if !NO_SIGNAL 318add the secondary weapon slot, e(x)change command, #twoweapon 319 command, and "pushweapon" option. 320add the quiver slot, (Q)uiver command, (f)ire command, and 321 "autoquiver" option (defaults to false). 322add the "pickup_burden" option which controls when the user 323 is asked for confirmation when picking up an item. 324pole-weapons can be applied at a distance, and similarly used by monsters. 325'/' command's pick-a-location input (getpos) supports shortcuts to bypass the 326 "more info?" prompt; ':' for '.'+'y', ',' for '.'+'n', ';' for ','+ESC 327monsters can throw cockatrice eggs at players 328prayer trouble "stuck in wall" takes boulders into consideration 329crysknives can be "fixed" 330vampires now #chat back 331new monsters: chickatrice,pyrolisk,fox,coyote,winter wolf cub,dingo, 332 gas spore,flaming sphere,shocking sphere,lynx,panther,raven, 333 glass piercer,mastodon,woodchuck,centipede,master mind flayer, 334 pony,horse,warhorse,silver dragon,lichen,storm giant,arch-lich, 335 dwarf mummy,green slime,disenchanter,monkey,dwarf zombie,ghoul, 336 paper golem, gold golem,glass golem,prisoner,jellyfish,piranha, 337 shark 338new objects: amulet of unchanging,silver dagger,silver spear, 339 silver dragon scales/mail,robe,alchemy smock,kicking boots, 340 kelp frond,eucalyptus leaf,scroll of earth,spell of drain life, 341 potion of acid,potion of full healing,potion of polymorph, 342 potion of sleeping,ring of free action,ring of gain constitution, 343 ring of increase accuracy,ring of slow digestion,grappling hook, 344 ring of sustain ability,wand of enlightenment,saddle,various gems 345add Monk role 346the old Elf role is replaced by the Ranger 347add Human, Elf, Dwarf, Gnome, and Orc races 348add multishot ammunition 349add graves, iron bars, trees, and arboreal levels 350dwarvish mattocks can be used to dig 351add leprechaun, cockatrice, and anthole special rooms 352add the Sokoban dungeon 353implement talking artifacts 354members of the clergy (aligned/high/player priests and monks) are 355 generated with a robe instead of chain mail. 356new tin of meat types 357tinning kits and cameras have charges 358blessed magic mapping detects secret doors 359starting spells are known at start of game 360pre-discoveries are listed with an * 361voluntary challenges with #conduct 362add a funny message when eating tridents and flint stones 363allow debug-mode level teleport to the sanctum 364some #monster commands now consume energy 365trees can be kicked as a possible source of fruit 366Wile E. Coyote references when using '/' on a coyote 367 368Platform- and/or Interface-Specific New Features 369------------------------------------------------ 370WinNT: implement mail support 371WinNT: console mouse support added to TTY port 372 373