This file is intended to coders that are high enough to approve
areas and also for those who are writing areas so they know
what things must be in the approveable area. 

/world directory

This directory should contain only files that are approved by
one of the greater gods. Once file is placed under /world
directory it cannot be removed. Also there should be only files
that are world accessiable somehow or they must contain
set_no_explore() flag. Modifying filenames or removing files
in /world directory will corrupt explore databases and new players
can't get same explore count as olders and that is unfair.

As there should be only files that are ready they usually
are areas or something similar thus they need to contain
own directory. Also all areas should contain documentation
including maps and such thing and these documentations should
be placed in /world/doc directory containing only one file
name which is same as area's directory name. All other
things should be placed in /world/misc directory.

In all areas there should be 'path.h' file which is included to
all rooms and objects containing at least following #define's:

  #define ROOM_PATH
  #define ITEM_PATH
  #define MONSTER_PATH
  #define MISC_PATH

Using such files is neccessary for easy configuration example
when the area is moved from coder's home directory to public
/world directory which is needed to do when the area is ready.

Ordinary "path.h" file is like this:

-- cut here --

/*
 * PATH.H
 * 
 * Temple of the Twisted Prophecies
 *
 */

#ifndef PATH_H
#define PATH_H

#define AREA_NAME	"twisted_temple"
#define CODER_NAME      "namhas"

#define ROOM_PATH	"/world/" + AREA_NAME + "/rooms/"
#define ITEM_PATH	"/world/" + AREA_NAME + "/items/"
#define MONSTER_PATH	"/world/" + AREA_NAME + "/monsters/"
#define MISC_PATH	"/world/" + AREA_NAME + "/misc/"

query_author ()
{
  return CODER_NAME;
}

#endif /* PATH_H */

-- cut here --

Placing set_area() functions to room code is not neccessary
no longer because all areas in /world/ directory can get it's
name from the directory where it is. However using set_area()
function certain rooms can be set under different area name
example if area has many parts or something similar. It is
not suggested to make huge area under same name because it
is unrealistic that mortals shouts can be heard in the whole
area.

Ordinary room object in ROOM_PATH would look like this:

-- cut here --

inherit ROOM;

#include "../path.h"

create_room ()
{
  set_light (1);
  set_outdoors (1);

  set_short ("An example room");
  set_long (
    "You are standing in a funny example room which is "
  + "used as a example in /world/APPROVE text file. Remember "
  + "to not use '\\n' marks in long descriptions unless it is "
  + "last line because our line wrapping system breaks lines "
  + "in right places. If you want to disable that feature then "
  + "use set_no_wrap() function in room code and add '\\n' to end "
  + "of each line or however you want.\n");

  add_exit ("north", ROOM_PATH + "room2");
  add_exit ("down", ROOM_PATH + "room3");
  add_exit ("east", ROOM_PATH + "dragons_lair");

  add_object (MONSTER_PATH + "funny_monster");
}

-- cut here --

Please remember that formating code is essential part of area
quality. All area approvers, please give more levels or whatever
for area if the code is clean and well formated. It is more
nice to read and find bugs than from code that is poorly formated.

Directory structure of area should be like this:

/world/-+-area_name/-+-rooms/
        |            |-monsters/
        |            |-items/
        |            |-misc/
        |            |-path.h
        |
        |-doc/---area_name.doc

Of course those names like 'rooms', 'monsters' etc can be different
and there can be more directories than those 4. But there must
be entry for each new directory in path.h file. NEVER include full
path in add_exit() or similar function, ALWAYS use definations that
is used in path.h file. Otherwise converting area and placing it
under /world directory is extremely difficult and is not acceptable.
(Don't hesitate to create sub directories to the rooms directory and if you do
create a sub directory you should consider using different area name to the rooms
in those sub directories.)

Appropriate area_name.doc file should contain at least following
things:

  * Coder's name and e-mail address
  * Approver's name and e-mail address
  * Date of approval (real and game time)
  * Total number of rooms, monsters, items and like
  * Specification for each item
  * Specification for each monster
  * Full specification for quests in area
  * Full commented map of the area including all parts
  * Background story for the area, why the area exists and so on
  * All other things that is approriate to include in documentation


--
Send all comments, suggestions, flames and such things to
namhas@neutech.fi or directly to namhas.
