daleken/
daleken/data/notes/
daleken/data/player/
daleken/data/system/poses/
daleken/doc/Homepage/images/
daleken/log/
Daleken 1.12 Release
====================

=== The src directory

This file gives a brief description of the files in the src directory.

=== The source files, as per Envy.

act_comm.c	- Contains procedures for pc to pc or pc to mud communication
act_info.c	- Contains procedures for information reports for the pc
act_move.c	- Contains procedures for pc/mobile movement around the mud
act_obj.c	- Contains procedures for object manipulation
act_wiz.c	- Contains procedures for immortal commands
comm.c		- Contains procedures for game TCP/IP communications
const.c		- Contains tables used within the game
db.c		- Contains procedures for data file loading
fight.c		- Contains procedures for pc/mob combat
handler.c	- Contains procedures for data element handling
interp.c	- Contains procedures and tables for game user commands
save.c		- Contains procedures for player/mob file read and write
ssm.c		- Contains procedures for string management
special.c	- Contains procedures for mobile special abilities
update.c	- Contains procedures for game operation


Additional files and changes in Daleken:

act_fight.c:
	Functions for fighting skills like backstab and kick.

magic_misc.c magic_def.c magic_off.c:
	All magic code and spells:
	magic_misc.c - miscellaneous spells and core functionality
	magic_def.c - defensive spells
	magic_off.c - offensive spells

mob_commands.c mud_prog.c:
	These files are the MOB/OBJ/ROOM program files:
	mob_commands.c - commands used by mobiles in the functions
	mud_prog.c - mob program parsing and triggers + lots extra

note.c:
	Contains all note writing and notice board functions.

olc.h olc.c olc_act.c olc_save.c bit.c mem.c string.c:
	These files are the OLC files and contain all the OLC code as
	well as a whole lot of code Daleken has come to rely on such as
	the lookup tables needed for the area files.
	olc.h - header and OLC macros
	olc.c - OLC interface functions
	olc_act.c - OLC functions
	olc_misc.c - extra OLC functions
	olc_save.c - for saving areas
	bit.c - lookup tables and functions for these
	mem.c - extra memory management plus some from db.c
	string.c - string editor and manipulation

religion.c:
	All religion and clan related functions, including the OLC functions.

string.c:
	Contains a string editor, also contains the colour parsing
	code and includes functions which manipulate coloured strings.

event.c:
	Contains core code for the Daleken event system, allowing management
	and creation of events.

callback.c:
	Contains the functions that are called by an event after it's time is
	up.  This includes a large proportion of the old update.c code.

db_io.c:
	The Daleken 1.12 database loading and saving code.

regexp.c:
	Regular expression code, note that this file is not an actual part of
	Daleken, it is included as a replacement for the non-standard regex
	libraries - see the comment at the head of the file.

crypt.c:
	Encryption for passwords.  This file is also not a part of the core
	Daleken release and is included so systems that lack encryption
	libraries can have properly protected passwords - see the comment at
	the top of the file.

The header files have also been split in an attempt to make some sense of the
mess as well as to reduce the bloated size.  Effectively the old merc.h still
exists but it has been broken down into logical (questionable, --Sym) 
compartments.
	mud.h	- everything, an easy to include file with standard headers
		  and all the other headers included.
	const.h	- #defines for everything, naming bitvectors etc...
	function.h - global functions, do_fun's and spell functions.
	global.h - global data declarations.
	olc.h	- olc header, as before.
	types.h	- standard structs and data types.
	event.h - definitions for the event system.
	regexp.h - regular expression header (see regexp.c above).
	db.h - data structures and so on for database loading/saving.

-- Other Files

The file scriptsave.c isn't actually used by the server.  Read the comment in
this file to determine  if you need it at all.  This file  is more a proof of
the concept that the OLC format could be used to create an entire area.


=== The READMEs

README		- This file.
README.SSM	- Is the README info on Fusion's SSM 2.2.1.
README.BUFFER	- Is a README for Erwin A's expanding buffers.


=== The Makefiles

Makefile	- Is a standard makefile for most machines.
GNUmakefile	- makefile for GNU make, tidier and neater.

This assumes the use of gcc and GNU make, you may have to make minor
adjustments for systems other than Linux 2.xx.xx.

To compile the executable file 'daleken' (which resides in the Daleken/bin/
directory), type 'make -k >&! make.out &'.

If you have problems with crypt, add to the crypt.c file to your makefile.

Envy suggests you modify the Makefile to compile with DEBUG = -ggdb if
you have gdb on your system.  This turns on specific debugging for use
with gdb.

We do not guarantee that this Makefile will work for your system as each
system administrator will modify to his/her liking.  The Makefile is only to
be used as a close guideline for your system.  There are also examples of
Makefiles in the Makefiles/ directory, some of these may suit your system.
These however are almost certainly out of date, you will have to compare the
list of object files in these and match them to the more up to date Makefile
and GNUmakefile.

Envy extend a hearty thanks to all who have tested Envy source on these
ports:

cbjones1@unity.ncsu.edu
blitter@planetx.lanz.com
msmith@quix.robins.af.mil
ajohnson@spock2.tacom.army.mil
rks@ipdinc.com
stoked@iastate.edu
hub@hub.eden.com
erwin@pip.dknet.dk


-- Debugging

Get to know the debugger setup in your computer system.  The most well known
are dbx, adb, and gdb.  My favorite is gdb.  All can be accessed by issuing
this command at your computer prompt, 'gdb daleken 1000.core'.  The output is
the line of code where the game has crashed.  To gain more information, you
must obtain a stack trace (bt).  (See the system manual for information on
your resident debugger)



=== The executable file

The executable file is created after typing 'make'.

After making, the executable file is named 'daleken.new'.  You may then boot
the game by executing the startup script 'startup' or 'startupSH' by typing
'./startup &'.  I prefer to use './start' which runs a more advanced logging
system.  You can find these files in the bin/ directory with the daleken
binary.

To enter the game, type 'telnet localhost 12345' from your mud account.  I
would suggest getting TinyFugue (tf) which is a far better client.  A copy of
TinyFugue that supports the Mud Client Compression Protocol should be
available at the same place that you found Daleken.


=== What is new, what is old

This source is based on the Envy 2.2 release source code.  Some internal
workings have changed and some player visible improvements have been made.
We've been developing the code for the past 14 months with extensive playing.
Unfortunately, there might be bugs we have missed.  If you encounter errors
or bugs, first check your code additions then forward questions to the
mailing list at merc-l@webnexus.com, however noone will know what you are
talking about when you say Daleken, so try and make your post intelligent,
saying what the errors were (include a log) and what system you were using
etc...

All in all, Daleken will "feel" like any other MERC mud out there.
Daleken is designed to go beyond the MERC releases and make into reality
many improvements that went undone in the Envy/MERC releases, it incorporates
ideas from across the internet and ideas that have been coded for other MUDs.

Daleken/Envy does not support traditional C compilers.

Daleken has not been tested to run on any other than Linux systems, while
this may be restrictive we believe that it may work on the systems it was
ported to in the Envy 2.2 release but minor changes may have to be made.
Please note that changes have been made so that macintosh means Power Mac now
and with modifications to some of the methods of initialising tables the code
should work for a Power Mac (crosses fingers).