


%^CYAN%^%^BOLD%^NOTICE%^RESET%^ :: I have mentioned arrays and mappings in this tutorials mearly
          to point out samples of these advanced data-types in use.
          You do not have to concern yourself with having to handle
          them unless you truely wish to learn and master these
          data-types. If you do, then contact the current
          Archwizard in charge of training for instruction on arrays
          and mappings.

==========================================================================
The basic inheritable file is the OBJECT file. All of the
other inheritables; MONSTER, WEAPON, ROOM, ARMOUR, OIL, STONE,
OINTMENT, etc. ; all use these same basic pattern I've outlined
below. The functions outlined here are contained in each of the
inheritables that tell you to refer back to this help file.

The following is the "bare frame" of almost all of the files
a builder will be touching, least until they request to learn
how to code their own custom functions;

%^GREEN%^%^BOLD%^#include <std.h>
%^GREEN%^%^BOLD%^#include <your_header.h>

%^GREEN%^%^BOLD%^inherit OBJECT;

%^GREEN%^%^BOLD%^void create() {
        %^GREEN%^%^BOLD%^set_name(%^BLACK%^%^BOLD%^<object's name string>%^GREEN%^%^BOLD%^);
        %^GREEN%^%^BOLD%^set_id( ({%^BLACK%^%^BOLD%^<object's id strings>%^GREEN%^%^BOLD%^}) );
        %^GREEN%^%^BOLD%^set_short(%^BLACK%^%^BOLD%^<object's short description string>%^GREEN%^%^BOLD%^);
        %^GREEN%^%^BOLD%^set_long(%^BLACK%^%^BOLD%^<object's long description string>%^GREEN%^%^BOLD%^);
        %^GREEN%^%^BOLD%^set_weight(%^BLACK%^%^BOLD%^<integer for the object's mass>%^GREEN%^%^BOLD%^);
        %^GREEN%^%^BOLD%^set_value(%^BLACK%^%^BOLD%^<value for the object in gold>%^GREEN%^%^BOLD%^);

        %^GREEN%^%^BOLD%^set_properties( ([ %^BLACK%^%^BOLD%^<object's properties sets>%^GREEN%^%^BOLD%^]) );
        %^GREEN%^%^BOLD%^set("read",%^BLACK%^%^BOLD%^<object's readable string>%^GREEN%^%^BOLD%^);

%^GREEN%^%^BOLD%^}


The first #inherit is the basic line that MUST be in your files,
( It lists all of the inheritable files :P ). The second #inherit
is your custom inheritable file. Please see %^BLACK%^%^BOLD%^help headers%^RESET%^ for more
information on construction a custom header.

The next line and the last line are the create() function of your
object. These 2 lines MUST be in any object that you wish to create
and have "physically" manifest itself in Primal Darkness.
"%^GREEN%^%^BOLD%^void create() {%^RESET%^" initiates the creation function and the "%^GREEN%^%^BOLD%^}%^RESET%^" 
terminates the %^BLACK%^%^BOLD%^create()%^RESET%^ function.

The %^GREEN%^%^BOLD%^set_name()%^RESET%^, %^GREEN%^%^BOLD%^set_short()%^RESET%^ and %^GREEN%^%^BOLD%^set_long()%^RESET%^ functions all take
in strings, remember to enclose them in "s to make them strings, 
for the afore mentioned reasons.

The %^GREEN%^%^BOLD%^set_weight()%^RESET%^ and %^GREEN%^%^BOLD%^set_value()%^RESET%^ functions both take in integers.
Integers are entered WITHOUT the "s around them. Adding "s will make
the integer into a string.

The %^GREEN%^%^BOLD%^set_id()%^RESET%^ function takes in a data type called an array, see the
tutorials about arrays and mappings if your interesed in learning about
them. If you don't wish to tackle arrays, it is OK. Just realize when
you see a function using the format like %^GREEN%^%^BOLD%^set_id( ({ }) );%^RESET%^ that it is
seeking or can take a series of data. In other words you can enter
more then one string into set_id by mearly seperating them with ,s .

%^RED%^%^BOLD%^EXAMPLE ::   set_id( ({ "axe", "silver axe", "gnome axe" }) );

The set_id() function is important because the strings you give it is how
the mud will refer to you object for the commands like look or wear.

The %^GREEN%^%^BOLD%^set_properties()%^RESET%^ function also seeks a unique type of input.
The data type here is called a mapping. As with arrays, you do NOT have to
know mappings to build but may refer to the tutorials about mappings
for more information. The only fact you need to know for building
without custom coding is when you see a function using the format
that %^GREEN%^%^BOLD%^set_properties( ([ ]) );%^RESET%^ uses it is requesting a mapping.
The function takes in data_sets and stores them.

%^RED%^%^BOLD%^EXAMPLE for a ROOM's properties ::

%^GREEN%^%^BOLD%^set_properties( ([ "light":3 , "night light":3 , "water":1 ]) );

This example sets the lighting conditions for the ROOM and turns on
the flag that tells the system it is a "water" room. More information
about properties is available in %^BLACK%^%^BOLD%^help properties%^RESET%^ and %^BLACK%^%^BOLD%^help lighting%^RESET%^

========================================================================

Signed,

Ironman , The absent-minded Profesor

