*******************************************************************************
****************************** Intermud v1.00 *********************************
*******************************************************************************


INTRODUCTION


Well, it's been about 2 years now that Intermud has been in a BETA type form
and now I think the major networking mechanics are pretty solid.  In the past
I have never included decent documentation or an easy way to get Intermud
installed on a new mud.  Hopefully with this release and this new README more
people will be able to install Intermud and get it up and running.  It's 
actually very simple.

There are three ways I guess that you can get Intermud up and running.  The
first, and fastest would be to FTP circle30bpl11+imud.tar.gz, unpack it and
type make all, presto, it's all but done.  However, for the most part that's
extreamly unlikely.  Most will want to use the intermud_circle30bpl11.patch
file which will patch in everything for you.  And last but not least there
will be some of you that have so heavily modified Circle 3.0 that the patch
file won't work, or you are trying to port Intermud to a different mud 
platform.  Either way, I have documented some instructions on all three
senerios below.


HOW IT WORKS


There are three parts to the Intermud enviornment.  The first is nothing
that you have to run or worry about, I call it the BOOTMASTER.  The
BOOTMASTER runs at styx.ph.msstate.edu and all of the muds connected to
the Intermud network connect to it to get the MUDLIST.  The second part
is the intermud_client.c source which compiles into ../bin/intermud. 
This is your client version of the software.  Your mud talks to your
local copy of the client which in turns send messages etc to the rest
of the muds connected to the Intermud network.  Your copy of intermud
is a seperate binary executable that runs as it's own process on your
machine.  The third part is act.intermud.c which is compiled into
your mud and acts as the interface to the Intermud process.


HOW TO INSTALL IT


If you have FTP'd circle30bpl11+imud.tar.gz then start here.

1) Uncompress and Untar circle30bpl11+imud.tar.gz into a place where you
   want to run it from.
   
   gzip -dc circle30bpl11+imud.tar.gz | tar xvf -
   
   This will create a directory called circle30bpl11.  You can then
   cd into this directory and type ./configure (part of the regular
   CircleMUD install process) 
   
2) Now, cd into the src/ directory and edit the intermud.h file, you will
   have to change what you need, all of the settings are explained.
   
3) Edit the intermud_script file and make sure that the port specified
   matches the INTERMUD_PORT you dave defined in the intermud.h file.


4) Type :-

   make all
   
   This will compile CircleMUD for you and Intermud as well.  You can now
   move on to the HOW TO GET IT TO RUN section.
   

If you have FTP'd intermud_circle30bpl11_patch.tar.gz and want to patch 
Intermud into your copy of CircleMUD, start here.

1) Move intermud_circle30bpl11_patch.tar.gz into the top level directory 
   of your mud. IE /usr/local/src/circle30bpl11
   
2) Uncompress and Untar intermud_circle30bpl11.tar.gz.

   gzip -dc intermud_circle30bpl11.tar.gz | tar xvf -
   
   This will create these files :-
   
   README.intermud
   intermud_circle30bpl11.patch
   intermud_script
   
3) Now you will patch Intermud into your source tree.  Type in :-

   patch -p0<intermud_circle30bpl11.patch
   
   Watch for any errors, but there shouldn't really be any.
   
4) Now, cd into the src/ directory and edit the intermud.h file, you will
   have to change what you need, all of the settings are explained.
   
5) Edit the intermud_script file and make sure that the port specified
   matches the INTERMUD_PORT you dave defined in the intermud.h file.


6) Type :-

   make all
   
   This will compile CircleMUD for you and Intermud as well.  You can now 
   move on to the HOW TO GET IT TO RUN section.


If you have FTP'd intermud_v1.0.tar.gz then you must figure that you have
modified stock CircleMUD to the point of non-recognition.  Which is fine,
because if you've done this then you probably know what you are doing and
you should be able to follow these instructions and wedge Intermud into your
mud.

1) Uncompress and Untar intermud-v1.0.tar.gz in your src/ directory and 
   move the intermud_script file up one directory to your top level mud
   directory.

2) Follow the instructions in intermud.doc to get the important intermud
   hooks into your comm.c file.
   
3) Add act.intermud.c to your Makefile.  It must be compiled in with the
   rest of your mud's source.
   
4) Add the following commands to your interpreter.c :-

   interwho
   interwiz
   intertell
   interpage
   intermud
   mudinfo
   
   You'll have to add it in two places, First the ACMD(do_interwho) etc, 
   and you'll have to add the commands to the cmd_info struct as well.
   
5) Edit the intermud.h file, you will have to change what you need, all 
   of the settings are explained.
   
6) Compile the intermud_client.c file :-

   gcc -o ../bin/intermud intermud_client.c
   
   That should work perfectly under Linux.  If you are using another O/S
   you will most probably have to add some libraries to the gcc call.  For
   SunOS try adding -lnsl, for others try -lsocket.  I would be interested
   in hearing from anyone who's got the correct libs for their OS so that
   I can add it to this document.

7) Edit the intermud_script file and make sure that the port specified
   matches the INTERMUD_PORT you dave defined in the intermud.h file.

8) You can now move on to the HOW TO RUN IT section.


HOW TO RUN IT


Now that you have edited the intermud.h file, compiled everything, and
you have edited the intermud_script file to ensure that the PORT matches
the INTERMUD_PORT in your intermud.h file you can simply type :-

./intermud_script &

From your top level mud directory.  Now you can start your mud as you
normaly would.

Commands you can use while in the mud :-

 interwiz : Will send a message out to the immortals on the other muds
            connected.  
	    
 interwho : Will get a who listing from another mud.
 
 intertell: Will send a tell to player on another mud.
 
 interpage: Will page player on another mud.
 
 mudlist  : Will show all of the muds connected to the network
 
 mudinfo  : Will retrieve some info from a mud.
 
 intermud : Controls the intermud client program.  You can disconnect,
            connect, purge the mudlist, reget the mudlist, display some
	    statistics etc etc.
	    
	
THE FUTURE

Sometime in the future I plan to add additional functionality like intermail,
interboard messages and anything else that I or you might think of.  Stay
tuned.


IF YOU HAVE PROBLEMS


If you have any problems getting it up and running, you can reach me at :-

caustin@pinc.com

or telnet to :-

styx.ph.msstate.edu PORT 2020 

And there is also an intermud mailing list, at :-

intermud@dmv.com

Hope you enjoy,
Stryker@Tempus


REVISION HISTORY


0.00 to 0.51 - Never released to the public for beta testing.  Progress was
               what you see in intermud today.
	       

0.52 - Added new command mudinfo.
     - Made protocol changes to allow for additional services.
     

0.53 - Fixed bug in mudinfo command that would crash a mud.
     - Reduced services from 32 bytes to an 8 byte bitmap.
     - You will now see your mud in a mudlist and intermud stat command.

0.54 - Fixed the nasty server bug that prevented every mud, after the first
       mud, not to connect to the server.
     - Fixed what seems to be a Linux pre-ELF GCC compile bug in
       decode_services()
     - Converted interlog() function from VARARGS to STDARG.
     - Special thanks to Fireball@Tempus for a new home for the intermud
       server.
0.55 - Revisions lost in a disk crash
0.56 - Did huge cleanup on the code, moved a lot of things into seperate
       functions
     - Drasticly cleaned up the log messages
1.00 - More code clean up, some minor bug fixes
     - NEW README.intermud file
     - Created complete CircleMUD distribution with intermud built in.
     - Created a circle30bpl11 patch

