This is a list of standard v1 RHP codes, for all current or planned
programs as of this release (11-10-97).

The RHP language uses codes that have a @ on both sides.
Some codes do not work with some programs, a key follows:

(X,X.XX) indicates what program and versions it does not work with.  No
version means it does not work at all.
 0: RHP v1 definition, not in any current programs
 1: The L.O.R.D. Cavern v1.3+
 2: The Outlands Tavern v1.3+
---------------------------------------------------------------------------
Color codes!

`01: Blue
`02: Green
`03: Cyan
`04: Magenta
`05: Violet
`06: Brown
`07: Lt. Grey
`08: Drk. Grey
`09: Lt. Blue
`10: Lt. Green
`11: Lt. Cyan
`12: Lt. Magenta
`13: Lt. Violet
`14: Lt. Brown (Yellow)
`15: White
`16: Black

add a `FL after to have the text flash (or stop flashing)
---------------------------------------------------------------------------
This first set is just normal commands.
@PROGRAM@ xxxxxxxxxxx  What program its for.
@VERSION@ xxxx         Version of program the script is compatible with.
@;@                       Comment, everyting on a line with this at the
                          front will be ignored (works in recording)
@CLEAR@                   Clear the screen or window
@MORE@                    Pause for keypress
@DELAY@ xxx               Small delay in milliseconds (250 default).
@END@                     Stop script and pause
@EXIT@                    Stop sctipt, pause, and exit program.
@RUNRHP@ xxxxxxxx.xxx     Quit current RHP and run xxxxxxxx.xxx
---------------------------------------------------------------------------
To write to another file, use these (only one file at a time):
@FILE@ xxxxxxxx.xxx  Start appending to file xxxxxxxx.xxx
@FILEEND@            Stop writing to file
---------------------------------------------------------------------------
New!  RHP v1 definition codes!  Not in LORD programs (yet)

The @EMBEDDED@ command:
  Lets you put other script types into the RHP system.  It is a code block,
  ending with @EMBEDDED@ END.  Takes a parameter, LANGUAGE.  LANGUAGE can
  be:

  HTML
  JavaScript
  etc.

  but must be supported by the reader (this is why the @;@@PROGRAM@ is so
  important.)  Example:

@EMBEDDED@ LANGUAGE IS HTML
<I>Hello there!</I>
@EMBEDDED@ END

  Would display "Hello there!" on a line in italics.

Windows commands:
The @DIALOG@ command:
  Displays a dialog box with the text following, until @DIALOG@ END is
  reached.  Has an OK and CANCEL buttons, CANCEL will stop the script.
  Takes a parameter, TYPE.  If TYPE is missing, its just a normal box.
  TYPE can be:

  EXCLAMATION
  WARNING
  QUESTION

  Example:

@DIALOG@ TYPE IS WARNING
Warning!  An error has occured!
@DIALOG@ END

  Would display a warning style box with "Warning!  An error has occured!".

Variables:
Variables are single words surrounded by @#@ and can be refered to in
strings.

@DECLARE@ @#@xxxx@#@ IS TYPE   to declare a variable.  Types are
  BYTE
  INTEGER
  LONGINTEGER
  STRING
  CHARACTER
  REAL

Ex: @DECLARE@ @#@happy@#@ IS STRING

@SET@ @#@xxxx@#@=xxxx  to assign a variable a value.
Ex: @SET@ @#@happy@#@=Shiny People

Example: To refer to a variable in a string.
`02Happy @#@happy@#@.

Would display "Happy Shiny People" in green.


Functions:
To assign a function to a RHP file:

@FUNCTION@ NAME=RHPFILE.RHP

Ex: @FUNCTION@ README=README.RHP
  adds command @README@.  When @README@ is called, RHPFILE.RHP is called.

For the function file, it must have:
@DECLARE@ FUNCTION, PASS-ON=NUMBER

NUMBER is the number of parameters used.  Parameters are refered to @#@PARAMETER1@#@ etc.
@#@RETURN@#@ is used for any return variables needed.
---------------------------------------------------------------------------
The following two sets can be used in mail and news recordings.

The next set is for designating setions to go to.
@#xxxxxxxx         Section designation, no maximun length.
@GOTO@ @#xxxxxxxx  Go to section xxxxxxxx after this command.
@FIND@ @#xxxxxxxx  Go to section xxxxxxxx anywhere in script.
---------------------------------------------------------------------------
The one in this section is for writing lengths of spaces.
@SPACE@ x  Write x spaces to screen/file
---------------------------------------------------------------------------
This new set is for testing existing information and can be used in main
or news recording.
Example: @IF@ FEMALE @GOTO@ @#Help (if player is female, goto section
                                    @#Help)
Example: @IF@ EXPERIENCE>0 @GOTO@ @#Help (if experience is greater than 0,
                                          goto section @#Help)
Example @IF@ FIGHTER `9Good job! (if player is a Death Knight, write
                                  `9Good job! to file/screen)
@IF@ condition command  Test condition, if true do command.  Command can
                        be any RHP @ command or one line text.
 x<y        : returns if number x is less than a number y
 x>y        : returns if number x is greater than a number y
 x<>y       : returns if x is not equal to y
 x=y        : returns if x is equal to y
Any number can be used as x or y or you can use variables.
---------------------------------------------------------------------------
The following set is for prompting for input.  The single character
section is used to act on input.  The program runner acts on the first
matching section found, so don't use the same selections nested.
Example: @PROMPT@ CD (prompts for C and D selections, must be an @##C and
                      @##D sections later.)
@YESNO@        Prompt for Y/n, Y and N sections
@PROMPT@ xx..  Prompt for selections xx.., selections must be capitalized
               The first selection will be the default one
@RANDOM@ x     Random number between 1 and x, each number a section
@##x           Single character section, can be called with @GOTO@
---------------------------------------------------------------------------

