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