Title: More about crimes
Name: Graah
Date: Oct 14

Coders shouldn't normally use criminal level and count directly, but
call crime daemon for effects. Crime daemon is defined in criminal.h
as CRIME_D, and this defination MUST be used when calling its functions.
Here are some of them:
 
        CRIME_D->crime(ob, what)

	Object ob (a player) has made a crime [what], which should be
	CR_THEFT, CR_ASSAULT or whatever. Crime daemon automatically
	checks for witnesses, and makes it possible for a player
	witness later to accuse the criminal.

	Note that this assumes that the crime is always noticed by any
	witness in the room. You must check yourself if the crime goes
	unnoticed.

	CRIME_D->accuse(object who, string whom, int what)

	Object who (a player) accuses [whom] (name of criminal) of
	crime [what] (CR_THEFT, etc.). Returns 1 if successful.
	Accusations can be done at Court Hall and Guard HQ, perhaps
	even at the presence of any cityguard?

	CRIME_D->crime_name(int c)

	Returns name of crime c (CR_THEFT, CR_ASSAULT etc.), for example
	"theft", "burglary", "excessive silliness" (unknown crime :-)

	CRIME_D->add_crime(object ob, int c)

	Adds crime c (CR_THEFT, CR_ASSAULT, etc.) to object ob (a player)
	Crimes are not cumulative. If a player is a murderer, adding
	theft doesn't have any effect.

	CRIME_D->check_crimes(object ob)

	This is usually called at login, it tests if the player has
	any proved accusations upon him/her and adds crime if it is
	so. This could be called by some goody-goody guilds before a
	player can join, to make sure he isn't a criminal.

Crime daemon has been tested, but not very throughly. Mail me if you
notice any bugs.
