::::::: 1991 ::::::::
---------- 1/4
spells.c: light_area(), always light area immediately next to player even if
	in a room, could be standing on the edge of a room
monsters.c: Grave Wight, no longer has confusion spell, no other wight/wraith
	has it
misc2.c: get_spell(), when enter invalid character, print "You don't know
	that prayer." instead of "spell" for priests/etc.
creature.c: make_attack(), creatures which are repelled should not be confused
	because they did not hit the player
death.c: exit_game(), delete #ifndef TURBOC around the restore_term() call
io.c: restore_term(), delete the call to clear() in the MSDOS code, it was
	trying to use curses after curses had been exited
---------- 1/22
files.c: call pause_line(23) after printing hours file
constant.h, config.h: constant.h should always be included before config.h,
	because some systems redefine constants in config.h
rnd.c: include config.h after constant.h
main.c, misc2.c, save.c, signals.c: include constants.h before config.h
misc2.c, vms/getch.c: new function user_name() for VMS, fix get_name()
	in misc2.c to call it
------- 1/30
moria2.c: hit_trap(), add msg_print(CNIL) for the trap door case
-------- 2/4
io.c: for ATARIST_MWC, use 240 instead of '#' for walls
save.c: for ATARIST_MWC, convert 240 to '#' when saving, and '#' to 240
	when loading, to avoid conversion problems
--------- 2/8
create.c: monval(), cast i to int, otherwise some compilers do the arithmetic
	with unsigned characters
--------- 2/19
makefile: add new macro CURSES, define it for BSD/SYS V/and Xenix
config.h: add config info for XENIX, define SYS_V and unix, only undefine
	register for MSC versions less than 600 (6.00?)
creature.c: mon_move, comment out register decl for r_ptr for XENIX systems
	to avoid a compiler bug
misc2.c: place_gold, comment out register decl for t_ptr for XENIX systems
	to avoid a compiler bug
unix.c: ifdef out include of termio.h, for XENIX add include of sys/types.h
	and define bzero as memset, test for unix or M_XENIX at the top
Makefile: add optional commands to install target which chown/chgrp everythin
	to bin, and put pointer to it at the top
---------- 2/25
util/score: Two new utilities, prscore to print scorefiles, and delscore to
	delete one entry from a scorefile.
config.h: add MORIA_* macros for the Atari ST with GCC
death.c, externs.h, io.c, main.c, signals.c, variable.c: Apply Atari ST/GCC
	patches from Scott Kolodzieski.
-------- 3/1
death.c: Amiga must open/close scorefile like MSDOS&VMS
io.c: init_curses(),restore_term(), fix bugs in AMIGA code,
	add code to release resources
amiga/*: updated versions of amiga source files, from
	cg37717@lion.eng.clemson.edu, Corey Gehman
atari_st/curscomp: complete rewrite of the curses code by Hildo Biersma
store2.c: get_haggle(), do not accept an increment value of zero, turn off
	increment flag instead of accepting it
-------- 3/2
store2.c: store_purchase(), store_prt_gold call was inside `if' now after,
	did not update gold if store had 13 items and you bought the 13th
-------- 3/11
moria1.c: sub3_move_light(), don't print over old location if find_flag
	is true, unless find_prself is also true, this speeds up movement
	in find mode by eliminating unnecessary drawing of characters
moria2.c: hit_trap(), call move_light() for the teleport trap case, to light
	up the trap
misc1.c, save.c, treasure.c: change ATARIST_MWC ifdefs for using graphic
	character to ATARI_ST which is true for both MWC and TC
io.c: remove all ATARIST_MWC diffs which were needed for the old non-standard
	curses, change the rest to be ATARI_ST, since both MWC and TC need them
-------- 3/14
source/*: add Mac THINK C support
mac/dumpres/*: add Mac THINK C support
mac/scrnmgr/*: add Mac Think C support
moria1.c: find_init(), when !light_flag and !find_prself, must erase the
	player's '@', because sub3_move_light() won't, see 3/11 change above
------- 3/15
mac/*: add Mac THINK C support
*: put file name and 1991 copyrights in all source files
------- 3/23
save.c: prevent resurrection of a total winner character
constants.h, creature.c, monsters.c, recall.c: add new flag CM_ONLY_MAGIC,
	set this flag in creature.c, check the flag in recall.c, allows
	recall to print movement speed for Quylthulgs
creature.c: when a wand is drained of charges, inscribe it as {empty} if
	it is not known2
-------- 3/24
files.c, ibmpc/ms_misc.c: ifdefed out msdos_intro(), since that routine is
	obsolete now
doc/moria.6: add -S option to list at the top
ibmpc/CONFIG.DOC: update for Umoria 5.x, remove kneller's address, and put in
	my address
------- 3/25
config.h, constant.h, */*.c: move VMS definition for ESCAPE from config.h
	to constant.h, now all files include config.h before constant.h
*: linted all sources files, changed version numbers to 5.3
------- 3/30
vms/*, ibmpc/ms_misc.c, config.h, death.c, dungeon.c, externs.h, files.c,
io.c, save.c: merge in changes from Ralph Waters, which are needed to compile
	the sources under VMS and IBM-PC/Turbo C.
moria2.c, store2.c, *.c: get_item(), show_inven() take new parameter mask,
	if mask is non-zero, they only list items indicated by mask array,
	store_sell() calculates a mask based on what store will buy
store2.c: purchase_haggle(), sell_haggle(), if the auto increment is larger
	than the difference between the store's offer and the player's offer,
	then set the auto increment to the exact difference
dungeon.c, externs.h, moria1.c, moria2.c, variable.c: eliminate search_flag,
	it was redundant, replace all uses with (py.flags.status & PY_SEARCH)
tables.c: remove good armor items from armory, to force players to search for
	them in the dungeons, hard leather boots, iron helm, partial plate,
	full plate
misc1.c: alloc_monster(), always create dragons sleeping here, to give the
	player a sporting chance
moria1.c: inven_command(), when pack not empty and show_weights flag true,
	display capacity along with weigth carried on first line of inventory
spells.c: build_wall(), permanently light walls created within range of
	player's lamp
spells.c: earthquake(), fix it to act just like build_wall when a monster is
	trapped in a wall
creature.c, externs.h: movement_rate(), now static
*: release 5.3.1 sources
------- 4/27
ms_misc.c, externs.h: change declarations of warn() to match definition,
	change declaration and definition of error() to match warn(),
externs.h: fix declarations for sleep(), find_init(), show_inven(), get_item()
death.c: display_scores(), don't set player_uid for non UNIX/VMS system
	duplicate_character(), ifdef out code which is unreachable for non
	UNIX/VMS system, make all returns have a value
sets.c: set_null(), add a #pragma argused for TURBO C
ms_misc.c: fix three lines that had an assignment inside an if
externs.h: add prototypes/declarations for VMS files getch.c and uexit.c
moria1.c: see_wall(), change ATARIST_MWC ifdef to ATARI_ST
atari_st/curscomp/curses.c: winsch(), first loop ran in wrong direction
externs.h: add declarations for atari st functions
atari_st/moria.prj: new file, TC project file for Umoria
death.c: highscores (), change fseed to fseek, typing error
creature.c, death.c, desc.c, dungeon.c, files.c, io.c, moria1.c, moria2.c,
	store2.c, wizard.c, atarist.c: include stdlib.h if ATARIST_TC to get
	prototypes for standard library functions
generate.c: for ATARIST_TC, include <string.h>
atarist/curscomp/curses.h: change mvadd* macros from compound statements to
	conditional expressions, so that all returns values are error checked
io.c: for ATARIST_TC, include ext.h to properly define (?) sleep
config.h: for ATARIST_TC, define index strchr
save.c: sv_write()/get_char(), define t_ptr for both MSDOS and ATARI_ST;
	get_char(), change ATARIST_MWC ifdef around chmod call to ATARI_ST
	include time.h for ATARIST_TC
unix/Makefile: change ONWER to OWNER
creature.c: creatures(), give moves to monsters trapped in rock, so that they
	will die/dig out immediately, mon_move() if a monster in rock is
	already dead, don't kill it again
*: update address info in all files
io.c: change __GNU_C_ to __GNUC__
config.h: the test for undefining 'register' was wrong, it was undefing it
	for all non-MSC compilers
moria2.c: tunnel(), heavy weapon code wrong, eliminate >>2 of penalty, add
	penalty instead of subtracting it
help.c: ident_char(), add period after Giant Frog.
monsters.c: novice priest, change sleep from 10 to 5 to match other novice 'p'
moria1.c, store2.c, *.c: get_item() new parameter 'message', when invalid
	letter hit, print this message if non-zero instead of beeping,
	store_sell() pass message "I do not buy such items.", fix all other
	callers to pass CNIL
-------- 4/28
misc2.c, files.c: put_misc2(), file_character(), when player at max level,
	don't print a number for Exp to Adv, instead print ******
io.c: msg_print(), put multiple messages on the same line if they are short
	enough
------- 5/22
externs.h: ifdef out declaration of sprintf for NeXT
io.c (init_curses): correct atarist/GNUC code for signal call, ifdef was wrong
------- 7/6
spells.c (unlight_area): Unlight all floor spaces with `lr' set, instead of
	just the room floors spaces.  This darkens the doorways.
moria1.c (light_room): Add code to set the fm flag, necessary so that the
	above fix does not unlight doors that it shouldn't.
io.c (msg_print): Don't combine NULL messages with other messages.
save.c (get_char): Use msg_print when printing the `departed spirit' message.
-------- 7/26
store2.c (purchase_haggle, sell_haggle): If the automatic increment plus the
	last offer passes the shop keepers current ask, then clear the incr.
-------- 10/5
*: Add changes needed to prevent warnings from the IBM-PC TURBO C compiler.
misc[1234].c, moria[1234].c: misc[12].c and moria[12].c were each split into
	two files, because they were too large for TURBO C's integrated
	environment
*: adjust all makefiles, externs.h, etc to account for new moria/misc files
TCCONFIG.TCU, TCPICK.TCU: new files, uuencoded copies of Turbo C setup files
config.h, ms_misc.c: New define USING_TCIO, used to prevent including curses.h
	in ms_misc.c.  Defaults to defined if using TURBOC on an IBM-PC.
io.c: delete special purpose AMIGA code, it now uses curses
amiga/amiga.h: Deleted.
amiga/amiga.c: Delete all curses stubs.
-------- 10/6
macrsrc.h: change type of resType, ResID to long
macrsrc.c: eliminated search_flag from macrsrc.c (see 3/30 changes)
config.h: put back switches RSRC, RSRC_PART1 and RSRC_PART2
ScrnMgr.ro: changed def of MBAR #228 (fixes crash on Mac Plus) and INFO #1
	(Make default window be full screen)
ScrnMgr.c: check for reconfig flag enabled for THINK_C, add recognition
	of MacClassic (and LC?) keyboard, now assumes unknown keyboard type
	has control key, other misc cleanups
moria.ro: changes version string
macconf.c: config.h included for consistency
mac.c: added support for 8-column tabs
mac/Install.doc: new file, installation instructions for THINK C
macconf.c, machelp.c, macscore.c scrnmgr.c: covered up error in THINK C
	includes files OK/Cancel for ok/cancel
death.c, save.c: delete setmode calls for IBM-PC, instead open files in binary
	mode
--------- 10/12
*: Changed version number to 5.4.
save.c: change code to accept savefiles with version numbers greater than the
	version number of the game, savefile format frozen as of 5.2.2
externs.h: ifdef out the troublesome sprintf declaration
config.h: force `unix' to be defined for unix systems, since some stupid
	systems (e.g. AIX) don't already define it
--------- 10/15
externs.h, moria4.c, ms_misc.c: correct typos discovered under MSDOS
--------- 10/19
spells.doc, exp.doc: New documentation files.
--------- 10/26
vms/uexit.c, externs.h, io.c, signals.c: Define uexit as void, and ifdef out
	exit declarations when VMS.
vms/moria.opt: add misc[34].obj and moria[34].obj
ibmpc/ms_misc.c: correct typo in error()
pr_items.c, pr_monst.c: main now returns 0
CONFIG.DOC, TERMCAP, ms_ansi.c: use le/do instead of obsolete bc/xd
dragon.inf: moved from util/weapons to doc, and updated it to be accurate
spoilers: Update from USENET FAQ posting.
--------- 11/17
io.c: ifdef out code checking for 8 char TABS, because it assumes that the
	screen is exactly 80 characters wide
moria[12].[ms/txt]: Correct a few typos.
*: Fix all file permissions.
::::::: 1992 ::::::::
Maintenance taken over by David Grabiner
--------- 7/16
moria4.c: bash(), use random direction if player is confused
spells.c: fire_ball(), fire_bolt(), don't update recall if monster not lit;
	this can happen if bolt hits an invisible monster
spells.c: speed_monsters(), sleep_monsters2(), dispel_creature(), 
	turn_undead(), only affect creatures within MAX_SIGHT 
spells.c: mass_poly(), area of effect should be <= MAX_SIGHT, was <
spells.c: destroy_area(), remove light from player's spot
spells.c: enchant(), add new variable limit, chance of failure is now
	(plusses/limit), with very slight chance of success over limit
scrolls.c: when enchanting melee weapons to damage, set limit to weapon's
	maximum damage, otherwise use 10 to give behavior similar to old method
misc2.c: magic_treasure(), make standard deviation of damage bonus on a melee 
	weapon proportional to weapon's maximum damage; these changes mean
	that daggers can no longer become powerful weapons
treasure.c: the Zweihander has now become a great weapon, value increased from
	1000 to 1500
externs.h: fix declaration for enchant()
staffs.c, wands.c: give everyone a slight chance to use difficult wands and
	staffs, otherwise a warrior will never be able to use many items
--------- 7/23
death.c: print_tomb(), insert msg_print(CNIL) so that "You are using:" and
	"You are carrying:" don't get combined as one message; this made it
	impossible to see the equipment list
store2.c: haggle_insults(), insert msg_print(CNIL) so that insult is always
	recognizable
store2.c: purchase_haggle() and sell_haggle(), new variable didnt_haggle,
	don't call updatebargain if no haggle
store1.c: noneedtobargain(), changed to sliding scale, (good-3*bad) must
	be more than 5 + (price/50) to skip haggling, so that haggling for
	cheap items is over quickly, but can still eventually skip
	haggle for all items
store1.c: updatebargain(), now update for all items worth >9 gold, instead
	of just 10-999, since it is now possible to skip haggling for more
	valuable items as well
--------- 7/25
moria4.c: bash(), unsuccessful bash takes a turn; otherwise, you can
	attempt to bash in different directions while confused or to locate
	invisible monsters; eliminate variable no_bash
--------- 7/27
check all above changes
moria4.c: bash(), get "You bash at empty space" method when bashing a
	wall, corrected to "nothing interesting	happens"; this also
	prevents bashing from locating a secret door
--------- 8/9
merge in all changes from 5.4.0 to 5.4.1
creature.c: update attack information only if monster is visible; update
	death information even if monster is not visible, since
	information will be on tombstone
*: change version number to 5.5.0
--------- 8/12
spells.c: enchant(), guard against randint(0) if called with limit of 0
	(it shouldn't be).
moria4.c: throw_object(), py_bash(), don't do negative damage
shortnam.sed, spells.c: fire_ball(), fix spelling of "envelops"
doc/faq: remove old spoilers file, and put current FAQ here instead
*: put my name (DJG) in credits as contact
*: change copyright date in all source files to 1992
---------- 8/13
release umoria 5.5.0
---------- 10/26
doc/moria[12].[ms,txt]: correct some typos, and make changes for 5.5.0
---------- 10/31
misc4.c: scribe_object() allowed inscriptions longer than 12 characters
	if 13-24 characters availble for inscription, could overwrite
	other data
::::::: 1994 ::::::::
---------- 6/6
scrolls.c: aggravate monster should give "humming noise" before "stirring"
scrolls.c: always identify scrolls which print a message
unix/unix.c: change from obsolete getpw() to getpwuid() to get UID
death.c: #include<sys/types.h> seems to be needed on XENIX and SYSV
death.c: fix #ifdef (...) || defined(...)
save.c: set fd=-1 after closing file to prevent double close
dungeon.c: move hero/superhero to first status check so that player's HP won't
	go below 0 in mid-turn (killing him) and then become positive
doc/moria[12].ms: fixes so that file works with groff
store1.c: sell_price(), check for consistent sale prices compared
	pointers rather than values
create.c: get_all_stats(), set player level to 1 before calling set_use_stat
	with constitution (which used level to check hit points)
misc3.c: misspelled variable "holderr" in MWC-specific code
misc3.c: prt_experience(), put check against max level in while loop
	so that level gain is never tested if player is max level
misc3.c: gain_level(), corrected comment for loss of extra experience
	when player gains multiple levels
moria3.c: monster_death(), don't make player a winner if already dead
store2.c: get_haggle(), %d should be %ld
misc3.c: todis_adj(), case of dexterity 3 was omitted
spells.c: wall_to_mud(), may find objects in rubble as with tunneling
---------- 6/7
io.c, signals.c: included changes from Andrew Chernov for 386BSD support
io.c, config.h: included changes from Berthold Gunreben for HP-UX support
config.h, death.c, files.c: added patches for HP Apollo, which doesn't allow
	multiple processes to use the same file
config.h: defined MORIA_LIB to contain pathname for moria/files, to 
	simplify configuration
moria1.c: inven_command(), get_item(), added code from Harry Johnston 
	which allows use of 0-9 to specify an item with the 
	corresponding inscription
doc/moria[12].ms: documented above change
files/version.hlp: my name appeared both as author and "other contributor"
scrolls.c: set AC bonus on cursed weapon, hit/dam bonuses on cursed armor
	to zero (in case HA/DF/gauntlets of slaying had bonus)
creature.c: don't print message when invisible monsters recover from bash
creature.c, moria3.c, spells.c: reworked monster confusion, monster's
	confused value now gives duration, turn_undead has guaranteed
	duration equal to player's level, other confusion random
creature.c: undead which have been turned will flee rather than moving
	randomly, attack only if cornered
recall.c: print "It is resistant to" if monster has not cast any spells 
        but breath flag is known (because monster resisted an attack)
monsters.c: allow monsters to resist attacks if they have no breath
	weapon but use the attack type (so fire giants resist fire)
sets.c: new function set_large(), identifies objects too large to fit in
	a chest or be carried by small creatures
misc3.c: get_obj_num(), new parameter must_be_small to generate only
	small objects when appropriate; place_object() passes it
files.c: random object sample passes must_be_small
constant.h, treasure.c, monsters.c, moria3.c, recall.c: new constant 
	CM_SMALL_OBJ for chests, and for monsters carrying only small
	objects, check it in monster_death() by setting a bit in
	treasure type, allow it to be recalled
moria3.c: summon_object(), object must be small if bit flagged above
many: change all other calls to place_object to set must_be_small to FALSE
externs.h: fix declaration of get_obj_num(), place_object(), add set_large()
store1.c: noneedtobargain(), change scale again, (good-3*bad-5) must be
	positive and its square must be at least price/50, this allows
	high-level characters to become good bargainers for expensive
	items
---------- 6/8
lint all above changes, fix assorted typos
recall.c: recalled spell frequency for non-spellcasters in wizard mode
monsters.c: checked small objects/resistances for consistency, fixed error
creature.c: creatures given resistance by setting of breath bits tried
	to cast spell, calling randint(0)
moria3.c: error in testing type caused all monsters which should drop
	both objects and gold to drop only gold
creature.c: turned undead must call get_moves so they know which way to flee
---------- 6/9
moria1.c: inven_command(), get_item(), print 0-9 in prompt message when
	appropriate 
moria[12].ms: clarified that digit inscriptions work only on items in pack
prayer.c: strengthened Holy Word
player.c: reduced failure chance for Holy Word 
check all changes, fixed more typos
---------- 6/10
moria1.c: inven_command(), get_item(), 0-9 was printed in wrong place
---------- 6/22
spells.c: td_destroy(), td_destroy2(), don't disarm/unlock chests that
	are already empty
treasure.c: up staircase had extra space after name
doc/moria[12].ms: proofread, fix many typos
---------- 6/25
monsters.c: allow thieves to pick up objects on the floor
main.c,config.h,amiga/amiga.c,amiga/timer.c: included changes from
	Ronald Cook for Lattice C support on Amiga 
death.c,io.c,signals.c,unix.c,config.h: included changes from Brian
	Johnson for Linux support
changed version number to 5.5.1
fix more lint errors
util/mergemem: code from Eric Bazin to merge monster memories
*: changed all copyright dates to 1994
released version 5.5.1
---------- 7/5
death.c: || !defined(APOLLO) should be &&
---------- 7/11
store2.c: get_haggle, changed %ld back to %d since variable is 16 bits
---------- 7/20
treasure.c: fixed many inconsistencies, mostly prices and names
misc2.c: magic_treasure(), fixed values of SU and SA, which weren't
	changed when see invisible was moved from SA to SU; also changed
	magical bonuses for these weapons
store2.c: increase_insults(), don't clear out haggling record if player
	is thrown out (it might be worse than zero), just penalize as
	for bad bargain 
---------- 7/21
treasure.c: fixed a few more inconsistencies with items
files.c, misc32.c: file_character(), put_misc2(), don't print "Exp to
	Adv" if over max_level (i.e., winner) 
files.c: file_character(), leave enough space for printing 8-digit
	experience points 
misc3.c: put_misc2(), make display consistent with above change
misc3.c: new function prt_8lnum(), print a long variable in 8 digits of
	space, needed by revised put_misc2() above
death.c: need flock hack for HPUX
io.c: #include <termio.h> for HPUX was inside #if 0
ibmpc/*: fix several typos in PC-specific files, also one in config.h
changed version to 5.5.2
released version 5.5.2
