UNNOFICIAL Zen's EnvyMud patch Release 0.87j! (Ultra Envy2.2)
Wednesday, 10th December 1997

Zen             vasc@camoes.rnl.ist.utl.pt



=== Races

The central organizing table to races is race_table, which is an array of
type 'struct race_type' (defined in 'merc.h') and is defined in 'const.c'.
Humans have race 0, and races go through MAX_RACE-1. The order of
which each array member does not matter as all necessary work is done
by search functions.

The fields of race_table are:

    char *              name;

	This is the name of the race group.  The mud uses this field not
only as a marker for easy access to the information following, but
also for displays.

    int                 race_abilities;

	Represented in bit notation, this holds all the information
for the natural abilities each race has.  You may find these
individual bits in merc.h as RACE_*.

    int                 size;

	This size value represents the proportional size of this race
group.  0 is smallest.  Size is used to modify tohit and other
transparent modifiers.

    int                 str_mod;

	This is the modifier to the maximum natural strength this race
may attain.

    int                 int_mod;

	This is the modifier to the maximum natural intelligence this race
may attain.

    int                 wis_mod;

	This is the modifier to the maximum natural wisdom this race
may attain.

    int                 dex_mod;

	This is the modifier to the maximum natural dexterity this race
may attain.

    int                 con_mod;

	This is the modifier to the maximum natural constitution this race
may attain.

    char *              dmg_message;

	This is the hand weapon message.  Used for display and
aesthetic purposes.

    char *              hate;

	This string represents all the races this race group hates and
is aggressive toward.  The mud will determine racial hatred by
checking if the victim's race name appears in the hate string of the
aggressor.  If you wish to modify this field, just add a race name to
this field as it appears in the name field of the race.

    int                 parts;
	This is a bitvector representing the bodyparts of this race group.

    int                 resistant;
	This is a bitvector representing the resistances of this race group.

    int                 immune;
	This is a bitvector representing the immunities of this race group.

    int                 susceptible;
	This is a bitvector representing the susceptibilities of this race
group.

    int                 language;
	This field represents the language of this race group.
(TO BE IMPLEMENTED)



=== Adding a new race

This section enumerates the changes that need to be made to the base
level UltraEnvy code necessary for the addition of a new race.

MERC.H		- Increase MAX_RACE by as many races you add
------

CONST.C		- Add race definition (structure) to race_table.
-------		  Order does not matter

Obviously adding a new race to UltraEnvy is an easy task.  All is
required is good planning of what you wish this race to be and
entering the appropriate data.
