::::::: 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
moria (5.5.2-5) unstable; urgency=low

  * Changed location of score file from /var/lib/games/moria/scores to
    /var/games/moria/scores per FHS.  (Closes: #115849)
  * Fixed handling of score file on upgrades (do not null it out!).
  * Applied fixes to a few buffer overflows.  (Thanks to Lars Helgeland for
    noticing the overflows and supplying the patches.)  (Closes: #115745)
  * Upgraded policy to version 3.5.6.0.

 -- Rene Weber <rene_debmaint@elvenlord.com>  Wed, 24 Oct 2001 22:44:05 -0400

moria (5.5.2-4) unstable; urgency=low

  * Fixed dependencies (was compiled against libncurses4, what was I doing
    that day?).
  * Corrected explanation of the 'V' command in moria2.txt (but not in the
    nroff source for that documentation).
  * Removed use of dh_suidregister.

 -- Rene Weber <rene_debmaint@elvenlord.com>  Mon,  9 Jul 2001 23:31:01 -0400

moria (5.5.2-3) unstable; urgency=low

  * Added a Build-Depends line.
  * Changed the handling of the build directory for the convenience of
    porters (should have no impact on users).
  * Changed short description so that it does not include the name of the
    package.
  * Corrected path to /usr/games/moria binary in the menu.  Closes: #81353

 -- Rene Weber <rene_debmaint@elvenlord.com>  Sat,  6 Jan 2001 02:47:02 -0700

moria (5.5.2-2) unstable; urgency=low

  * Fixed typos in the control/README.debian file
  * Updated the author's e-mail address in the copyright file
  * Updated the author's web page listed in the README.debian
  * Installed a new version of the FAQ (reflecting the author's move)

 -- Rene Weber <rene_debmaint@elvenlord.com>  Sat, 14 Oct 2000 10:23:48 -0700

moria (5.5.2-1) unstable; urgency=low

  * Initial Release.
  * Added DEBIAN_LINUX #define to handle code customizations.
  * Needed to include termios.h in io.c
  * All instances of signal() changed to sysv_signal() since libc6 defaults
    to BSD semantics.
  * Instead of redefining getuid, just ifdeffed it out of unix.c
  * Changed LOCK_EX and LOCK_SH definitions in death.c (to avoid
    redefinition warnings).
  * Library files are in /usr/lib/games/moria except for the scores file
    which is in /var/lib/games/moria and the hours file which has been
    renamed to /etc/moria-hours
  * Makefile changed to make the binary setgid instead of setuid, as
    required by Debian Policy 5.10.  None of the code itself needed to be
    touched, since it already relinquished uid and gid in the original code.
  * Saved game file is named ".moria-save" not "moria-save"

 -- Rene Weber <rene_debmaint@elvenlord.com>  Sun, 28 May 2000 16:35:38 -0400

