-S.Marsh knows up to here
tcio.c:	  added multiple messages/line code posted by brianm@soda.berkeley.edu
		(Brian Markenson), which he adapted from Purple X's Moria.
		The only function affected is msg_print().
store2.c:	  On advice by David Grabiner, added msg_print(NULL); after insult
		in haggle_insults().
describe.c:	  changes 'dwarfs' to 'dwarves' in Mim + sons descriptions...
moria2.c:	  facts() changed to switch on weapon.subval if it's a TV_BOW item.
		The subvals from treasure.c are 1,2,3... for bows, 10, 11,
		for Xbows, and 20 for slings.  This will fix the
		trouble with Cubragol acting like a sling.
save.c:	  resurrection code now heals cuts, so we don't just die again.
		Also, word of recall counter zeroed so we don't get
		yanked away from town if we had read a scroll before
		we died.  This may be redundant (I didn't check to see
		if word_recall is zeroed when we die), but it can't
		hurt.
misc1.c:	  ghost code in function place_ghost() and set_ghost() changed to
		insure that HPs don't wrap around int8u hit dice...
		Now, instead of trying to use 350d1, it will do 32d11.
		This factoring avoids the overflow, but it required a
		couple of casts before multiplying, and also required
		the set_ghost use *= 2 instead of = 2 when adjusting
		hit dice for race/class/lv of ghost.  Now I won't
		run into ghosts of tough characters that die in 1 swing.
misc1.c:	  bladeturner/razorback trouble found...  name2 was not being
		set to SN_BLADETURNER or SN_RAZORBACK, it was being set
		just to BLADETURNER or RAZORBACK.  So they never existed...
		This is now fixed.
	Also, I added 'if (randint(3)>1) return 0;'  I assume that something
		like this was there and taken out when people were trying
		to "force" BLADETURNER/RAZORBACK to appear.
	Should BLADETURNER and RAZORBACK have a negative p1 field?  Do
		they hurt your dex/int/wis/searching/stealth?
	Also, Glamdring and Aeglen have TR_SEARCH/TR_STEALTH, but p1
		is never set.  Glamdring I made 3, like Orcrist, and
		Aeglen I made 4 (because it's supposed to be the strongest
		of the 3...)
create.c:	  Autoroller "you can learn some new spells -more-" message avoided
		by writing new versions of get_all_stats() and put_stats(),
		to avoid any possible calls to calc_mana().  The new
		functions, get_auto_stats() and put_auto_stats(), are only
		used in the autoroller.  A call to calc_bonuses() (which
		will also call calc_mana(), has been added after the
		auto-rolling is finished.

monsters.c:	  Smeagol and F.Maggot now 'h' instead of 'p' (since they're hobbits)
desc.c:	  in object description code ( objdes() ), an additional else if ( )
		was added so that artifacts will be described as "the
		longsword named Ringil" not "a longsword..."
	objdes() code will now say "(1 charge)" instead of "(1 charges)"
tables.c:	  chartruse potions should be lightgreen, not magenta (according to
		my dictionary, anyways).  So I changed the color.
describe.c:	  smaug's description "Uriloki" --> "Uruloki"
monsters.c:	  Ibun, Khim, Brodda, S. of Umbar, A. of Umbar, and Gorlim all
		were made evil.  These changes were judgement calls based
		on the monster's description.  In the case of Mim's kids,
		they were made evil because he was evil.  Nar was not
		made evil, even though he is a "betrayer", as the
		description says Melkor tricked him into betraying his
		friends...  He may have been greedy, but I didn't think
		it warrented "evil".
moria1.c:	  minus_ac() changed to check for both TR_RES_ACID and TR_IM_ACID
		before harming armor.  Note that if you want to call
		minus_ac for some other kind of damage (at the moment it
		is only used for acid damage), then you will have to add
		cases to minus_ac().
misc1.c:	  TR_ACTIVATE added into flags2 of BLADETURNER.  This is redundant,
		since DSMs already have it.  Also, other activatible
		artifacts checked.  All items that have TR_ACTIVATE appear
		in activate code in dungeon.c and all that appear in
		dungeon.c have TR_ACTIVATE.  So this should be the last
		of this fix.
	TUOR's TR_IM_ACID moved from flags to flags2.  In flags, it was
		adding stealth, which TUOR already had, so it didn't
		get noticed.
prayer.c:	  "You wounds heal." --> "Your wounds heal."
create.c:	  autoroller code was screwing up disarm (and maybe other) skills.
		The problem was that it was resetting the values after
		adding in the class skill mods.  So the class skill mods
		didn't happen.  This has been fixed by moving get_history
		and get_ahw back inside the autoroll loop.
	Aditionally, I moved the DEX-based disarm adjustment from
		get_ahw() (I wonder why it was there...) into get_class.
		This means that the bonuses will be based on your stats
		after all the race + class adjustments have been
		figured in.  This may mean a slight disadvantage for
		classes which have dex penalties, but it will benefit
		classes which get extra dex.  I decided this was more
		reasonable.
prayer.c:	  elemental brand changed to call enchant() to adjust the pluses
		of the branded weapon.  This will prevent branding of
		a weapon already at +10+10 from going above... (unless
		you get REAL lucky)
dungeon.c:	  Cubragol's elemental brand for bolts has likewise been changed to
		call enchant()
treasure.c:	  added 2 new special names: "(Shattered)" and "(Blasted)" for
		extra effect of curse weapon, armor.
constant.h:	  added SN_SHATTERED and SN_BLASTED and increased SN_ARRAY_SIZE 
scrolls.c:	  curse weapon and curse armor scrolls are now even nastier, doing
		a more thorough destruction of the item, but artifacts get
		a saving throw (they resist 3 times in 7)
player.c:	  priests had a slightly worse chance of casting holy word than
		paladins...  99 compared to 95 (base chance).  Since this
		seemed silly, I swapped them.
---------------------------------------------------------------------------
Unnecessary variables cleaned up from several files:	  spellls.c, misc1.c, create.c, dungeon.c, creature.c, magic.c,
	generate.c, death.c and moria1.c
---------------------------------------------------------------------------
spells.c:	  create_food() was calling get_obj_num() for some unknown reason,
		and then doing nothing with the result.  Since it was
		unneeded, I del'd it.
misc2.c:	  random_object() could have placed an object out-of-bounds.
		in_bounds() test added.
moria1.c:	  light_dam() now can destroy objects, like the other damage types.
death.c:	  minor change to high-score display... "on Dungeon Level X" is now
		"at X'", which leaves more room for the "killed by" str.
	Also, a quick test for dungeon level added.  If level is 0, then,
		"at X'" replaced by "in Town".
player.c:	  eliminated the dsp_race array of 5-char abbrievated race names,
		since it was unused...
moria1.c:	  calc_bonuses() -- old code did not give you AC from armor if it
		was cursed.  This doesn't make sense... Even if plate
		mail was cursed, the base ac of the armor should still
		block just as much damage.  (Cursed armors protect less
		by having a large negative toac value...)  This was
		a Um5.3 change that I'm incorporating...
creature.c:	  monsters bashing open doors weren't breaking them.  changing
		randint(2)-1 to 1-randint(2) fixed this.
moria2.c:	  ditto for the player bashing doors (in bash()).
generate.c:	  build_type5() was changing the value of template, and then free()ing
		it.  This would DEFINITELY cause memory troubles.  It's
		been fixed by adding another pointer, t, and using it
		inside the loop.  Thanks to gehring@pib1.physik.uni-bonn.edu
		for telling me this one.
	build_type1() wasn't bounds-checking the room coordinates, and so
		it could put a room "off the edge" of the cave[][] array.
		That would be bad, both because the room may be
		unaccessable, and because it will merrily trash whatever
		memory is at the out-of-bounds address.
	build_type2() also wasn't bounds-checking.  Fixed.
	build_type3() ditto.  Also fixed.
	vault_trap() didn't have a paranoia bound-check before referencing
		the random potential location.  Fixed
	build_room() had no bounds check.  Also fixed.
	special_pit() ditto.  fixed.
  (Well, that looks like all the bounds checks needed for generate.c...-CFT)
moria1.c:	  from um55, clear heavy_weapon flag before calling check_strength(),
		in 'x' and 'w' commands, to insure the proper message is
		displayed...
scrolls.c:	  from um55, id scrolls can move if merged.  The loop from Um55
		replaced the current code, which doesn't always search
		far enough.
dungeon.c:	  from um55, now erases the message line after change_character().
moria1.c:	  from um55; now sets weight to 0 if carrying nothing, as a safety
		measure.
dungeon.c:	  from um55, take off weight of spike when jamming a door.
desc.c:	  from um55, known1_p() true for objs w/o a "color".  also, objdes()
		changed to work w/ new known1_p().
misc2.c:	  from um55, inven_carry() will now sort objects like moria does!
		This means that the 1st spell book will be placed in 'a',
		even if you drop it by accident and pick it back up!.
misc1.c:	  compact_monster() now cannot compact away Melkor.
	popm() now check compact_monster() return value.  If nothing can
		be compacted, (should never happen), returns -1. (um55)
	place_monster() and place_win_monster() now of type int, and
		douple check popm() value before using it.
externs.h:	  prototypes of place_monster, place_win_monster changed to int.
	prototype of compact_monsters() added
misc1.c:	  compact_monsters() no longer static
creature.c:	  calls to place_monster, place_win_monster doublecheck return val
dungeon.c:	  dungeon() now will call compact_monsters() if the monster list
		is nearly full.  another um55 change
misc1.c:	  from um55: overflow check added to m_bonus()
creature.c:	  mon_move() - m_ptr->fy, m_ptr->fx cast to int to make loop run
		properly
	mon_move - recall of non-moving monsters changed from when they attack
		to when they should have moved, but don't.
moria2.c:	  from um55, tunnel(): check that player is tunneling into something
		tunnel-able before checking for monsters, OW player can
		tunnel into air nearby to detect inv monsters.
	from um55, bash() now checks to see if you're confused...
wands.c, staffs.c, rods.c:	  from um55, give everyone (even a 1st lv 1/2troll warrior w/ a 3 INT)
		a slight chance to use items.  Just how slight depends on
		how close (or how far) you are from being able to use it.
		This will sure help warriors!
misc2.c:	  from um55: put_misc3(), change clear_from(13) to 14.  Now it won't
		erase gold...
spells.c:	  from um55, speed_monster() when slowing monster, wake it even if it
		fails...
	ditto for confuse_monster()
	no trap under player in trap_creation()
	wall_to_mud(), give message even if can't see, since it's audible
	sleep_monsters2(), dispel_creature(), banish_creature(), probing(),
		and turn_undead() all now only work w/in MAX_SIGHT
	mass_poly(), chaos() now <= MAX_SIGHT, not <
	destroy_area() now unlights player's location.
misc1.c:
	OBJECT BUG (maybe) FOUND!!!  pusht()'s definition was using an int8u
		for the index of the object to be deleted!  But Angband
		uses a MAX_TALLOC of 400, which rolls over!  This could
		easily cause some of the wierd errors where objects
		turn into other objects when the level is full!  And,
		it could do so w/o ever seeing the "compacting objects"
		message, which fits the bug reports!!!!
	I've changed it to an int16, to agree with the definition of
		tcptr in treasure.c
externs.h:
	prototype of pusht() changed to int16.
files.c:
	print_objects(): cast of j to int8u in call to pusht() removed
store1.c:
	store_create(): cast of cur_pos to int8u in call to pusht() del'd
misc1.c:
	summon_* functions - several are comparing the randomly chosen
		m value to 1, instead of l.  It looks like a simple typo
		that has been repeated by cut&pasting.  All fixed.
	place_monster() is now thoroughly error-checked.
save.c:
	when reading player ghost's name, changed cast from (char *) to
		(int8u *) in call to rd_bytes().
files.c:
	added Max Exp and Exp to Adv. fields to file_character()'s description,
		to match the on-screen display. (um55 change)
misc2.c:
	changed field width of prt_lnum from 8 to 9.  Hopefully this will
		fix display probs when have > 99,999,999 gold.  Now, hopefully
		noone get more than 999,999,999 gold.
moria2.c:
	fixed "summon your strength"/"gods may think" message so it tests
		if cast mage spells or not.
	hit_trap(), from um55 add msg_print(NULL) for trap door, and light
		up teleport trap.
	py_attack(), throw_object(), py_bash(): check for neg damage added
	hit_trap(), from um55, fire/acid/corrode gas traps... message 1st,
		then effects
spells.c:
	"envelopes" --> "envelops"
store2.c:
	store_purchase(), from um55, move store_prt_gold outside of if
		so that gold is updated if store had 13 items + you buy 13th.
misc1.c:
	alloc_monster() -- any monster that can cast hostile spells or
		breathe will be asleep if it's placed in a line-of-sight
		with the character.  That way, he has a sporting chance...
moria1.c:
	um55 changes: sub3_move_light() and find_init() changed to move
		light more efficiently.  See comment in find_init for
		details (um55 code pasted into code...)
	inven_command(), um55 change, carry capacity now shown if show_
		wieght_flag is set.
moria2.c:
	carry() code changed slightly to allow pickup w/o asking, like
		Moria does, to satisfy people who have been asking for it.
misc1.c:
	added new line to options table... "Ask before pickup?"
vars1.c, externs.h, save.c:
	added new int8u flag 'carry_query_flag', used like moria used
		prompt_carry_flag, to control if you want to be asked
		to pick up an item (unless it weighs too much, then you
		always get the "exceed wt limit?" question.
creature.c:
	creatures(), um55 change, give move to any creature trapped in rock,
		so it will move or die.
	mon_move(), um55 change, double check creature is not dead before
		trying to kill it for being in a wall
moria2.c:
	um55 change: bash() - failed bash now costs a move, so player cannot
		repeatedly bash when looking for inv monster, or when
		confused.
monsters.c, describe.c, generate.c:
	Changed name of "Balor" to "Lesser Balrog".  Also, in descriptions,
		one of the balrogs was listed as a "huge balor"... now
		he's a "huge balrog".
dungeon.c:
	activate() had a couple of problems...  If you aborted by hitting
		ESC, it took a turn.  And, if you hit '*' to show the
		list of artifacts, and then hit a nonsense key, it would
		clear the screen and do something unpredictable.  The
		first was fixed by testing for flag == FALSE after the
		while (!flag && get_com(...)) loop.  If flag is still
		false, then we never selected an item, so it's a free
		turn.  The 2nd trouble was fixed by adding an else
		after the "else if (choice=='\033') code.  Anything that
		falls into here rings the bell, and then continue-s to the
		top of the while loop, without screwing things up.
misc1.c:
	magic_treasure() didn't make much sense with DSMs.  After playing
		with it for a bit, I've re-written the code for the DSM
		case.  I believe that it is consistant with what was intended
		by the original code (note that I don't say "with what the
		original code did").  DSMs now have the normal chances of
		being artifacts, and some DSMs will get an extra bonus
		to the toac field.  This, combined with my earlier fix
		about BLADETURNER/SN_BLADETURNER etc should mean that
		the artifact DSMs will exist!
	Note: About what my code does...  All DSMs are given a random + to
		ac, unlike other armor, for which only items that are
		good or pass the magik(chance) test.  I did this because
		it was what the original DSM code did.  Additionally, all
		the DSMs have a base +to AC, from the treasure list in
		treasure.c (all but PDSM have base of +10, PDSM has +15).
		Then, for any DSM which is special, an additional + to AC
		from 1 to 10 is added, and unique_armour() may be called
		to try to create an artifact.  For more detail, read the
		source...
misc2.c:
	calc_mana(): allow mage-type spellcasters to wear hand armor IF
		it gives a bonus to dex.
desc.c:
	objdes() code changed to add special cases for Phial, Star and
		Arkenstone...  Now, until they are identified, they will
		not be obviously the artifacts (although, there is no
		other "Phial" or "Gem"s, so it's not too hard to figure
		out.  Now, it will be more obvious to people when they
		have to ID them, before activating them.
spells.c:
	starball() was not doing anything if your were blind.  I suspect
		that the if used to control a message, which was moved/
		removed.  Since I thought it would be kind of lousy for
		Razorback to do nothing if you activated it while blind,
		I took out the if... -CFT
moria2.c:
	move_char() - changes to the code to light rooms.  Check char's
		location for either LIGHT_FLOOR or NT_LIGHT_FLOOR.  If
		on a door, search the surrounding area.  If one of the
		nearby squares is an unlit room which should be lit, it
		will call light_room from the character's location and
		then stop looking.
misc2.c:
	calc_mana() - added check for negative 'new_mana'.  This could
		happen if you had a real low int/wis, and was wearing
		lots of heavy armor.  Most likely, the player had a
		so-so int/wis, which was drained too much to compensate
		for the armor.
misc2.c:
	"money bug" fixed.  Before, if you had a bunch of stackable items
		bought at normal price, then you could buy and sell
		bargin items, and make $ on the deal.  It would only
		work if you never sold your last one, and never bought
		the store's last one, but it was a gaping loophole in the
		economy, even if it was boring to exploit.  Now,
		inven_carry() checks to see if the 'cost' of the new
		stackable item.  If it's less than the cost of items in
		the player inventory, then the cost of the player's
		inventory is set to match the cheap item.  This prevents
		player from "milking" the stores for cash when there's a
		special offer, but it is unfair, as it cheats the player out
		of the value of his items.  (But players shouldn't be buying
		items unless they want to use them.  Buing items just to
		sell them again is silly unless you were trying to exploit
		this bug.)
save.c:
	The player ghost's exp bug was due to garbage values in the
		high bits of the mexp field.  For some reason, the
		save/restore code only wrote an int16u value instead
		of an int32u.  Since I dodn't want to change the savefile,
		I've kludged it by using temp int16u vars for the i/o.
treasure.c:
	special names table changed so named artifacts are "The Longsword
		'Ringil' (4d5) (+x, +y)" instead of "The Longsword named
		Ringil (4d5) (+x, +y)".  Only "named so-n-so" type names
		were changed, the "of so-n-so" were left alone.
misc1.c:
	magic_treasue() TV_GLOVES only called unique_armour() if was
		gloves or gauntlets, not for cestus.  Fixed -CFT
	TV_BOOTS could slip thru magic_treasure w/o getting a special
		set of boots.  This can happen because metal boots
		cannot be boots of stealth (sensibly).  I'm making a
		bit of drastic, "judgement call" change here.  I'm
		adding a new type of boot -- Free Action.  To me, this
		makes at least as much sense as gloves of FA.  Metal
		boots will have a better chance of being FA, since they
		can't be Stealth.
treasure.c:
	subval of Star and Arkenstone changed from 5,6 to 6,8.  This is
		because the TV_LIGHT code in magic_treasure sets p1 to
		a random value if subval is odd.  This is preventive
		medicine, since the Star didn't actually use the p1 field.
spells.c:
	earthquake won't destroy shop doors or stair, in addition to not
		killing artifacts...
	ditto for create doors, wall building, destruction
misc2.c:
	special_place_object() the mesg buffer str[] was uninitialized, and
		could result in a garbage message if a wizard or in "peek"
		mode. Fixed
monsters.c:
	My theory on cap.: non-uniques should have only 1st word cap.  Uniques
		should be cap. as in book titles (ie everything but 'the', etc)
	monster name capitialization: Novice Ranger; Cave Orc; Hill Orc;
	Grishnakh; Shagrat; Gorbag; Master Rogue; all "Deva"s; Mim; most 'Q's;
	Master Thief; Master Vampire; Hell Hound; mature dragons; many wraiths;
	YMHD; Will o' the Wisp; Ancient dragons; Emp Wight; Night Mare; Vampire
	Lord; Great Cry Drake; Death Quasit; Master Lich; Lesser Balrog; Wyrms;
	Black Reaver; Draugluin; 
	Plural names made singular: Uruk-Hai -> Uruk (x3); Olog-Hai -> Olog;
		Mumakil -> Mumak (x2); Ogre magi->mage
	Spectre made visible (think about the name for a second...)
	"Necromancer" --> "Warlock" to avoid confusion with Sauron
	Beholders are NOT natural!! 'ANIMAL' removed also from Undead b.
	The tough Ethereal hounds are now Astral hounds, to avoid fatal confusion
	Balance and Law drakes/wyrms are no longer evil.
describe.c:
	fixed spelling/capitalization/etc of: Necromancer->Warlock; Cave Orc;
	Hill Orc; Uruk-Hai; most Qs; Hell Hound; Olog-Hai; Master Vampire;
	mature dragons; some wraiths; vampire lord; master lich; Ancient
	dragons; Emp Wight; death quasit; Shagrat; Lesser balrog; Draugluin;
	Master thief; master rogue; mumakil; all "deva"s; novice ranger; 
	wyrms; great cry drake; Gorbag; black reaver; Mim; wisp; gorlim;
	ogre magi; night mare; 
---
Here a freak bug in emacs (maybe it ran out of memory) destroyed my
monsters.c that I'd just spent all that trouble changing monster names.
I've gotten a copy from the 1.2 release, and I had to regenerate all the
changes above.  (hopefully I didn't miss anything...) *sigh*	-CFT
---
treasure.c:
	potions of Death now do 30d30 when thrown, making them potent
		weapons.  Also, I've given them a slightly higher value
		then Detonations, to reflect their new usefullness.
files.c, misc2.c:
	if/else added so that exp to adv will be "****" instead of 0 at max lv.
creature.c:
	mon_cast_spell(): 2 flags added, player_hit and blind.  These flags
		used to control messages and additional effects.  The
		player_hit code was mostly already there from an earlier change.
		The blind code changes spell messages so you don't see "you
		blink your eyes and your vision clears" while already blind.
player.c, externs.h, misc2.c:
	spellmasks[][] array added so code can check when player knows all
		spells available to his class.  calc_spells() changed to use
		spellmasks[][] when counting learnable spells.  This means that
		py.flags.new_spells will reflect accurately how many spells he
		could learn really learn, so the "you seems to be missing a
		book" message will only appear if the player is really missing
		a book.  When he's learned all spells available to him at his
		level, he will be told that he can't learn new spell now.
constant.h:
	clean-up monster spell,movement and defense constats which were
		superceded by definitions in monster.h have been #if 0-ed out.
spells.c:
	bolt() code heavily modified.  All of the "exotic" bolt/ball/breath
		types have been incorporated.  This will allow me to take
		out all the code in mon_cast_spell() which tries to handle
		the "extra" effects of the exotic types.
	static fn spell_hit_mon() used to allow reuse of code... it takes
		care of checking resists, reducing damage, does "special
		effects" like polymorph mons for GF_CHAOS, and adjusts
		damage for range from "ground 0".
	With spell_hit_mon(), adding exotic bolts to fire_bolt() was a
		snap.  Also, fire_ball() was easy to add exotic types.
		And to breath().  All of them should be done.
	I've included in my switch all of the GF_* types, even though there
		is no spell casts a bolt of some of them.  I did this so
		it would be complete and easier to work with.  But this means
		that I've had to make some judgement calls, like "Should a
		bolt of nexus cause extra effects like stat-shuffling, or
		just damage?".  Mostly, I've made the bolts act like less-
		powerful versions of the ball/breath spell.
constant.c:
	creature movement constants defined in constant.h DID NOT ALL MATCH
		those defined in monster.h.  The *_20, *_40, *_75 constants
		for random movement didn't match.  I made the constant.h ones
		match the monster.h ones, since monsters are defined with
		those.
spells.c:
	change to teleport_to code... if it can't find a space around you in
		9 random tries, it increased the distance.  Worked okay, but
		if monster was very surrounded, the distance could grow
		too quickly.  Now checks (9* dis^2) tries, since possible
		locations is proportional to dis^2. -CFT
files.c:
	read_times(). I added a #ifndef MSDOS around the code which deals
		with the hours file.  I moved the old #endif for the
		#ifndef ANGBAND_HOU to just above the newsfile code, and
		then added the #endif to go with the #ifndef MSDOS.  All
		this means is that, on a PC, you never worry about the
		hours file, but the news file will be displayed.
main.c:
	#ifndef MSDOS around read_times() removed.  That is the fn which
		displays the news file, in addition to doing what it sounds
		like.  Now I should start seeing the news file again.
creature.c:
	mon_cast_spell() gutted!  All of the kludges to produce the "special
		effects" for the exotic bolt/breath types is gone.  (Now that
		bolt/breath are smart enough to handle all the exotic types)
	br_wall() and shatter_quake now check to insure they don't hurt
		stairs and shops, in addition to artifacts
spells.c, externs.h:
	obsolete fn get_flags() removed. Also, old (previously #if 0-ed out)
		bolt() code junked.  In it's place is ball_destroy(), which
		sets destroy to the proper set fn.
death.c:
	if you don't make the hiscore list, it now says so.
treasure.c:
	priest book "Godly Insights" had 0x80000000 added to flags, allowing
		the spell "Detect Monsters" to be learned.
generate.c:
	change monster names inside strcmp()s so they match the new spelling,
		capitalization, etc.
creature.c:
	creature confused/unconfused code changed, to use a counter instead
		of a simple T/F flag.  Higher level monsters become unconf
		faster.
misc2.c:
	added patch to inven_damage from hirai@cc.swarthmore.edu (Eiji Hirai)
		to show what is destroyed.  Also, "sparks fly from your pack",
		"smoke from your pack" etc msgs removed because redundant
store2.c:
	added a slightly modified version of kevin.o'connor%acc1bbs@ssr.com
		(Kevin O'Connor)'s patch to double check to see if you have
		anything the shopkeeper wants before proceeding to ask which one.
misc2.c:
	added a modified version of brianm@soda.Berkeley.EDU (Brian Markenson)'s
		inven_carry code, which makes magic books come before prayer
		books for mage-type spellcasters.  Thanks much, Brian! -CFT
player.c:
	Since rogues already get recharge I & III, I gave them II.
generate.c:
	place_*() fns now have paranois checks.  Also, the vault_*() fns
		that use strcmp have paranoia checks.
	build_tunnel() had kevin.o'connor%acc1bbs@ssr.com (Kevin O'Connor)'s
		patch to insure that "inward facing" corners are not
		destroyed by the tunnel code.  This code means that all
		tunnel will meet rooms at a side, which I consider a bonus -CFT
spells.c:
	dispel [evil|undead] will now say "it shudders/dissovles" if you
		can't see it.
	mass_poly() will not poly uniques, or poly into uniques.
	obsolete fn chaos() removed.
	turn undead confuses monsters according to counter scheme
scrolls.c, magic.c, prayer.c, rods.c, dungeon.c:
	word of recall spell will ask you if you mean it.  If you don't
		say 'y' or 'Y', you lose the scroll/mana/charge.
misc2.c:
	place_*, special_place_* function all have paranoia checks
moria1.c, dungeon.c, misc2.c:
	added another rest option: '&' to rest until all non-fatal (not
		poison or cuts) troubles are gone.  It will wait out blind/
		fear/stun/conf/slow/HP/mana.  '*' still works as before.
constant.h:
	TV_SPIKE changed from 13 (inside TV_MIN_WEAR, TV_MAX_WEAR) to
		3 (outside), so spikes will no longer show up in the list
		of possible wieldables (they aren't wieldable... I didn't
		bother with that moria 5.5 change)
creature.c:
	shatter_quake could bury player, making it impossible for monsters
		to attack him.  It should be fixed now...
spells.c:
	fire_bolt() code fixed.  I forgot to set m_name before using it, so
		I was getting garbage.
	fire_ball(), breath() code changed.  first draw ball, then pause
		briefly for it to be seen, then erase it, and then do
		the effects.  Now that the effects generate msg_print()s,
		if we erase as we do effects, so of ball can be seen far
		too long.  This change was only done to the #ifdef TC_COLOR
		code, so the non-TC_COLOR code will need fixing.
	breath() code revamped, unifying the TC_COLOR and non-TC_COLOR code.
		It is now based on the TC_COLOR structure, with #ifdefs to
		around calls to color or MSDOS specific code.  I'm not
		100% sure that the non-msdos code is bug-free, as I have
		no way to test it, but I think it is okay.
misc1.c:
	place_monster() paranoia checks rearranged, so that popm() is only
		called if we are going to USE the index we get back.  Before,
		we could call popm() and then find out that the monster we
		tried to place was a dead unique, and then exit w/o using it.
	This may help fix troubles in the monster list -CFT
creature.c:
	It will now tell you what was stolen -CFT
moria2.c:
	if you hit a monster with "glowing hands", it would confuse it,
		but the message would be "the mon-name appears confused.".
		I upcased the 1st letter, so it will look better.
misc2.c:
	fixed weight_limit to do math in long, then cast.  Otherwise, it can
		overflow for huge strengths, and give a negative limit.
moria1.c, dungeon.c, store2.c:
	inventory and equipment displays have been colorized.  We'll see if
		it's nice or obnoxious.  Also artifact activation list, and
		store inventories.  So far, it seems nice, although I'm not
		sure if I like armor LIGHTGREEN.  Maybe try RED?  That's
		be less bright.
store1.c:
	changed store_carry() to use the same inven sort as inven_carry().
misc2.c:
	changed prt_chp() code so that HPs shown in yellow if hurt, or
		red if very hurt. (only for TC_COLOR, with !no_color_flag)
prayer.c:
	old remove curse code that was #if 0-ed out, deleted.
tcio.c:
	new fn get_Yn(), just like get_check(), except only 'Y' means yes.
-----
A few calls to get_check() replaced with new function get_Yn(), which only
takes 'Y' as yes.  This should help people who hit ^W instead of shift-W,
and then try to move the map up-and-left.
-----
dungeon.c:
	redraw command implemented.
misc2.c, moria1.c, vars1.c, externs.h, save.c:
	The idea of colorizing inventory by type of item, to make it easier
		to find what you want, seems to me to be a big win.  But,
		since not everyone may have the same tastes as I, I've
		added YA flag, 'inven_bw_flag', to control whether it
		should be colorized.  Of course, if the no_color_flag is
		set, the inventory colorization will not be used anyways.
sets.c:
	TV_ROD taken out of set_lightning_destroy.  rods are supposed to
		be long-term items.  What good is a rod of return, if
		you have to worry about something destroying it?  You
		might as well carry scrolls.
tcio.c:
	^r was having inkey() call raw_mode().  Don't ask me why.  I #if 0-ed
		it out.
dungeon.c:
	wizard light command moved from '*' to '$', so I could use '*' as
		the command for the targeting code I'm about to steal from
		Morgul.  ('*' seemed like a better key to choose a target
		with than '$', and I don't really care what key does
		wiz-light. -CFT)
externs.h, vars1.c, moria1.c, moria2.c, misc2.c, dungeon.c, spells.c:
	Morgul's targetting code stolen and incorporated.  The '*' key
		selects a target.  Now, not only can the player harm a
		monster that's not in line with him, he can casts his
		ball spells over other monsters, if he's using target
		mode.  I don't know if this will majorly unbalance the
		game, but I've got a couple days of playtesting time to
		check it out...  At the worst, I can disable it by #if-ing
		out the "case '*':" from do_command() in dungeon.c... -CFT
	I haven't yet been able to get hold of Chris Wilde to ask him for
		permission to use his targetting code (all my emails have
		bounced, either with "no such host" or "no such user").
		So, at the moment, I am violating his copyright by using
		his code.  Hopefully I will be able to reach him.  If not,
		I plan on leaving the code in, until he objects.  This
		means violating his copyright further, if he wanted to
		object, but I believe he would be willing to let the code
		be used if I was able to ask him... -CFT
misc2.c:
	gain_level() code that reduced the amount of exp you got, if you
		got more than enough for the new level.  My viewpoint on
		it is this: If a player gets lucky enough to kill a tough
		monster when he's low level, then he deserves every last
		one of those experience points... -CFT
creature.c:
	monster move code changed so that monsters who try to pick up
		items won't pick up an item which "slays" them.  Exceptions
		are SE and SA, which are just too comprehensive.  If a
		monster tries to pick up an artifact or one of these items,
		then the player will get a mesg, if he can see the monster.
recall.c:
	spell names changed for recall code "mass summoning", "mind searing",
		"fires arrows" --> "summon many creatures", "sear your mind",
		"fire arrows".  This make the mon.memory sound less awkward.
main.c:
	usage code changed to give a more thorough description of options.
		Also, it gives different output for MSDOS and non-MSDOS,
		because the PC is a bit different (no uid, cannot get
		player name from username, etc).
misc2.c:
	inventory patch needed tweaking - if picked up a 2nd prayer book of
		same kind, the "adjusted" typ wasn't matching the tval of
		the book in inventory, so they didn't stack.  SOLN: reset
		typ to i_ptr->tval each pass through the loop.  Then it
		has the correct value when we want to match, and is adjusted
		before we check for position...
dungeon.c:
	redraw command tweaked to not redraw if player is hallucinating.
misc2.c:
	gain_spells() now prints better msg for warriors.
creature.c:
	update_mon() code tweaked -- wizard sight still sees all. telepathy
		now won't show up "mindless" undead (non-spell using).
		If the player has line-of-sight, he will see (or not see)
		them normally.
creature.c, spells.c:
	disenchant will now tell you what was affected
misc1.c:
	place_group changed to take into account (randomly) how far out-of
		depth a group monster is when deciding the size of the pack.
		Monsters that are too wimpy for a lv will generally be
		found in bigger groups, and if too tough for a lv, they'll
		be in smaller groups.
creature.c, misc1.c:
	creature display code changed slightly so that MHDs (and other
		monsters, which isn't so good for efficiency) will be
		redisplayed whenever it moves or the player moves, allowing
		MHD's to change to a random dragon's color every turn.
misc2.c:
	change made to place_special(): broken swords/daggers are not good
		items, neither is rusty chainmail, nor are rags.  But
		the new magic/prayer books are good, and Raal's/WoG is
		"special"
	character screen display colorized
moria2.c:
	minor change to Morgul's targetting code... '.' would select the
		player's position when in location mode.  Since I play
		NetHack a lot, I'm used to using '.' to select a target,
		so I've changed '.' to work the same as 't' for both
		monster and location targetting.  I really didn't see the
		need for a command to bring the target cursor back to you,
		so I didn't replace it. -CFT
------------------------------------------------------------
Matt's advance copy of 1.3 has up to here ... -CFT
------------------------------------------------------------
store1.c:
	changed store_check_num() so that home will not allow you to add >24
	of an item.  This prevents a player from losing any items...
misc2.c:
	The code to count the # of possible spells learnable in calc_spells()
		was checking the spell levels for spells 0-31, even when
		it should have been checking 32-63.  Fixed by changing [j]
		to [j+32] in the 2nd loop.
misc2.c:
	calc_hitpoints was adding in the wrong (presumedly an outdated) value
		for superheroism, 20 instead of 30.  If your hit points were
		recalc-ed while you were berserk, (like when you gain a level)
		you would lose 10 hit points permanantly when it ended.
store2.c:
	minor display changed, now uses %ld instead of %d to display the
		(long) variable last_inc.
dungeon.c:
	minor change: if you hit 'A' to activate artifacts/DSM, and had
		nothing to activate it would cost you a move.  Added
		free_turn_flag = TRUE; on advice of Mr. Winer
moria1.c:
	minor change to sub3_move_light(), to ensure color of player is
		normal.  In rare cases, the player could have been printed
		in whatever color the last monster/item displayed was.
dungeon.c:
	minor change to examine_book() to make letters shown in book match
		those used when casting the spell.  Again, thanks to Mr. Winer
store1.c:
	sell_price() was comparing the pointers min_sell and max_sell, and
		not the associated values.  Could this fix the bizarre
		rusty-chainmail-for-hundreds-of-millions-of-gold-in-the-
		black-market-bug?  Thanks to Andrew Solovay for this one.
recall.c:
	"been killed by your ancestors" -> "...you and your..."
mkdesc.c: (not really part of sourse, but it makes the mon_desc.dat file):
	changed strcmp() call to stricmp(), so I can be less paranoid about
		monster name capitalization...
sets.c:
	torches and oil can now be destroyed by fire damage...
wizard.c:
	wizard create will now skip all of the TR_* flags questions if
		the item is not wearable/wieldable, since those flags only
		apply to wearable/wieldable items.  This saves a LOT of
		wasted keystrokes if you wanted to create Raal's to test
		something... -CFT
dungeon.c:
	if in wiz mode, using non-rogue command set, then any wrong key
		would do the artifact-list-to-file command.  This is because
		any bad key was mapped to '~', which was then interpreted
		normally.  To fix, I just made bad keys map to '(', which is
		completely unused to my knowledge...
create.c:
	when using manual character generation, the test to change the
		display message was outside of the loop, so the user wasn't
		being told he could hit ^P to get back the previous character.
treasure.c:
	up stairs had an extra space at the end of the name; removed.
misc2.c:
	more colorization added to char screen (lost exp and lost stats)
moria1.c:
	get_dir(): targetting code will not be used if the monster isn't
	lit... if player cannot see the monster, then he cannot aim, so
	target mode should not be used. -CFT
death.c, desc.c, dungeon.c, generate.c, misc1.c, misc2.c, moria1.c,
  recall.c, spells.c:
	Uses of strcmp() replaced with stricmp().  The cost in time is
		trivial, and this insures better matching if the monster/
		item lists are changed (at least case won't be as much of
		a problem).  I did not replace strncmp() with strnicmp(),
		since strnicmp() is "unique to dos", according to my TC++
		manual.
monsters.c:
	I'd noticed that a few monster who definately shouldn't have shown
		up on infravision did.  So I've updated many monsters for
		consistancy: 1) all cold monsters don't show up on infravred;
		and 2) all undead are res. cold, and don't show up on infrared.
		Affected monsters were:  Yeti, sasquatch, cold vortex, cold
	hound, ice troll, giant white dr. fly, b/y/m/a white dragons, great
	ice wyrm, frost giant, spirit troll, Scatha, blue ooze, poltergeist,
	rotting Q, gr. rotting Q.  Also guardian and spirit nagas cannot
	open doors (since they have no hands...)
creature.c, spells.c, misc2.c:
	changes in the messages for items destroyed/disenchanted/stolen.  I'd
		assumed that the comment in objdes (desc.c) was telling the
		truth when it said the 3rd parameter, pref, controlled whether
		it would add a prefix (like 'a') to the description.  Well, it
		does, but it also controls suffixes like the (2d5) for weapons,
		[4,+2] for armour, etc.  Now, after seeing how funny my meesages
		looked, I've tweaked them to sound better.

creature.c:
	now, when gold stolen, it tells how much, so the player can agonize
		over how much he lost...  :-)  Actually, I've always been
		curious how much I do lose to thieves... Now I'll know.

dungeon.c:
	target code causes problems!  If you try to move w/o pickup, or try
		to use the 'W' command to view the map, while in target mode,
		get_dir will return 0 before asking you for a direction, which
		is bad.  In case of the 'W' command, it will quickly become
		caught in an infinite loop.  The soln: save the value of
		target_mode to a temp var, force it false, read the dir, and
		then reset target_mode.
	Also, I somehow forgot to change the artivate artifact code to
		reflect the changes in fire_ball(), bolt().  It's been
		updated, but this will push back my U/l time by a couple
		of hours...
create.c:
	very minor change to char creation code, to allow help screen
		viewing from class and autoroller menus
===========================================================================
Tues 18 Aug 1993  PC Angband update 1.3 packaged for U/L to ksu.
===========================================================================
