
  `_.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._'
                         Object Sending via MUDmail
                      Copyright 1996, by Daniel Koepke
  `_.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._.,-'~'-,._'

I. Introduction
===============

This small patch allows objects to be attached to and sent via MUDmail.  
Attaching objects adds 10% of the stamp price, plus the object's weight times
10.  If you don't want to attach an object to the mail, you don't have to.
NOTE: Do not mail containers, only the container itself will arrive.

You're already existing mail files will have to be deleted since
this changes the header block.


II. Standard (Keep-me-from-court) Disclaimer
============================================

Use this at your own risks.  There is (like pretty much all code) some
bugs.  That is to be expected.  I am giving you this, so I expect that,
in return, you will send me improvements you add, or report any bugs
you encounter.  My e-mail address is dkoepke@california.com.

You do not need to give me credit for this.  I ask, though, that you do
not take credit for it.  I appreciate any credit you give me.  Of course,
you have to follow the CircleMUD license... but that goes without saying
and you are *obviously* already doing that [pssst, read doc/license.doc
if you haven't, yet].

I believe this patch, because of it's size, to be entirely bug free.  But
if you find any bugs, don't hesistate to prove me wrong.


III. Installing
===============

Okay, now on to how to install this thing...  Move the obj_mail.diff 
file to the src/ directory.  Go into the src/ directory and type:

  % patch < obj_mail.diff

If you get any failures/rejects, look at the .rej files and manually
install from that (key: '+' is add, '-' is remove, '!' is change).  If
the entire thing fails, manually patch from the obj_mail.diff file 
(same key).


IV. For the Coders
==================

Here's some basics about how this patch works:
  VARIABLE: ch->desc->mail_vnum, sh_int/descriptor_data
  This variable holds the vnum of the object you are attaching to the
  mail.  It's neccessary because the mail header isn't devised until
  we have the body of the message which, because of the way the line
  editor is coded, is not received inside the mailing functions.

  FUNCTION: store_mail(to, from, vnum, text), mail.c
  The function to store mail.  I added the _vnum_ variable to accept
  the vnum of the attached object.

  FUNCTION: read_delete(recipient, &obj_vnum), mail.c
  This function reads a piece of mail for _recipient_ (id number) and
  returns a string containing the message about the object.  The second
  argument is a pointer to an integer, and is set to the vnum of the
  attached object (hence returning the vnum to the calling function).

  COMMAND: mail <to> [obj_name], mail.c
  Mails an object to the person by the name of <to>.  If the optional
  argument of <obj_name> is present and an object by that name is the
  mailing character's inventory, the object is attached to the mail for
  a small surcharge and sent to the target of the mail.  The target
  will always receive the attached object.


V. Other Patches By Me
======================

The below are availible at the CircleMUD anonymous ftp site (see below
for the address):

  Filename: new.do_who.diff.gz, /pub/CircleMUD/contrib/code
  Usage   : A replacement for do_who(), it splits apart immortals and
            mortals, gives immortals a "who title" ("Immortal" instead
            of "31 War"), keeps a count of highest players on per boot,
            and a little bit more.

  Filename: mount.diff.gz, /pub/CircleMUD/contrib/code
  Usage   : A small, basic mount system with a TAME skill, your mount
            taking the move point cost, and a little more.

  Filename: query_ansi.diff.gz, /pub/CircleMUD/contrib/code
  Usage   : A patch to query a logging in user for whether they want
            ANSI color support on/off before display of the title screen.
            Actually quite useful...

  Filename: new_prompt.diff.gz, /pub/CircleMUD/contrib/code
  Usage   : Enhanced prompt code that interprets a character's prompt.
            Beware: THIS WILL CHANGE YOUR PFILE!

  Filename: multi_hit.diff.gz, /pub/CircleMUD/contrib/code
  Usage   : Adds multiple attacks per round and the connected skills.


VI. Popular CircleMUD Sites
===========================

Anonymous ftp   : [ftp.circlemud.org]
Homepage        : [http://www.circlemud.org/]
Code snippets   : [http://cspo.queensu.ca/~fletcher/Circle/Snippet/]


Have fun and godspeed,


--
Daniel Koepke
dkoepke@california.com
Forgive me father, for I am sin.
