----------------------------------------------------------------------------
Q: How do I add a character to a town?

A: Characters are added to the objects section of a town's PLACE
   declaration. For example, say you have a character named Hawknoz and a town
   called Empire_City. Empire_City will have a PLACE declaration similar to
   this:

   PLACE Empire_City {

       type town;
       // etc...

       objects {
           // insert characters here
           // <tag> <x> <y> <alignment> <home-flag>
           ch_Hawknoz 15 25 (ALIGN_TOWN) 1;         
       }
   }

   The 'tag' is the tag used when the character was declared.

   The 'x' and 'y' fields are the starting coordinates of the character within
   the town (don't woryy - if the character has a schedule it will still follow
   it).

   'alignment' determines the character's attitude toward others.

   'home-flag' is obsolete but still required by the parser.

----------------------------------------------------------------------------
Q: How do I create a schedule for a character?

A: Use the SCHED declaration and assign a schedule in the character's CHAR
   declaration.

   Here's a sample schedule:

   SCHED sched_Hawknoz {
       0  0  25 60 1  1  SLEEPING;
       7  0  11 57 10 3  WORKING;
       12 0  55 52 1  1  EATING;
       13 0  11 57 10 3  WORKING;
       5  0  21 29 8  7  RELAXING;
       19 0  25 60 1  1  SLEEPING;
   }

   Each line of a schedule defines an appointment for a character. The format is:

   <time-hours> <time-minutes> <x> <y> <w> <h> <activity>

   'time-hours' and 'time-minutes' specify the time to start the
   appointment. Character's remain at an appointment until its time for the
   next one, at which point they will begin commuting to their enxt
   appointment. (Debugginh note: although characters pathfind and can commute
   through closed doors, they aren't smart enough to solve other types of
   obstacle problems. For example, if they have to cross a drawbridge which
   requires using a lever to lower it the characters will probably "freeze"
   because they can't find a path to the next appointment. Once the time rolls
   around for an appointment which they can pathfind to they will unfreeze,
   however.)
 
   <x>, <y>, <w>, and <h> specify a rectangle where the characters are free to
   wander during their appointment. If you don't want them to wander use 1 for
   both <w> and <h>.

   <activity> specifies an activity for the character to engage in. This is a
   number ID, with the first four numbers reserved:

       WORKING   0
       SLEEPING  1
       COMMUTING 2
       EATING    3

   Other numbers are free to be used by game developers. The purpose of the
   activity is to allow a character's conversation script to provide different
   responses based on what the character is doing. For example, a conversation
   might have a response like this:

       RESP Job { 
           CHECK_PARM ACTIVITY = EATING {
               SAY "[Mouth full] Mrmph rormph... ";
           }{
               SAY "Not much.";
           }

   This response says that if the player asks the character about his job, the
   character will respond with "[Mouth full] Mrmph rormph..." if he is eating
   or "Not much." otherwise.

----------------------------------------------------------------------------
Q: How do I add a mechanism to a place?
A: First declare the mechanism and then put it in the objects block of the
   place. For example, to add a drawbridge:

   MECH drawbridge {
       // mech definition goes here
   }

   PLACE castle {
       // other fields
       objects {
           drawbridge west_bridge 30 5 "down";
       }
   }

   The syntax for the line in the objects block is:

   <mech type name> <instance name> <x> <y> <initial state name>