Merc Release 2.2
Wednesday 24 November 1993

Kahn
Hatchet


=== What's new in 2.2

Many of the changes from 2.1 to 2.2 were contributed by the MERC imps out
on the net as well as from our playtesters.  Kudos to them!
See 'contrib.txt' for acknowledgements.

We have 'lost' a few platforms due to the addition of MOBPrograms.
'mob_prog.c' and 'mob_commands.c' might provide warnings and/or errors on
certain platforms.  John Daub is working on the MacIntosh platform on his
own and will post the reported MERC to the net.

We now have a startup for those using SH instead of CSH.

MERC 2.2 will not lockup a port anymore.

Flying enables the player to walk over water.

Dispel Magic has been removed pending YOUR rewrite.  I had no time to fix
that source of crashes so I just killed it.

New Commands were added:
	OWHERE is an immortal version of 'locate object'.
	SPELLS shows the mana cost of your spells.
	SLIST shows the spells available for your level.
	AUTOEXIT, AUTOSAC, AUTOLOOT, etc were added for more flexibilty.
	WIZIFY sets player bits to allow certain players to bypass wizlock.
	PAGELENGTH enables a player to set the number of lines paged on screen.
	PROMPT toggles the prompt display plus allows the player to
	  set it to his/her own liking.

MOBPrograms which enable mobiles more versatility with out coding a
spec_proc.

A screen pager.

Decompression of Pfiles at login.

A Parsed Pfile directory for ease of Pfile search.

More accurate consider command.

Other various tweeks, additions and bugfixes.

=== What's new in 2.0

Many of the changes from 2.0 Beta to 2.0 were contributed by our beta testers.
See 'contrib.txt' for acknowledgements.

Several new platforms are supported.

The 'startup' script now works on many more Unix systems.

Containers are back.

Memory management has been redone (again).  Almost all of the static limits
from 1.0 and 2.0 Beta are gone, with neglible performance loss; memory use is
slightly less than 2.0 Beta.

New and improved mortal commands: 'commands' to list all commands; 'configure'
to configure 'brief', 'compact', the 'auto' stuff, et cetera; a new 'who'
command with lots of options.

New and improved immortal commands: 'slookup' to find sn's and slot numbers;
'trust' to give the effect of advancement without changing level;
'transfer' now takes a destination room; 'ban' now matches sites by suffix
(so you can 'ban foo.edu'); 'log all' has been added; 'snoop' now prevents
snoop-looping; 'oset' can set extended descriptions; 'mset' can set a mobile's
spec_fun.

Bug fixes: auto-dropping aligned items had a nasty linked-list bug; 'pose'
was fixed; 'force all' was rewritten.

Several new areas have been added.

Ascii save files are in effect.  Equipment and container contents are saved in
the right place.  Objects which have been oset will keep their new values.
This includes description strings and extra descriptions, so you can look cool
in your Ray-Ban's without restringing them every time you log in.

Object lists are (optionally) displayed with item counts now.

Players may loot only their own corpses or their own groups' corpses.  Other
corpse looting is punished with a PLR_THIEF flag.



=== What was new in 2.0 Beta

The 'lib' directory is gone.  Most of the *.txt files have been moved into
'help.are' as 'help' entries.

The 'doc' directory is much larger.  All the files have been rewritten (with
the exception of 'license.doc').

The help file 'help.are' has been rewritten.  It is now complete and correct.

Merc now uses a different area file system: one area, one file.  Each area is
stored in a separate file.  The list of areas to read on bootup is stored in
the file 'area.lst' in the directory where the server boots.  The server reads
in all area files once on bootup and never touches them again.

The server now generates mobile and object statistics on its own, ignoring the
values in the files.  Statistics are subject to random variation.

We have a dozen new areas.

The server has very good error checking on areas.  Most diagnostics are
accompanied by area file name and line number.  The server does exit after
finding just one error, but Merc loads areas so fast (4 seconds on a Sun-4)
that you can easily use the whole server as a syntax checker.

All code has been re-written.  The entire code base is about 6000 lines smaller
than the 1.0 release, and runs in about half the memory as 1.0.

The external declarations have been re-organized to improve portability.  The
files merc.h and comm.c have OS-specific declaration sections for suitable
external declarations, and comm.c has several OS-dependent sections.  Outside
of these files all of the code is machine-independent.

Many new Unix-based operating systems are supported, and a single-user MS-DOS
version is supported as well.

The code for classes has been consolidated into tables in const.c, making it
much easier to add new classes.  See 'class.txt'.

The skill / spell code has been rewritten.  The entire cast_* layer has been
removed.  The miserable SPELLO declarations have been replaced by more
extensive declarations of skills and spells in 'const.c'.  In particular, the
slot number in #OBJECT area is no longer equal to the internal index number of
a skill or spell, so adding new skills and spells is an order of magnitude
easier.  See 'skill.txt'.

The horrible 'board.c' code has been sent to /dev/null.  In its place we have a
new 'notes' facility.

Player files are now in Ascii form.  You can read them, grep them, edit them,
move them to other machines, do whatever you want with them.  Some fields (in
particular, class, skill, and spell names) have been separated further from
internal constants, making it easier to add new classes, skills, and spells
without upsetting existing player files.

Auto-save is implemented.  One player is saved each tick (whomever has the
most time since previously saving).  Thus with 20 players online, each player
will be saved once every ten minutes.

Many immortal commands are now logged automatically.

All unimplemented spells have been removed.  In particular, several of the
partially implemented 1.0 spells were taken from an undocumented 'magic.c' we
found on ucbvax.berkeley.edu.  These spells were originally written by Dan
Brumleve and we apologize to him for the past infringement.  All of this code
is gone from Merc now.

The main menu ('press 1 to enter the game') has been removed.  There are two
new game commands, 'password' and 'description', to accomplish the same effect.
The 'password' command is protected against logging and snooping.

Tick times and area update times are now random (with an average time set
by PULSE_TICK and PULSE_AREA respectively).

Players no longer gain experience from pkilling.

Players may no longer log in with the same name as mobiles in the game.

The new 'areas' command lists all areas available.  The 'memory' immortal
command shows memory usage.  There are many new and upgraded immortal commands,
and all of them have on-line help now.

The new 'respond' command allows players to hold up their end of the
conversation with invisible or switched immortals.

The 'tell' command may no longer be used to talk to mobiles outside of the
room.

The 'pick' command is now limited.  Mobs will guard a lock against picking by
low level thieves.

The 'steal' command is now limited.  One may not steal from a PC nor from a mob
more than 5 levels above one's level.

Several commands have been removed, including 'ask', 'info', 'pour', 'whisper',
and 'tick'.

The group code has been redesigned, eliminating several bugs in the process.

Mobiles now will join in fights, especially when other mobiles of the same
type are fighting.  Players also automatically auto-assist other players in
their group.

There is a pet shop.  Many bugs related to 'charm' have been fixed.

Several nasty memory allocation bugs were fixed.  These didn't show up on SunOS
or Ultrix, but crashed Linux, NextOS, and many other OS's.  Thanks to Vic for
debugging help.

The bug where getting killed with an 'armor' spell on left one's AC at 120 
(instead of 100) has been fixed.

The server emits a telnet GA sequence at the end of the prompt.

The 'prompt' command disables or enables the prompt.  Handy for immortals who
don't need the prompt, but it's primarily there to reduce output for blind
mudders using speech synthesizers to read their output.  Thanks to
davros@ccwf.cc.utexas.edu for suggesting this feature.

The 'time' command now reports system time, so players in any time zone can
know when your morning shutdown occurs.  It also reports bootup time, so you
can see how reliable your Merc is.

There are no more bags.  Item carrying limits are in effect.

The recall command has been tweaked.  It works perfectly outside of combat.  In
combat, it has a less-than-perfect chance of working, and it costs xp to try it
(more than for flee).  The spell 'word of recall' now just calls the recall
command.

The 'flee' command now reports xp lost.  When a character flees, all characters
fighting it will stop fighting, not just one.  This also fixes the mysterious
'Extract_char: NULL' bugs.

Link dead characters in combat are dealt with more harshly, to discourage
intentional link killing as a way out of combat.

The 'harm' spell is limited to 100 points of damage.

The 'summon' spell is now limited.  One may not summon a person out of combat,
and one may not summon a mob to a different zone.

Characters may not practice until level 3.  They are encouraged to train
instead.
