Version 2.0.0
-------------

Initial upgrade release.


2.1.0
-----

1.
Added macros for the command numbers.

2.
Added macros for printing fight levels. This does not affect the damage
inflicted, simply what is seen on screen during the fight.

3.
Added "clearline" command to clear hung logins. Logins will be timed out
anyway but this is if they need to be cleared in a hurry.

4.
Added room option to purge command.

5.
Altered the syntax of the halt, restart and detail commands.

6.
Master objects are no longer destructed then recreated during a reset, they
are kept. This prevents the id numbers of master objects going up after a
reset which as well as making the output of the masters command look less
messy it allows wizes to remember the master id and always be able to use it,
not have to look up the new one after a reset.

7.
move_object() now writes a message to the system log if a link to a null or
nonexistent room is found.

8.
Fixed bug in mud_shutdown(). Was freeing object structures then referencing
them again afterwards using a for loop - changed to a while loop. Only 
noticed this bug using Linux when mud was mysteriously still on the process
table when it had shut down - in fact it had crashed and hung while shutting
down. Other unixes didnt seem concerned by it.

9.
Added global reset_done variable. This allows rooms etc to spot if a reset 
has been done without having to check the reset_time which is fiddly. It
allows them to do their own resetting. 

10.
Server now traps segmentation faults and bus errors sensibly rather than
just ignoring them.

11.
Made other minor alterations based on warnings from lint.



2.2.0
-----

1. 
Added another call to objects (com = 5). This is called before they are
destructed and is intended to allow them to free any malloc'ed memory that
would otherwise be orphaned. Of course its open to abuse and they could do
other things too.

2. 
obj_given element of object structure not being set (or cleared) when a
user or npc was given something.

3. 
Changed a write_room() call to write_room_except() in move_object. See code
comments for more info.

4.
Can now use a dot '.' as shorthand for the say command and exclamation mark
'!' as shorthand for shout.

5.
whoami command now gives wizards & gods their object id too.

6.
Improved detail command output.

7.
Added auto reset facility in main2.c and changed code in mud_reset() in main.c
to accomodate it.

8.
Made macro that selects whether you wish the size of a container to limit the
size of an object that can be put it. This is to allow magic bags that are 
small but can contain huge things. Macro is SIZE_LIMITED.

9.
Other minor changes.


Version numbers 2.3 & 2.4 were skipped because of the large number of changes,
some causing incompatibilities, between 2.2 and the next version , 2.5.


2.5.0
-----

1.
The mud now opens a status/info port which will allow the mud admins (and 
anyone else if the port number is public knowledge) to find out mud statistics
without having to log on at all.

2.
Added "viewlog" command.

3.
Did some major rearrangement of the startup code in main(). The socket and
signal init code is now in seperate functions.

4.
exits_contents() function now prints nothing if there are no obvious exits.
previously it was just printing "Obvious exits:" then a blank.

5.
Fixed a potential bug in move_object(). The function now returns -1 if
direction parameter is out of scope. Previously it just used it blindly.

6.
Items cloned by master objects as they are constructed are now destroyed
during the make_start_objects() call since they were a waste of memory as 
they never got used.

7.
Added write_sock() function.

8.
object_have(), npc_wield() and npc_wear() now return type OBJECT , either 
a pointer to an object they've cloned or NULL. Previously they returned 
integer 0 or 1 depending on success or failure.

9.
Removed SIZE_LIMITED macro and warning about size_limit > size. On further 
reflection I felt its introduction was based on flawed logic. A magic bag can 
always have its size_limit flag set to a huge number whilst its size stays 
small.

10.
Added STREN_MUL macro. Basically this * the objects strength gives the max 
weight it can carry. Formally max weight = object strength but this was a bit 
limiting.

11.
Added auto_clone feature and function plus accompanying listrecl command.

12.
Level descriptions are now seperate for each individual class

13.
Added killed_by element to regen_list structure so listreg command can show
which object/user killed the object (if any).

14.
Event structure for event functions in object structure is now an array.

15.
Improved system command output.

16.
Added prompt command which changes the look of the prompt. This adds another
line to the user data file which will cause problems with stored skills
when migrating from an older type data file.

17.
Added suicide & charecho commands. The charecho command adds a new field to
the same new line in the data file as the prompt command.

18.
The race and class arrays have become structures that not only contain the
names but the stats which are given to the new user when he first connects.
The class stats for strength , weapon skill and dodge speed are added to 
the same for his race to give unique stats for each race-class combination.

19.
The hit and attack commands are now aliases for kill as opposed to being
commands in their own right which called the same function. This saves space
in the command array. A new alias 'k' has also been added for kill to make 
attacks quick. Also made "take" an alias for "get" instead of being a 
seperate command.

20.
Command number macros have been changed to an enumerated type called
com_enum.

21.
Changed boot command to bootoff 'cos boot had other connotations.

22.
Added a config file within which everything is optional except the 2 port
numbers which MUST be in it. All other variables have a hardwired default
setting in init_globals(). The following ex-macros are now variables which
can be optionaly defined in the config file:
	DECAY_AFTER, AUTOSAVE_FREQ, TIME_OUT, HEARTBEAT, PASSWORD_ECHO,
	DOS_NEWLINE, IGNORE_SIGTERM, MAX_USERS, GAME_PORT, INFO_PORT, START_ROOM

CHAR_MODE_ECHO has gone altogether and is now a user definable option.

23.
Changed lockout_level to minlogin_level as this was a more sensible name
and changed the command lockout to minlogin aswell.

24.
There is now an option to have users start in the same room as they were in
when they last logged off. This is set by the start_ilr option in mudconfig.

25.
Added autofighting on re-encoutering last adversary code for users. Basically
this means that if they walk into a room where the adversary is they will
automatically start to fight it unless they set autofighting to off. The time
out on this is controlled by a config definable variable.

26.
Other minor mods.


2.5.1
-----

1. Fixed bug that place user in a room before he'd completed his login
   if start_irl was set.


2.5.2
-----

1. move_object() now displays "Ghost of X goes .." when a ghost moves instead
   of just "X goes ...". Same for entering a room. Also for object_say() and 
   emote()etc.

2. Ghosts can now use the "help" and "emote" commands.


2.5.3
-----

1. Kill_object function can now take NULL argument for attacker.

2. Bug fixes.


2.5.4
-----

1. Worn_wield now being zeroed in object_inven_add();


2.6.0
-----

1. The mud now has a wizport allowing wizards and above to log in on a port
   that is not affected by the max_users variable. A wiz_port option has been
   added to the config file.

2. Another new option added to config file is crash_recovery. See config_file
   doc for further information.

3. Objects now have will_create_corpse element. It set to 1 (default) then when
   they are killed a corpse will be created else their inventory will be dropped
   on the ground.

4. Bug fixed which prevented money being aquired from dead npcs/users as it
   wasn't being included in the corpse object.

5. Can enter "who" and "version" at login prompt.

6. Can now ban users as well as sites. The bansite and unbansite commands
   have come ban and unban with sub options for sites and users.


2.6.1
-----

1. Bug fixes to do with items not being dropped when a player is killed.


2.6.2
-----

1. Added max_stam field to object structure which allows npcs and users to have
   a reduced stamina limit which is usefull in many scenarios which I'm sure 
   you can imagine :)

2. Gods (level 22 players) can now clone or purge objects even if the object 
   flags disallow this *unless* the object is a user object.


2.6.3
-----

1. Changed FOLLOW enum to FOLLOWCOM as former is already used on recent
   versions of Solaris for something else and hence Ogham would not compile 
   under it.

2. Users can no longer auto follow (using the follow command) anything they're 
   fighting since allowing this was unfair as their opponent could never get 
   away from them if they tried to flee.

3. Whereis command now prints out all instances of a given object rather
   than just the first one it comes across in the object list and can do
   exact or non exact matches.

4. Count command can also now do exact or non exact matches.

5. Got rid of externs.h & defs.h files as globals.h now contains everything.

6. this_room and this_region global values now preserved in a number of
   functions which can now be called from within a room function without
   messing these vars up. eg: look().

7. Fixed problems with detail, purge, halt and restart commands not 
   recognizing objects in the current room.

8. Added corpse_keep_inven object structure element. See objects doc file
   for more info.

9. Fixed bug with drop command that allowed you to drop money into a closed
   container.

10. Added com_stage & events_stage crash debug vars.

11. Other minor bug fixes & code tidying.

