3D Construction Kit - Manual

                      INTRODUCTION TO THE EDITOR

 The 3D Construction Kit is  designed  to  be user friendly with icons
and pull down  menus  enabling  the  user  to  quickly  understand the
working environment.
 Upon loading the  program  you  will  see  the  Main  Screen which is
divided up into the following areas:
 MENU SELECTOR: This is the top  text line which contains the headings
for the various menus. To  access  one  of  the  menus simply move the
mouse pointer over the desired heading and the relevant menu will open
below the heading. Moving the  mouse  pointer  over the options within
the menu will highlight them and  then  pressing the mouse button will
select the option currently  highlighted.  Moving  the pointer  out of
the boundary of the menu will cause it to retract.
 Below the menu selector you will see  the main VIEW window. This area
is always used to  display  the  current  FREESCAPE  view as seen from
whichever camera is currently selected.
 Below the VIEW window is  the  INFORMATION  BAR. This initially reads
AREA 001 POS: 4000,0300,4000 ROT:  000,000,000. This shows the current
area, your present view point  coordinates  (shown  as X,Y,Z), and the
angle of view (yaw, pitch and roll).  When in edit mode this line will
change to read the objects name  you  are editing, its position in the
environment and its size.  The  information  will be especially useful
when animation or other more advanced uses of the system are required.
 Below the Information Bar you will  see  a series of Icons. These are
the MODE and FREESCAPE icons. The  MODE  icons  are on the left of the
screen. EXCL (Exclude) is  useful  when  editing  objects. Clicking on
this icon  will  EXCLude  all  background  information  and  leave the
currently selected object to be edited. Just  to the right of this you
will see HIGHL (Highlight)  which  when  activated  will HIGHLight the
selected object for ease of  identification  during  work. Just to the
right of these you will  see  a  set  of  small  icons  in the form of
arrows. These icons are very useful.  When  an object is selected, eg.
for editing, if these arrows  are  activated  they  will lock onto the
current object from the front, rear,  either  side, or top and bottom.
Alongside these you will  see  two  further  icons  which are MODE and
STEP. Mode toggles between  WALK,  FLY1,  FLY2,  CAM1 through CAM5 and
LOCK, and STEP which is initially set by the PREFERENCES menu which is
found under GENERAL on the Menu Bar.  FINE  is used for fine work when
only a small movement is required in editing or movement.
 The different modes selected by the MODE icon affect your movement as
follows:
 WALK allows you to move  along  the  ground,  with the restriction of
gravity - you can climb onto  objects  and  fall off them. Your height
above  the  floor  is  restricted   to   between  64  and  280  units,
corresponding to a crouched and standing position.
 FLY1 removes restrictions on gravity.  You  can now fly with complete
freedom in  three  dimensions.  Forward  motion  is  restricted  to  a
horizontal plane, so that you  can  fly  forward  and look down at the
same time.
 FLY2 is very similar to FLY1, except that you now fly in  exactly the
direction you are looking.
 CAM1  through  CAM5  control  five  "cameras"  which  can  be  placed
anywhere. Control is similar  to  FLY1,  except  that  the cameras are
allowed inside objects  and  outside  the  area.  When  you  change to
another view the cameras position  is  saved,  so that on returning to
that camera the view position is retained.
 WALK, FLY1 and FLY2 have collision  detection built in; they will not
travel through solid objects. These modes  are the only three possible
within a runnable program or the test screen. To the right of the MODE
icons you will find the FREESCAPE icons.  The first of these are a set
of directional arrows which  are  used  for  YOUR  movement within the
environment. Using these arrows  you  can  move left, right, forwards,
backwards, rotate left, rotate  right,  make  a  complete U-turn, move
yourself up or down and toggle  the  cross-hair  cursor on and off. To
the right of these you will see  the rest of the Freescape Icons which
control your view movement. These  allow  you  to  look up, look down,
roll and clicking on the centre  "eye"  icon  will return your view to
the centre view once  more.  Note  that  the  EDIT and FREESCAPE icons
remain on the screen and can be used at most times during editing.
 Below the MODE and FREESCAPE icons  you  will see the SHORTCUT icons.
These icons  are  marked  SELECT,  COPY,  CREATE,  EDIT,  TEST, RESET,
CONDITION, DELETE, ATTRIBUTES and  COLOUR.  These  are short cut icons
which duplicate  the  most  commonly  used  functions  which  are also
available from the Menus as follows (from left to right):

                 SHORTCUT ICON          IN MENU

                 SELECT                  OBJECT
                 COPY                    OBJECT
                 CREATE                  OBJECT
                 EDIT                    OBJECT
                 TEST                    GENERAL
                 RESET                   GENERAL
                 CONDITION               OBJECT
                 DELETE                  OBJECT
                 ATTR                    OBJECT
                 COLOUR                  OBJECT


         GETTING TO KNOW THE MOVEMENT AND VIEWPOINT CONTROLS

 First load in a data file  from  the  disk. Move the mouse pointer to
the MENU SELECTOR and move it to the left until the FILE menu appears.
Move the pointer down until  LOAD  DATA  FILE is highlighted and click
the left mouse button.  A  dialogue  box  will  appear showing all the
available files and directories on the disk. Move the mouse pointer to
the file named KIT GAME and click the left mouse button. The name will
appear next to the heading FILE. Next,  click on the OK button and the
data file will load, and after a  few  moments will appear in the VIEW
window.
 Now using the FREESCAPE icons  experiment  with moving around the new
environment. Move in  all  the  direction  you  can  until  you become
completely familiar with  how  to  "move  yourself"  around within the
FREESCAPE landscape. Press  the  left  mouse  button  within  the VIEW
window to see how some objects  may  be SHOT. Pressing the right mouse
button within the VIEW  window  to  ACTIVATE  an object. Activating an
object in the  VIEW  window  will  appear  to  have  no effect  unless
conditions have been entered  which  are  triggered  by the ACTIVATED?
condition. Try this on the door to the building. (note that activating
objects can only be done within a finite range).


                           THE 3D KIT GAME

 This has been  included  as  an  example  to  illustrate  some of the
environments that are possible. This  is  supplied  as a data file and
can be played as a  stand  alone  game.  First load KGBORDER, from the
BORDER function in the FILE menu, then click on the TEST SHORTCUT icon
to play the game from within the kit.  To make a "stand alone" game or
environment use the MAKE function in the FILE menu.
 The object of the game  is  to  escape  from  the mysterious world in
which you find yourself,  and  return  to  Earth.  Some  sort of space
vehicle will come in handy  (large  clue).  F1  will return you to the
editor.
 Advanced use has been made  of  animations  and conditions, and these
can be examined and edited using the relevant functions.
 See if you can complete the game without cheating!


                CREATING AND EDITING YOUR FIRST OBJECT

 First the existing data file must be cleared from the VIEW window. To
do this, move the mouse pointer up to the MENU SELECTOR and move along
to the FILE  menu.  Move  the  pointer  down  until  the  CLEAR ALL is
highlighted and press  the  mouse  button.  An  ALERT  BOX will appear
warning that all current data will be lost if the operation continues.
Click on OK  and  after  a  few  moments  the  VIEW  window will clear
revealing an empty area.
 Now move the mouse pointer to the SHORTCUT icons and click on CREATE.
These icons will now be  replaced  with  a  further  set of icons each
showing a particular type of object for  you to select. Move the mouse
pointer to the CUBE icon and click  the mouse button. A grey cube will
now appear in the VIEW window.  Note  that the SHORTCUT icons reappear
once the cube has been created.
 Next select the COLOUR icon and you  will  see that a list of objects
appears on the lower half of the screen. At present it should show:
                     001   CUBOID   001
                     002   CUBOID   002
Click on the cuboid 002 to select  this object. Move the mouse pointer
to the small "tick" at the top left of the selector and click on this.
An alternate method would be to click directly on the cube in the VIEW
window. The screen should now change to show the colour panel.
 To the left of the colour  bar  you  will see six small squares which
represent the six sides of  the  cube  and show their current colours,
opposite sides of the  cube  are  linked  by  square  brackets. At the
moment there should be two white, two  medium grey, and two dark grey.
These may vary depending on the computer.
 Colouring the cube can be done  in  two  ways: using these squares to
colour all sides of the cube in  one easy movement, or using the image
of the cube on the screen. To  colour  the cube the easy way, move the
mouse pointer over any colour you  wish  to use and select that colour
by clicking the left  mouse  button.  Note  that  the  colour you have
selected will appear in the small window above the UNDO and OKAY icons
to the right of the colour bar. Now move the mouse pointer over one of
the squares on the left of  the  colour  bar and click the right mouse
button to transfer the chosen colour. The  left mouse button acts as a
"get colour" and the right mouse button as a "put colour". Repeat this
process until all six of the squares  are coloured to your choice. You
will also note that at the same  time  the  cube in the VIEW window is
also being coloured. Selecting UNDO will undo the last colour changes.
Also note that pointing at an area of the VIEW window and clicking the
left mouse button will select this colour.
 The Amiga version allows colouring of  the  cube directly on the VIEW
window. Just move the mouse pointer  to  the colour you require on the
colour bar and press the left mouse  button, check that the box on the
right has changed to  the  chosen  colour  (also  note that the chosen
colour will be highlighted  on  the  colour  bar).  Now move the mouse
pointer to the face of the  cube  and  click the right mouse button to
transfer the chosen colour to the face of the cube.
 For obvious reasons  the  first  method  of  colouring  the object is
preferable as all sides  maybe  coloured  at  once.  The second method
would involve either turning the  cube,  walking  to the other side of
the cube to view the hidden side, or using the View Lock arrows.
 The horizon colours can only be altered in the colour areas above and
below the S and G letters.
 Now we will edit the cube. Move  the  pointer to the OKAY icon to the
right of the colour bar and press the mouse button. The SHORTCUT icons
will now reappear. Move the mouse  pointer  to the EDIT icon and press
the mouse button to select  it.  Now  either  select CUBOID 2 from the
objects selector list or click on the cube in the VIEW window.
 The EDIT window shows five  different  groups  of icons, POINT, TURN,
SHRINK, STRETCH and MOVE. Depending  on  which  type of object you are
editing, only the editing  groups  available  for your selected object
are shown. As we are editing a CUBE the POINT icons are dimmed to show
they are not available.
 Note that when an object is first  created it is positioned above the
"ground" so we will remedy  this  now.  Move  the mouse pointer to the
MOVE icons and position the pointer  over  the  icon shown as an arrow
pointing down with a small line  above  it and press the mouse button.
The cube in the VIEW  window  will  now  begin to move downwards. Keep
pressing this icon  and  watch  the  INFORMATION  BAR  to  see how the
position coordinates change. The bottom of the cube may disappear from
view as the cube is moved downwards. When you have moved the cube down
as far as it will go move the mouse pointer to the FREESCAPE icons and
select the arrow pointing downwards.  Press  the  left mouse button to
"move" yourself backwards from the  cube  until  all areas of the cube
are visible.
 Now move the mouse pointer to  the  STRETCH  icons and click the left
mouse button over the icon  represented  by  an  arrow pointing to the
right. The cube will now  stretch  towards  the  right. SHRINK has the
opposite effect to STRETCH.
 Experiment a  little  with  these  icons  until  you  are  completely
familiar with stretching,  shrinking,  and  turning/flipping the cube.
Then try to bring the cube back to its original size (200,200,200).
 When you have done this, move the  mouse pointer to the OKAY icon and
the SHORTCUT icons will reappear.  Now  move  the mouse pointer to the
COPY icon. The item selector will appear in the usual way.
 Select the cube by clicking on  this  in  the VIEW window. A DIALOGUE
BOX will appear requesting that you select  where you wish to copy the
object to. Click on LEFT and click  on  OK.  You will now see that the
cube has been copied to the left  of  the existing cube. This will now
be called CUBOID 003. The new cube  can  be  edited in the same way by
selecting the cube from the item selector in the usual way.


                          THE USER INTERFACE

FILE SELECTOR

 The file selector will appear when  SAVE DATA, LOAD DATA, LOAD OBJECT
or LOAD BORDER is selected from the  FILE  menu at the top of the VIEW
window. The first files in  the  current  directory will be displayed.
The arrows on the right of  the  file  selector will scroll up or down
through the files in the  current  directory  if  there are more files
then can be shown in the space  available. Select the required file by
clicking on the file name with the  mouse button and the selected file
name will appear to the right  of the FILE heading. Alternatively, you
can click on the FILE  heading  and  type  in  the file name using the
keyboard, pressing RETURN when satisfied. To load or save the selected
file click on OK. Just above  the  FILE  name  is the PATH which shows
which drive is currently being  used,  along with the current position
within directories. This can be changed  to another drive or hard disk
by clicking on it and typing the  new  path name in similar fashion to
the file name.

ALERT BOXES

 During environment creation there  will  be instances where something
you have   attempted to do will be either not possible or irrevocable.
In these instances an ALERT BOX will appear with information about the
function requested. If the function is not possible the alert box will
simply inform you  of  this  and  then  wait  for  conformation before
cancelling the function. If the function  is irrevocable ie. CLEAR ALL
the alert box will give you  the  chance  to reconsider the action and
continue with or stop  the  function.  ALERT  BOXES  are  also used to
inform  you  that  an   otherwise   invisible  function  has  executed
correctly. In this case the alert  box  will simply require input from
you to confirm the message has been received.

DIALOGUE BOXES

 There are  various  parts  of  the  environment  creation  which will
require input from  you  to  set  parameters  relating  to the current
function. These parameters will usually be set within a DIALOGUE BOX.
 DIALOGUE BOXES are simply  windows  which  will  open  at a set place
(usually the centre of  the  screen)  these  are  similar to the ALERT
BOXES but with  the  added  ability  of  user interaction. Interaction
takes place in  one  of  two  ways,  buttons  or text/numerical input.
Buttons can be one of three types. TOGGLE buttons which toggle between
selected and unselected when activated.  RADIO  buttons which are part
of a group of at least two  buttons,  when one radio button in a group
is selected all other  members  of  a  group  are unselected. FUNCTION
buttons which do a specific task directly ie. OK or CANCEL.
 Text boxes maybe edited by  first  clicking  with  the mouse over the
text to be edited  and  if  the   text  may  be  edited it will become
inverted and a cursor will  be  displayed  at the first character. you
may then type your text in  using  the normal functions. DEL deletes a
character under the cursor, BACKSPACE deletes the character before the
cursor and other keys  enter  the  desired  character over the current
content of the cursor position. Some  text  lines will restrict you to
either NUMERICAL  or  ALPHA  characters  only.  To  end  editing  of a
particular text item, simply press  the RETURN key where upon the text
will return to normal print  and  any restrictions on numerical values
will be applied ie. if you  were  to  type  in  the number 9000 for an
object position, as  the  maximum  area  coordinate  is  8192, it will
automatically  be restricted to  8192  on  pressing  RETURN. Note that
when editing a text or  numerical  item  it  is impossible to exit the
DIALOGUE BOX or edit any other  fields until you have finished editing
the current text item by pressing RETURN.

TEXT EDITING

 Text editing takes place in  the  lower  half  of the screen directly
below the VIEW window after selecting any  of the icons which bring up
the text editing window. An  inverse  square will indicate you current
cursor position. This position may  be  changed by either the keyboard
or the control icons.

                        TEXT EDITING CONTROLS

        CURSOR LEFT     move cursor left one character
        CURSOR RIGHT    move cursor right one character
        CURSOR UP       move cursor up one line
        CURSOR DOWN     move cursor down one line
SHIFT + CURSOR UP       move cursor up one page
SHIFT + CURSOR DOWN     move cursor down one page
        RETURN          insert a line
        BACK SPACE      delete the character before the cursor
        DELETE          delete the character under the cursor
        HELP            toggle between half/full screen modes
        ESC             cancel edit
 Then select the TICK icon to enter your text into memory or the CROSS
icon to cancel.

                          FILE MENU OPTIONS

Name:           SAVE DATA
Function:       To save all the data in memory to disk as a datafile.
Action:         When File  Selector  appears,  enter  a  name  for the
                datafile, press RETURN,  then  click  on  OK  or press
                RETURN again.
Response:       The current datafile will be saved to disk.
Note 1:         This function actually saves all FREESCAPE data to the
                disk including -  Datafile,  colours,  sound data (not
                samples), and name data.
Note 2:         Possible errors  include  Disk  write  protected, Disk
                full, No disk in drive.


Name:           LOAD DATA
Function:       To load datafile from disk.
Action:         When File Selector appears,  select  datafile from the
                file selector and click on OK or press RETURN.
Response:       The datafile will be loaded from disk.
Note 1:         Any data previously in memory will be overwritten.
Note 2:         See also notes for SAVE DATA.


Name:           SAVE OBJECT
Function:       To save a single Object or Group to disk for reloading
                later (or into another area of datafile).
Action:         Enter name to save object, press RETURN, then click on
                OK or press RETURN again.
Response:       The object will be saved to disk.
Note 1:         Neither conditions nor names will  be saved along with
                the object.
Note 2:         See also LOAD OBJECT.


Name:           LOAD OBJECT
Function:       Load a specified  Object  or  Group  into  the current
                data.
Action:         Click on object name you wish  to load. Click on OK or
                press RETURN.
Response:       The object will be loaded from disk.
Note 1:         First an attempt will be  made  to position the object
                at the position at which  it  was saved. If this fails
                the object will be  moved  up  and further attempts to
                position it will be made.  If  the  top of the area is
                encountered the operation will be aborted and an alert
                box  will   be   displayed   showing   the    required
                coordinates and size of the  object,  it is then up to
                you to ensure that  enough  free  space exists for the
                object to be placed before retrying.


Name:           LOAD BORDER
Function:       Load a picture file from  disk  to  use as a border in
                the TEST screen.
Action:         When a DIALOGUE BOX  appears requesting Format, select
                DEGAS, IFF or NEOchrome. Then click on OK.
Response:       A file selector will appear.
Action:         Click on the file to  be  loaded from disk. Then click
                on OK or press RETURN.
Response:       The border will  be  loaded  from  disk  into the TEST
                screen.
Note 1:         Borders can be  created  and  loaded  into memory from
                other programs providing that they   are in one of the
                acceptable formats ie. 320  *  200 pixels, 16 colours,
                lo-res and NTSC format.


Name:           MAKE
Function:       To make a "stand alone"  environment  from the data in
                memory.
Action:         When a file selector  appears  asking for the "RUNNER"
                (which is a program  supplied  on the Construction Kit
                Disk). Click on OK once it is located.
Response:       The File Selector will  reappear  asking  for the MAKE
                PATH.
Action:         Choose the directory you  wish  your environment to be
                created on and type  a  name  for the environment into
                the FILE name area (any  extender will be ignored). If
                the drive with the "RUNNER" disk in and the drive with
                the selected environment disk  are   the same ie. both
                DF0: you will be asked to ensure that the correct disk
                is inserted at  various  intervals  during  the "MAKE"
                process.
Note 1:         When completed there will  be  four  new  files in the
                chosen directory:
                          <NAME> - The main program.
                          <NAME>.DAT - The encrypted data file.
                          <NAME>.SAM - The sample bank.
                          <NAME>.BDR - The border screen.


Name:           CLEAR ALL
Function:       To replace the current  Data  from  memory and replace
                the default area.
Response:       Alert Box will appear  requesting  conformation of the
                action.
Action:         Select OK or CANCEL from the Alert Box.
Response:       If OK selected the  current  data  will be cleared. If
                CANCEL selected the Data will be left as it was.


Name:           DELETE FILE
Function:       Deletes an unwanted Datafile from the disk.
Response:       A file selector will appear.
Action:         Select the Datafile to be deleted and select OK.
Response:       The Datafile will be deleted from the disk.
Note 1:         This function will allow  deletion  of  old files from
                the disk. This can be  used  to  free  space on a disk
                prior to saving.


Name:           ABOUT
Function:       To display credits and release number.


Name:           QUIT
Function:       To exit the 3D Construction Kit.


                         GENERAL MENU OPTIONS

Name:           PREFERENCES
Function:       Setup specific Parameters used in the Construction Kit
                to your own preference.
Response:       A Dialogue Box will appear.
Action:         Enter the required numerical input.
Response:       The Preferences will be set to those selected whenever
                possible.
Note 1:         This function allows you to set  up the step sizes for
                the vehicles/cameras used  during  editing.  There are
                three step sizes: move step  size, angle step size and
                object step size. Each step  size has two entries, one
                for the left mouse button and  one for the right mouse
                button when clicking on the  icons.  The keys will use
                the left mouse button step size.
Note 2:         You may set the  current  edit  buffer  size. When the
                buffer size is changed ALL CURRENT DATA IS LOST. If an
                attempt is  made  to  allocate  more  memory  then  is
                available the system will allocate  as much as it can.
                After allocating a  buffer  of  a  different size then
                that requested, an ALERT BOX will be displayed showing
                the amount requested and the actual amount allocated.


Name:           RESET
Function:       Resets the game/environment to the initial position as
                set in the defaults.
Response:       The game/environment will reset.
Note 1:         This  also  resets  all   objects/animators  to  there
                initial  status  and   clears   all  variables  except
                Variable 255.


Name:           CREATE CONDITION
Function:       Create a new GENERAL condition.
Response:       A new GENERAL condition  will  be  allocated ready for
                editing.
Note 1:         GENERAL conditions are  conditions  which are executed
                each  FREESCAPE  frame   regardless   of  the  players
                position with the exception of the "initial" condition
                specified in the Defaults section.


Name:           EDIT CONDITION
Function:       To edit a GENERAL condition.
Response:       A  list  of  existing   General   Conditions  will  be
                displayed in the Item Selector.
Action:         Select  a  condition  from   the  Item  Selector.  The
                selected condition will  then  be  displayed below the
                VIEW window. This  can  be  edited  using  normal text
                editing.
Note:           See also CONDITIONS.


Name:           DELETE CONDITION
Function:       Delete a General Condition.
Response:       A list  will  be  displayed,  as  above,  and  once  a
                selection  is  made  from   the   list  the  specified
                condition will be erased from memory.


Name:           DEFAULTS
Function:       Set up the default game variables.
Action:         Within this DIALOGUE BOX you can alter:
                     1. The climb ability
                     2. The "safe" fall distance
                     3. The activity range
                     4. The Timer frequency
                     5. The start area
                     6. The start entrance
                     7. The initial mode
                     8. The initial General Condition number.
Note 1:         RESET should be selected to set these Defaults.


Name:           CONTROLS
Function:       To set up  the  controls  that  are  used  in the Test
                Screen.
Response:       A  list  of  all   the   available  controls  will  be
                displayed.
Action:         Select a control  by  clicking  the  left mouse button
                over the name.  Once  a  control  is  selected any key
                pressed will  become  the  key  associated  with  that
                control.
Response:       The key name will be displayed next to the control.
                Next to the key name you  will  notice a small tick or
                cross. This indicates  whether  an  icon  in  the Test
                Screen has been defined for the control or not.
Action:         To define an icon  for  the  control,  click the right
                mouse button over the name.
Response:       The currently loaded BORDER (if  any) will replace the
                Construction Kit Screen.
Action:         To set  the  position  of  the  icon,  move  the mouse
                pointer to the top left corner of the desired area and
                click the left mouse  button.  You  will  notice a box
                appear,  this  box  will  follow  your  mouse  pointer
                movements growing and shrinking  accordingly. Move the
                mouse to the bottom right  corner  of the desired area
                so that the box encompasses the area of the icon (note
                although the icon area  must  be rectangular this does
                not mean that the image of the icon on the border must
                be,  as  the  rectangle  of  the  icon  definition  is
                invisible anyway), then click  on  the mouse button to
                set the definition.
Response:       A DIALOGUE BOX will appear.
Action:         Select whether the  icon  should  be  activated by the
                left, right,  either  or  both  mouse  buttons  in the
                DIALOGUE BOX.  Once  the  icon  is  set  the  list  of
                controls will be redisplayed  and  you may continue to
                edit the controls.  When  editing  is completed select
                the TICK icon to set the controls and the Construction
                Kit Screen will be redisplayed.
Note 1:         Selecting "either" will register  both  left and right
                mouse buttons.  For  movement  the  right  button will
                default to a step  size  five  times  that of the left
                button, and turning will step by 30 degrees.
Note 2:         Using any of the  function  keys  as an associated key
                will set that  control  to  undefined  -  it cannot be
                used, neither from the keys nor using an icon.
Note 3:         Icon controls can only  be  activated if an associated
                key is defined.
Note 4:         See Appendix for default controls.


Name:           CREATE INSTRUMENT
Function:       Allocate a new instrument.
Response:       A new instrument will be added.
Note 1:         When created, an instrument  will default to UNDEFINED
                and will therefore not  be  displayed  at all. The new
                instrument can be  edited  using  the  EDIT INSTRUMENT
                function detailed below.


Name:           EDIT INSTRUMENT
Function:       To  edit  the   various   parameters  associated  with
                Instruments.
Response:       A list of the current Instruments will be displayed.
Action:         Select the Instrument from the Item Selector.
Response:       A dialogue box will be displayed.
Note 1:         Each parameter required to  define  an instrument will
                now be dealt with in turn.
                 TYPE: Each instrument must have a type, these include
                HORIZONTAL (bar), VERTICAL  (bar),  NUMERICAL and TEXT
                WINDOW or UNDEFINED.
                 The  two   bars   are   thermometer   style   sliding
                indicators, they can be various sizes and combinations
                of colours, also the direction  of  the bar can be set
                using min. max. values explained  later, a sliding bar
                must have associated with it a variable number as this
                is where the instrument  will  get its current setting
                from.
                 The NUMERICAL type is  simply  a  text area where the
                value of its  associated  instrument  is  displayed in
                decimal. This can  include  negative  numbers.  If the
                minimum value is negative,  the  instrument will use a
                sign if necessary to display the value.
                 The TEXT  WINDOW  type  is  an  area  on  the  screen
                definable as both height  and  width in which messages
                may be  printed  using  the  FCL  command  PRINT. (see
                conditions section).
                 POSITION and SIZE define the screen position and size
                of the instrument, all instrument types are positioned
                to pixel boundaries, horizontal and vertical bar sizes
                are defined in increments of 1 pixel while text window
                and numerical types are defined  in  steps of 8 pixels
                (1 character).
                 VARIABLE NUMBER contains the  number  of the variable
                (if required) that the instrument will fetch its value
                from.
                 LEFT/BOTTOM contains  the  leftmost/bottommost  value
                for a sliding bar,  or  numeric  instrument. By making
                this value lower then the RIGHT/TOP value the bar will
                either go down or to the left or vice versa.
                 RIGHT/TOP contains the  uppermost/rightmost value for
                a sliding or numeric  bar,  see  also LEFT/BOTTOM, the
                step change for a  sliding  bar  will be automatically
                scaled according to the difference between LEFT/BOTTOM
                and RIGHT/TOP values and the size of the bar.
                 FG/BG COLOUR contains the two colour numbers (for the
                foreground and background) in  which the bar/text will
                be printed.
                 The following are legal colours for instruments:
                        All instruments         0..15
                 Instruments associated with a variable may be updated
                in two ways, either  by  altering  the contents of the
                associated variable, in which  case  the instrument is
                automatically updated or  by  calling  the FCL command
                UPDATEI with the relevant number. The text window type
                instrument can  be  updated  only  by  using  the  FCL
                command PRINT.


Name:           SET VIEW WINDOW
Function:       To set the size  and  position  of  the FREESCAPE view
                window in the Test screen.
Response:       The 3D  Construction  Kit  will  be  replaced  by  the
                alternate Test window. This will be black if no border
                has been loaded.
Action:         Position the mouse pointer  at  the  top  left of your
                required window and  drag  the   box   to surround the
                area you wish to  be  included.  Click  the left mouse
                button once more at  the  bottom  right and the window
                will be set.


Name:           TEST
Function:       Go to the Test screen  allowing  the environment to be
                tested.
Note 1:         This preforms the same  function  as  the F1 key which
                toggles between the two  screens.  Pressing the F1 key
                is necessary to return to the editor.
Note 2:         Cameras are not allowed  in  the  test  area. The mode
                will default to WALK, FLY1  or  FLY2 if using a camera
                when the test screen is accessed.


                          AREA MENU OPTIONS

Name:           CREATE AREA
Function:       Create a new area.
Response:       A new Area will be  created  and the viewpoint will be
                moved to this new area.
Note 1:         All new Areas  contain  an  Entrance  near  the centre
                (Entrance 001) and a base  (Cuboid  001). If these are
                not required they may be deleted.


Name:           EDIT AREA
Function:       Displays a list of existing  areas and allows the user
                to edit the area specific information.
Response:       A list of all existing areas  is displayed in the Item
                Selector.
Action:         Select an area to edit from the Item Selector.
Response:       A dialogue box will appear.  This shows the area name,
                the number  of  definitions  in  the  area  (including
                OBJECTS, ENTRANCES and ANIMATORS),  the  are scale and
                whether  or not the  horizon  is  active. All of these
                elements may  be  edited  in  the  usual  dialogue box
                fashion, except for the number of definitions.
Note 1:         Only set horizon to OFF if the viewpoint is restricted
                to move only within  a completely enclosed environment.
                (All four walls, floor AND ceiling.)


Name:           DELETE AREA
Function:       Delete a specified area.
Response:       A list of existing areas will be displayed in the Item
                Selector.
Action:         Select an area from the Item Selector.
Response:       The entire contents  of  the  selected  area including
                objects and  local  conditions  will  be  removed from
                memory.
Note 1:         This function is irreversible  so  use carefully! Also
                note that you cannot delete the Area you are currently
                in.


Name:           GOTO AREA
Function:       To move viewpoint to another area.
Response:       A list of existing areas will be displayed.
Action:         Select an area to go to.
Response:       Will move the viewpoint to the new area selected.
Note:           Area 000 id the  Global  Area  and  is only accessible
                from here. See also LIST GLOBALS in OBJECT MENU.


Name:           AREA COLOURS
Function:       To re-colour the 16 solid  base colours in the current
                area.
Response:       The COLOUR AREA panel will  appear. The panel contains
                three slider bars, one for  each element of the colour
                red, green and blue. In each of these bars is a marker
                showing the current level of each element, also beside
                the bars the level is indicated  by a number from 0 to
                15. The levels  of  each  element  may  be  changed by
                either clicking on the arrow  icons  to either side of
                the sliders which will  increase/decrease the level in
                steps of 1, or  click  on  the  slider bar itself will
                move the pointer to the mouse position directly.
                To the right of  the  sliders  are  a number of icons,
                these include:
                RESET : To reset the  colours to their original values
                        before any changes were made.
                CANCEL: Exit and ignore any changes.
                OKAY  : Exit and save the new changes.
                SPREAD: Will wait  for  you  to  select another colour
                        form the colour  bar  and  will  approximate a
                        smooth graduation  between  the  two  selected
                        colours.
                COPY  : Will wait for you to select another colour and
                        will then copy the original selected colour to
                        the new position.
                Above the  panel  is  a  display  of  the  current  16
                colours. To select a colour  to  edit simply click the
                mouse button over it.  The  flashing  box will move to
                the new colour and its values will be displayed in the
                slider bars.


Name:           CREATE CONDITION
Function:       To create a new area condition.
Response:       A new area condition will be created for editing.
Note 1:         Area conditions are executed  each  frame  when in the
                current area.


Name:           EDIT CONDITION
Function:       Edit an Area Condition.
Response:       A list of current area conditions will be displayed.
Action:         Select the condition for editing.
Response:       The condition will be displayed for editing.
Action:         Edit the  condition in  the  normal  manner  (see TEXT
                EDITING).


Name:           DELETE CONDITION
Function:       Delete a selected Area Condition.
Response:       A list of conditions  will  be  displayed  in the Item
                Selector.
Action:         Select a condition.
Response:       The condition will be deleted from memory.


Name:           CREATE ENTRANCE
Function:       Create a new entrance in the current area.
Response:       A  new  entrance  will  be  created  at  your  present
                position.
Note 1:         The  new  entrance  will   contain  the  position  and
                viewdirection of the  viewpoint  at  the  time  of its
                creation,  therefore  to  set  up  an  entrance  to  a
                specific view simply move to that position and look in
                the desired direction. Then select CREATE ENTRANCE and
                the view will be stored as the last Entrance.


Name:           EDIT ENTRANCE
Function:       Allows you to edit an existing entrance.
Response:       A list of current entrances will be displayed.
Action:         Select the entrance to be edited in the usual manner.
Response:       A dialogue box will appear  on  the screen. Within the
                dialogue box will be  details  of  the entrance; NAME,
                POSITION and ROTATION. These can be edited.
Action:         Edit the entrance in  the  dialogue  box  in the usual
                manner.


Name:           DELETE ENTRANCE
Function:       Deletes a specified entrance from memory.
Response:       A list of current entrances  will  be displayed in the
                Item Selector.
Action:         Select an entrance in the usual manner.
Response:       The selected entrance will be deleted from memory.
Note 1:         This operation is irreversible, use with care!


Name:           GOTO ENTRANCE
Function:       Move to a specified entrance within the current area.
Response:       A list of available Entrances will be displayed.
Action:         Select an entrance in the usual manner.
Response:       The viewpoint will be moved to the selected entrance.


Name:           CREATE ANIMATION
Function:       Create a new animator.
Response:       A new animator will be created ready for editing.


Name:           EDIT ANIMATION
Function:       Allows editing of animation commands.
Response:       A list of existing animators will be displayed in the
                Item Selector.
Action:         Select the desired animator.
Response:       The commands for that animator  will be decompiled and
                displayed for editing.
Action:         Edit or add to these commands  in  the same way as all
                conditions. (see TEXT EDITING).
Note 1:         Also see CREATING AN ANIMATION.


Name:           DELETE ANIMATION
Function:       Delete a specified animation from memory.
Response:       A list of all existing animators will be displayed.
Action:         Select an animator in the usual manner.
Response:       The selected animator will be delete from memory.
Note 1:         This operation is irreversible, use with care!


                         OBJECT MENU OPTIONS

Name:           CREATE OBJECT
Function:       Create a new object in the current area.
Response:       A panel will be displayed over the SHORTCUT Icons
                showing the type of object available.
Action:         Select an object type.
Response:       The new object will be created in front of the current
                view.
Note 1:         The new Object name will  default to its type followed
                by  its  number.  These  can   be  changed  using  the
                ATTRIBUTES function. A GROUP of Objects can be created
                by selecting  GROUP.  The  Item  Selector  will appear
                showing all the Objects currently created. Any Objects
                for inclusion within  the  group  will  be highlighted
                when selected (or deselected)  with  the mouse button.
                When all the Objects have  been selected, click on the
                TICK in the  Item  Selector  and  all  the highlighted
                Objects will be included within the new GROUP.


Name:           EDIT OBJECT
Function:       Edit a specified object.
Response:       A list of the existing objects will be displayed.
Action:         Select an object in the usual manner.
Response:       A new  bank  of  icons  will  be  displayed  over  the
                SHORTCUT icons. The icons are split into five groups:
                POINT   : Alters  to  position  of  the  point  number
                          displayed in  the  INFO  BAR.  This function
                          only applies to  non  rectangular facets and
                          pyramids, in the case  of  facets all points
                          may be moved whilst in  the case of pyramids
                          the two diagonally opposite  apex points can
                          be  altered  to  change  the  point  of  the
                          pyramid. The NEXT button is  used to move to
                          the next point to be edited.
                TURN    : Rotates the object  in  the direction of the
                          arrows on the icons through 90 degrees.
                SHRINK  : Decreases  the  size  of  the  object in the
                          direction of the arrows.
                STRETCH : Increases  the  size  of  the  object in the
                          direction of the  arrows.  As  with MOVE the
                          object  cannot  be   stretched   beyond  the
                          boundary of the area.
                MOVE    : Move  the  object  in  the  direction of the
                          arrows, left and right mouse button on these
                          icons will have  different effects depending
                          on the values set  in  the PREFERENCES menu.
                          If an object being moved hits another object
                          on the edge of  the  area  it will be butted
                          against the obstruction.
                To the right of the EDIT icons are three further icons
                as follows:
                UNDO    : This function will  undo any editing made on
                          an object prior to  selecting another object
                          or using the OKAY icon.
                SELECT  : This provides  the  option to select another
                          object for  editing  as  an  alternative  to
                          clicking on another  object  within the VIEW
                          window.
                OKAY    : Selecting this  will  commit  all editing to
                          memory and return  to  the  main screen once
                          more.
Note 1:         Only triangular facets may be non-orthogonal; ie. they
                may lie on a plane which  is  not aligned along one of
                the major axis (north/south, east/west, up/down).


Name:           DELETE OBJECT
Function:       Delete a specified object from memory.
Response:       A list  of  objects  will  be  displayed  in  the Item
                Selector.
Action:         Select an object from the  Item  Selector in the usual
                manner.
Response:       The object will be deleted from memory.
Note 1:         This operation is irreversible, use with care!


Name:           SELECT OBJECT
Function:       Choose a new  selected  Object  for  use in Highlight,
                Exclude or Lock.
Response:       A list of objects will be displayed.
Action:         Select one of the objects from the list.


Name:           COPY
Function:       Create a duplicate of a  specified  object or group of
                objects.
Response:       A list of objects will be displayed.
Action:         Select the object from the Item Selector.
Response:       A DIALOGUE BOX will be displayed.
Action:         Select  where  the  object  is  to  be  positioned  in
                relation to the original object or "View" to place the
                object in front of your viewpoint.
Response:       The new object will be created.
Note 1:         The name of the new  object  will  default to its type
                followed by its number.
Note 2:         Any conditions entered for the original object will be
                copied to the new object also.


Name:           CONDITION
Function:       To edit the conditions on a specific object.
Response:       A list of all objects in the current Area will appear.
Action:         Select an object in the usual manner.
Response:       Any conditions on the  object  will  be decompiled and
                displayed for editing in  the  usual  manner (see TEXT
                EDITING).


Name:           ATTRIBUTES
Function:       Alter the position and status of a specified object.
Response:       A  list  of  objects  in  the  current  area  will  be
                displayed.
Action:         Select an object from the list.
Response:       A dialogue box will appear showing various information
                about the  selected  object:-  NAME,  SIZE,  POSITION,
                CURRENT STATUS, INITIAL STATUS and ANIMATED.
                 NAME, POSITION and size can  be  altered in the usual
                manner.
                 CURRENT  STATUS  alters  the  status  of  the  object
                between VISIBLE, INVISIBLE and DESTROYED. An invisible
                object may be made visible at  some other point in the
                environment whereas a destroyed  object  is gone until
                the environment is restarted using RESET.
                 INITIAL STATUS sets the state  of the object when the
                environment is RESET, either VISIBLE or INVISIBLE.
                 MOVEABLE  marks  the  object  as  being  able  to  be
                animated, if you have any  intention of animating this
                object it must  be  marked  as  MOVEABLE  as this will
                allow the START POSITION for the object to be set.
                 Sensors have additional attributes as follows:
                 RANGE shows the maximum distance  at which you can be
                detected by the sensor.
                 SPEED alters the frequency  at  which checks are made
                for sensing or shooting.
                 DIRECTION shows from which  directions the sensor can
                detect you.
                 EFFECT can be  either  SENSE,  where  the sensor will
                simply detect your presence, or SHOOT, when the sensor
                will shoot at you at the rate set by SPEED.
Action:         Select OK  to  confirm  changes  or  CANCEL  to  leave
                unchanged.


Name:           COLOUR
Function:       Colour objects in the current area.
Response:       Initially  a  list   of   existing   objects  will  be
                displayed.
Action:         Select an object from the Item Selector.
Response:       A colour editing panel will be displayed at the bottom
                of  the  screen  displaying  available  colours.  Base
                colours are combined to give various shades. The small
                "I" in the box for colour 0 indicates that colour 0 is
                invisible. Invisible facets  are  not  drawn. Sides of
                objects that can  never  be  seen  should  be coloured
                invisible to increase efficiency. To  the right of the
                palette is a larger  box  showing the selected colour.
                Selecting the UNDO  icon  will  undo  the  last colour
                change made. To the left of the screen is a display of
                all the selected object's colours.
Action:         Editing the colours of an  object  can  be done in two
                ways. Firstly  select  a  colour  in  the  palette  by
                clicking on it with the  left mouse button. A flashing
                box will surround the  colour to  indicate that it has
                been selected. Now move the  cursor into the FREESCAPE
                VIEW window and click with  the  right mouse button on
                the facet to be coloured. If  this is on the currently
                selected object then it will  simply change colour. If
                it is not, then  the  object will automatically become
                the selected object and the display to the left of the
                palette will change accordingly.
                 The second method is to  a  colour  in the palette as
                before and then click the  right mouse button over the
                desired colour in the box to  the left of the palette.
                The facet will change  colour accordingly. This method
                allows the change of colour of objects which cannot be
                seen in the VIEW window either because they are out of
                view or because they  have  been  made invisible. When
                colour editing is complete, click  on the OKAY icon to
                return to the main screen.
Summary:        The left mouse button = "Get colour"
                The right mouse button = "Put colour"


Name:           EDIT GROUP
Function:       To alter the contents of a specified group.
Response:       A list of current group specifiers will be displayed.
Action:         Select a group to be edited.
Response:       A list of all the objects  in the current area will be
                displayed. Members  of  the  selected  group  will  be
                highlighted.
Action:         These objects can  be  removed  or  others included by
                clicking on the  relevant  object,  either  within the
                list or in the VIEW window.


Name:           LIST GLOBALS
Function:       Displays a list of defined  objects available from the
                GLOBAL area. To view  and  possibly alter the presence
                of certain Global objects in the current area.
Response:       A list  of  the  defined  objects  available  from the
                GLOBAL area  will  be  displayed  with  all  displayed
                objects highlighted.
Action:         These may be de-selected or  you may select members of
                the list by clicking on them.  When OK is selected all
                members highlighted (selected) will  become visible in
                the current area.
Note 1:         Global objects may only be edited when in Area 0.
Note 2:         Global objects are a group  of objects defined in Area
                0 that can be used in  any  number of areas using very
                little memory.


                 THE FREESCAPE COMMAND LANGUAGE (FCL)

The FREESCAPE system contains  a  simple  language definition allowing
functions to be performed  when  certain  conditions  occur within the
FREESCAPE environment.  These commands can be used in any of 3 places:
 OBJECT CONDITIONS: These  commands  are  executed  when  some sort of
interaction with the  specified  object  take  place.  The interaction
options are:
 SHOT?          The object is pointed to  by  the mouse cursor and the
left mouse button pressed, a  series  of  lines  will be seen from the
corners of the screen to the  object  being shot, these lines depict a
weapon (laser).
 ACTIVATED?     The object is activated in  a  similar way to shooting
an object except that the right mouse  button  is used and there is no
visible effect. (the object has to  be within the Activate distance as
defined in the Defaults).
 COLLIDED?      The object is collided with by either the player or an
animated object.
 AREA CONDITIONS: These commands  are  executed  each  frame while the
viewpoint is within the confines of the specified area.
 GENERAL  CONDITIONS:  These   commands   are   executed  every  frame
regardless of the viewpoint position.
 In the following list, P1, P2  and  P3  refer to parameters 1,2 and 3
respectively. These can be  either  a  literal  number  or a variable.
Variables are specified as V followed  by a variable number 0..255 eg.
V23 for variable 23. In this case,  the contents of a variable will be
used as the parameter value. eg.  LOOP  (P1) can be, for example: LOOP
(6) (or any other number) or LOOP (V23) which uses the variable stored
in variable 23.
 Parameters which must be variables are referred to as V1, V2, V3; eg.
                SETVAR (P1,V2)
shows that the 2nd parameter must be a variable.
 Optional parameters or commands are surrounded by square brackets [].
 A list of the available commands  follows along with a description of
the required parameters and their functions.


                              CONDITIONS

ACTIVATED? (ACT?)                         Class - Trigger Interrogator

Format:         IF ACTIVATED?
                THEN commands..
                ELSE commands..
                ENDIF
Function:
 This command checks whether the  selected  object has been activated.
This happens when the cursor is over the selected object and the right
mouse button is pressed.
Note: The selected object must be within the default activate range to
be affected. This is set in the GENERAL menu, DEFAULT function.

Example:
        IF ACTIVATED?
        THEN INVIS (4)
        ENDIF
This condition  simply  informs  the  system  that  if  the  object is
ACTIVATED then make object 4 invisible.

See also:       IF, THEN, ELSE, SHOT?, COLLIDED?


ADDVAR (ADD)                                  Class - Variable Command

Format:         ADDVAR (P1,P2)
Function:
 This command preforms an  addition  on  the  two supplied values, the
value P1 is added to the value P2,  if P2 is a variable specifier then
the result of the addition  is  stored  in  the variable otherwise the
result is lost but the CCR  flags  are  still altered according to the
result of the addition. Meaning that if  an ADDVAR command is preceded
by an IF and followed by a THEN/ELSE ENDIF combination, conditions may
be executed depending on whether  the  result  was zero or not without
altering the value of any variables.

See also:       SUBVAR


AGAIN                                             Class - Loop Command

Format:         LOOP (P1)
                commands...
                AGAIN
Function:
 This command serves to  terminate  a  LOOP  section. Upon reaching an
AGAIN command the command processor  will  decrement the relevant LOOP
counter and if the result is  greater  then zero, jump to the relevant
LOOP address (the command  immediately  following  the associated LOOP
command).

Example:        INCLUDE (1)
                START
                LOOP (20)
                MOVE (40,0,0)
                AGAIN
                RESTART
 This is a simple example of using  the LOOP command in animation. The
rest of the commands will  be  explained  fully  later but for now the
commands simply say: Include  object  1  in  the  animation, start the
sequence when triggered, LOOP 20, move  the object to the coordinates,
AGAIN and restart.

See also:       LOOP


AND                                          Class - Condition Command

Format:         IF condition
                AND condition
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command combines the result  of  two  or more condition checking
commands and returns TRUE only if all of the specified checks are TRUE
otherwise a FALSE result is returned.

See also:       IF, THEN, ELSE, ENDIF, OR


ANDV                                          Class - Variable Command

Format:         ANDV (P1,P2)
Function:
 This command preforms a logical AND  on the two values specified, the
value P1 is ANDed with the value P2  and if P2 is a variable specifier
the result is stored  in  the  specified  variable.  CCR flags are set
accordingly.

See also:       ORV, NOTV


COLLIDED? (COL?)                          Class - Trigger Interrogator

Format:         IF COLLIDED?
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command checks the  COLLIDED  flag  in  the  status  byte of the
current object, a TRUE result is  returned if a collision has occurred
with this object since the  last  check,  otherwise  a FALSE result is
returned. The COLLIDED flag  on  the  current  object  is cleared upon
executing this command.

Example:        IF COLLIDED?
                THEN INVIS (4)
                VIS (5)
                ENDIF
 In this condition the system checks  if  the object has been collided
with. If it has then object  4  becomes invisible and object 5 becomes
visible. This could be used to remove a door (object 4) and replace it
with an open doorway (object 5).

See also:       IF, THEN, ELSE, ENDIF, ACTIVATED?, SHOT


DELAY                                             Class - Time Command

Format:         DELAY (P1)
Function:
 This command halts all  FREESCAPE  functions  for the specified time.
The specified time (P1) is in 50ths of a second.

Example:        DELAY (50)
 This would halt for 1 second.

See also:       WAIT


DESTROY                                        Class - Object Commands

Format:         DESTROY (P1[,P2])               {object[,area]}
Function:
 This command sets the DESTROYED flag  on the specified object (P1) in
the specified area (P2). If no area is specified the command processor
presumes that the specified object is in the current area. Note - Once
an object has been destroyed it  is  then impossible to get the object
back short of resetting.

Example:        IF SHOT?
                THEN DESTROY (4,2)
                ENDIF
 This simply asks if  the  current  object  has  been  shot  and if so
destroys object 4 in area 2.

See also:       DESTROYED?


DESTROYED?                                 Class - Object Interrogator

Format:         IF DESTROYED? (P1[,P2])         {object[,area]}
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command checks the status of  the specified object and returns a
TRUE result if the object has been DESTROYED.

See also:       IF, THEN, ELSE, ENDIF, DESTROY


ELSE                                     Class - Conditional Statement

Format:         IF condition
                THEN commands...
                ELSE commands...
                ENDIF
Function:
 This  command  exists   only   as   part   of  an  IF/THEN/ELSE/ENDIF
combination. It marks the start  of  commands  to  execute only if the
result of a previous  condition  was  FALSE.  The effectiveness of the
command relies on the correct usage  of  the IF and THEN commands. For
any condition checking to work it  is  essential that the condition be
preceded by an IF command and followed  by a THEN and (if required) an
ELSE statement.

See also:       IF, THEN, ENDIF


END                                         Class  - Condition Command

Format:         IF condition
                THEN commands...
                END
                [ELSE commands...]
                ENDIF
                commands...
Function:
 This command exits command processing  before  the end of the command
list is reached, at allows the user to short cut the command execution
on a particular condition  being  TRUE  or  FALSE.  Used  in the above
format, if the result  of  the  condition  is  true  only the commands
following the THEN statement will  be  executed  and upon reaching the
END command the processor  would  continue  execution  from this list.
Were there no END command the  processor would continue executing from
the command following the ENDIF statement.
Note: If END is used within  an  animator the execution of the current
animation frame is ENDed  and  execution  continues  on the next frame
beginning with the command following the END command.

See also:       IF, THEN, ELSE, ENDIF


ENDGAME                                         Class - Player Command

Format:         ENDGAME
Function:
 This command serves to reset the environment. This can be executed on
a particular condition being TRUE  or  FALSE,  ie.  if a counter being
used to store game time reaches zero then the game finishes.

Example:        IF COLLIDED?
                THEN ENDGAME
                ENDIF
 This condition simply states that  if  the player or another animated
object collides with the selected object  then  end the game and reset
all the flags etc.


ENDIF                                      Class - Condition Statement

Format:         IF condition
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command terminates a conditional section. Upon reaching an ENDIF
command,  execution  continues  as   normal  before  the  IF/THEN/ELSE
combination. If the result of a  condition  is TRUE the commands after
the THEN statement are executed and  those between the ELSE  statement
and the ENDIF are ignored. If the result is false the commands between
the THEN and the ELSE are ignored  and  those between the THEN and the
ENDIF are executed. In  either  case  unless  an  END command has been
issued, command processing will continue after the ENDIF statement.

See also:       IF, THEN, ELSE


EXECUTE (EX)                                    Class - Branch Command

Format:         EXECUTE (P1)                    {object}
Function:
 This command terminates command execution  on  the current object and
continues with the command list on  object  (P1). The status flags and
the position  of  the  original  object  are  still  used  for  Object
Interrogator commands.


GOTO                                            Class - Player Command

Format:         GOTO (P1[,P2])                  {entrance[,area]}
Function:
 This command is used  to  allow  player  movement between the various
defined areas. Upon reaching this command  the player will be moved to
the entrance P1 in the area P2.  If  no area is specified the entrance
is presumed to be in the  current  area.  If  a new area is specified,
command processing will cease at  this  point otherwise normal command
processing will continue.

Example:        IF COLLIDED?
                THEN GOTO (1,2)
                ENDIF
 The above example would be quite  useful  if  it was desired that the
player, upon colliding with a doorway (the object selected) would then
be transported to entrance 1 in area 2.


IF                                         Class - Condition Statement

Format:         IF condition
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command marks  the  start  of  a  condition section. Immediately
following the IF command  should  be  one  or  more condition commands
separated by either AND or OR statements. The IF command simply serves
to clear the CCR flags  and  prepare  for  the following condition. To
have any effect at all the condition should be followed be a THEN/ELSE
combination otherwise  execution  will  continue  after  the condition
regardless of the result.

See also:       THEN, ELSE, ENDIF, AND, OR


INCLUDE                                      Class - Animation Command

Format:         INCLUDE (P1)                    {object}
Function:
 This command is animation specific. Any  attempt  to execute it on an
OBJECT or in LOCAL/GLOBAL conditions will  have no effect. The command
includes the specified object (if it is not already animated) into the
animation list for the current  animator.  This command should be used
at the very beginning of an animation before the START command so that
it is only called once at the  start  of the animation and never again
until the environment is restarted.

See also:       MOVE, START, RESTART


INVIS (IV)                                      Class - Object Command

Format:         INVIS (P1[,P2])                 {object[,area]}
Function:
 This command sets the INVISIBLE flag  on  object P1 and the specified
area P2. If no area is specified  the  object is presumed to be in the
current area.

Example:        IF SHOT?
                THEN INVIS (9)
                ENDIF
 A simple condition which states that  if the specified object is shot
then object 9 will become invisible.

See also:       INVIS?, VIS?, VIS


INVIS?                                     Class - Object Interrogator

Format:         IF INVIS? (P1[,P2])             {object[,area]}
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command checks the  INVISIBLE  flag  in  the  status byte of the
object P1 in area P2.  If  no  area  is  specified  then the object is
presumed to be in the current area.  The command returns a TRUE result
if the specified object  is  invisible,  otherwise  a  FALSE result is
returned.

See also:       INVIS, VIS, VIS?


LOOP                                              Class - Loop Command

Format:         LOOP (P1)                       {loop count}
Function:
 This command marks the start of  a LOOP section. The commands between
the LOOP and  the  corresponding  AGAIN  command  will  be executed P1
times.

See also:       AGAIN


MODE                                            Class - Player Command

Format:         MODE (P1)                       {movement mode}
Function:
 This command alters the current movement  mode  of the player. In the
game the player is restricted to WALK, FLY1 and FLY2. The CAMERA modes
and LOCK modes are only available  in  the EDITOR, therefore the value
of the new mode P1 must be in the range 1-3. Any value above this will
be interpreted as 3 and any less then 1 will be interpreted as 1.

See also:       GOTO


MOVE                                         Class - Animation Command

Format:         MOVE (P1,P2,P3)                 {x,y,z coordinates}
Function:
 This command is  animation  specific,  any  attempt  to  execute this
command on an OBJECT or  LOCAL/GLOBAL  conditions will have no effect.
The command MOVEs the members  of  the current animation (specified at
the beginning using the INCLUDE  command)  by  the specified amount in
the X, Y and Z axis.

See also:       INCLUDE, MOVETO


MOVETO                                       Class - Animation Command

Format:         MOVETO (P1,P2,P3)               {x,y,z coordinates}
Function:
 This command is  animation  specific,  any  attempt  to  execute this
command on an OBJECT or  LOCAL/GLOBAL  conditions will have no effect.
The command MOVEs the members  of  the current animation (specified at
the beginning using the INCLUDE function) to the specified position in
the X, Y and Z area.

Example:        INCLUDE (3)
                START
                MOVETO (2900,0260,4760)
                RESTART
 This condition, when triggered will move  object 3 to the coordinates
specified in the brackets following the command MOVETO.

See also:       INCLUDE, MOVE


NOTV                                          Class - Variable Command

Format:         NOTV (P1)
Function:
 This command preforms a logical NOT on the value specified, the value
P1 and the result is stored  in  the specified variable. CCR flags are
set accordingly.

See also:       ANDV, ORV


OR                                           Class - Condition Command

Format:         IF condition
                OR condition
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command combines the result  of  two  or more condition checking
commands and returns TRUE if  any  of  the  specified checks  are TRUE
otherwise a FALSE result is returned.

See also:       IF, THEN, ELSE, ENDIF, AND


ORV                                           Class - Variable Command

Format:         ORV (P1,P2)
Function:
 This command preforms a logical OR  on  the two values specified, the
value P1 is ORed with the value  P2  and if P2 is a variable specifier
the result is stored  in  the  specified  variable.  CCR flags are set
accordingly.

Example:        IF SHOT?
                THEN ORV (2,V21)
                ENDIF
 This uses Bit 2 of Variable V21 as  a  flag to say that an object has
been shot. Using this method it is possible to use a Variable to store
a number of on/off flags.  The  flags  can  be  checked using the ANDV
command.
                IF ANDV (V21,2)
                THEN commands...
                [ELSE commands...]
                ENDIF
 By ANDing V21 with 2 and not the  other way round the AND is executed
without storing the result,  therefore  it  is  possible  to check the
state of the flags without affecting them.

See also:       ANDV, NOTV


GETXPOS, GETYPOS, GETZPOS                  Class - Object Interrogator

Format:         GETXPOS (V1,P2[,P3])    {variable,object[,area]}
                GETYPOS (V1,P2[,P3])
                GETZPOS (V1,P2[,P3])
Function:
 These commands store the position of the specified object P2, in area
P3 along the X, Y or Z axis  in  the specified variable V1. If no area
is specified the current area is assumed.

Example:        GETXPOS (V21,2)
                IF VAR=?(V21,1000)
                THEN SOUND (2)
                ENDIF
 This will get object 2's X position  and will preform a sound only if
object 2 is at position 1000 in the X axis.


PRINT                                       Class - Instrument Command

Format:         PRINT ("message...",P1)         {message,instrument}
Function:
 This command allows the user  to  print  a  message to a defined TEXT
WINDOW type instrument  (see  INSTRUMENTS).  The  message  between the
quotation marks  is  printed  to  the  instrument  number  P1  if  the
instrument exists and if it is a  TEXT WINDOW type. The message can be
split into several lines (if the  TEXT  WINDOW is big enough) by using
\N to begin a new line.


RESTART                                      Class - Animation Command

Format:         RESTART
Function:
 This command is animation specific, any  attempt  to execute it on an
OBJECT or  in  LOCAL/GLOBAL  conditions  will  have  no  effect. After
executing this command execution of the animation will continue at the
position set by  the  START  command.  If  no  START  command has been
executed the RESTART command will  set  execution to continue from the
start of the animation.

See also:       START


REDRAW                                      Class - Instrument Command

Format:         REDRAW
Function:
 This command will force  an  immediate  redraw  of the FREESCAPE view
window. Any objects whose  status  have  changed  since the last frame
update will be displayed in their new state.

Example:        LOOP (10)
                TOGVIS (2)
                REDRAW
                AGAIN
 This will toggle the visibility of object  2 ten times and REDRAW the
FREESCAPE view each frame.


REMOVE                                       Class - Animation Command

Format:         REMOVE (P1)                     {object}
Function:
 This command  works  in  the  opposite  way  to  INCLUDE.  The object
specified P1 will be removed from  the  animation. This command can be
incorporated into the animation controller  eg. to remove objects from
the animation one at a time during animation. This command may only be
used in animation.


SOUND                                            Class - Sound Command

Format:         SOUND (P1)                      {sound number}
Function:
 This command will immediately preform the sound P1.

Also see:       SYNCSND


SETVAR (SET)                                  Class - Variable Command

Format:         SETVAR (P1,V2)
Function:
 This command sets the variable V2  to  the  value  P1. If V2 is not a
variable specifier then the command has no effect.


SHOT?                                     Class - Trigger Interrogator

Format:         IF SHOT?
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command checks the SHOT flag  in  the status byte of the current
object. If the object has been  shot  since the last time checked then
the command  returns  a  TRUE  result  otherwise  a  FALSE  result  is
returned. Execution of this command also  clears  the SHOT flag on the
current object.

See also:       ACTIVATED?, COLLIDED?


START                                        Class - Animation Command

Format:         START
Function:
 This command is animation specific, any  attempt  to execute it on an
OBJECT or LOCAL/GLOBAL conditions  will  have  no  effect. The command
marks the start of the  animation  command list. The instruction after
the START command will be the point  at which the RESTART command will
continue execution from. The START command  should be placed after any
INCLUDE command as INCLUDEs after the START will be executed each time
through the animation loop, this wastes time and has no useful effect.

See also:       INCLUDE, RESTART


STARTANIM                                    Class - Animation Command

Format:         STARTANIM (P1[,P2])             {animator[,area]}
Function:
 This command  will  start  an  animation  controller  going.  At  the
beginning of a game all  animation  controllers are marked as STOPPED.
To begin the animation  a   STARTANIM  command  must  be executed. The
STARTANIM command will also  re-enable  an  animation controller which
has been stopped using the STOPANIM command.

Example:        IF COLLIDED?
                THEN STARTANIM (2)
 This condition was placed  on  a  selected  object.  If the object is
collided by the player then start the second animation controller (2).

See also:       STOPANIM, TRIGANIM, WAITTRIG


STOPANIM                                     Class - Animation Command

Format:         STOPANIM (P1[,P2])              {animator[,area]}
Function:
 This command will stop an  animation  controller, no commands will be
executed on the controller  until  it  is  started using the STARTANIM
command. Upon receiving a  STARTANIM  command the animation controller
will continue execution from the  point  at which the STOPANIM command
was received.

See also:       STARTANIM, TRIGANIM, WAITTRIG


SUBVAR (SUB)                                  Class - Variable Command

Format:         SUBVAR (P1,P2)
Function:
 This command preforms a subtraction  on  the two supplied values, the
value P1 is  subtracted  from  the  value  P2.  If  P2  is  a Variable
specifier then the result of the subtraction is stored in the variable
otherwise the result is  lost  but  the  CCR  flags  are still altered
according to the result  of  the  subtraction.  Therefore  if a SUBVAR
command is preceded  by  an  IF  and  followed  by  a  THEN/ELSE ENDIF
combination, conditions  may  be  executed  depending  on  whether the
result was zero or not without altering the value of any variables.

See also:       ADDVAR, SETVAR


SYNCSND                                          Class - Sound Command

Format:         SYNCSND (P1)                    {sound number}
Function:
 This command will execute the  specified  sound  P1  in sync with the
next complete frame update. Note the  REDRAW command will also preform
a synchronised sound.

See also:       SOUND


THEN                                      Class - Trigger Interrogator

Format:         IF condition
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command checks the status of  the  ZERO  flag in the CCR. If the
contents are TRUE then the  commands  following the THEN statement are
executed until either an ELSE or ENDIF  statement is found. If an ELSE
is found the commands following it  are  ignored  up until an ENDIF or
the end of the command list. If  an ENDIF is found then normal command
execution will continue with the  following  command. The THEN command
is the only command which examines the result of a condition, so an IF
ELSE ENDIF combination without a  THEN  command will produce incorrect
results.

See also:       IF, ELSE, ENDIF, AND, OR


TIMER?                                    Class - Trigger Interrogator

Format:         IF TIMER?
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command checks the TIMER flag, the command returns a TRUE result
if a timelapse of the amount  specified  in the defaults setup section
has passed, otherwise a  FALSE  result  is  returned.  This command is
onlyreally useful in LOCAL and GLOBAL conditions as these are the only
conditions which are executed each frame, any TIME commands on objects
will only be checked when  some  form  of interaction takes place with
the object.


TOGVIS (TOG)                                    Class - Object Command

Format:         TOGVIS (P1[,P2])                {object[,area]}
Function:
 This command toggles the status  of  the  VISIBLE  flag in the status
byte of object P1 in area P2.  If  no  area is specified the object is
presumed to be in the current area.

See also:       VIS, INVIS, VIS?, INVIS?


TRIGANIM                                     Class - Animation Command

Format:         TRIGANIM (P1)                   {animator}
Function:
 This command sets the TRIGGER  flag  in  the status byte of animation
controller P1. A WAITTRIG command within the animation controller will
register this trigger. If no WAITTRIG  commands exist in the animation
controller a TRIGANIM command will have no effect on this animator.

See also:       STARTANIM, STOPANIM, WAITTRIG


UPDATEI                                     Class - Instrument Command

Format:         UPDATEI (P1)                    {instrument}
Function:
 To update instrument P1 in the Test Screen.


VAR=? (V=?)                                   Class - Variable Command

Format:         IF VAR=? (P1,P2)
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command will compare the values  of  the  P1 and P2 and return a
TRUE result if  the  values  are  equal  otherwise  a  FALSE result is
returned.

See also:       SETVAR, ADDVAR, SUBVAR, VAR>?, VAR<?


VAR>? (V>?)                                   Class - Variable Command

Format:         IF VAR>? (P1,P2)
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command will compare the values of  P1  and P2 and return a TRUE
result if the value of  P1  is  greater  then  that of P2, otherwise a
FALSE value is returned.

See also:       SETVAR, ADDVAR, SUBVAR, VAR=?, VAR<?


VAR<? (V<?)                                   Class - Variable Command

Format:         IF VAR<? (P1,P2)
                THEN commands...
                [ELSE commands...]
                ENDIF
Function:
 This command will compare the values of  P1  and P2 and return a TRUE
result if the value of  P1 is less  then that of P2, otherwise a FALSE
value is returned.

See also:       SETVAR, ADDVAR, SUBVAR, VAR=?, VAR>?


VIS?                                       Class - Object Interrogator

Format:         VIS? (P1[,P2])                  {object[,area]}
Function:
 This command checks the INVISIBLE flag  in  the status byte of object
P1 in area P2. If no area is  specified then the object is presumed to
be in the current  area.  The  command  returns  a  TRUE result if the
specified object is VISIBLE, otherwise a FALSE result is returned.

See also:       VIS, INVIS, TOGVIS, INVIS?


WAIT                                              Class - Time Command

Format:         WAIT
Function:
 This command halts processing of the  current command list and stores
information about the current command  list  on an internal stack. The
FREESCAPE processing is then allowed  to continue, processing any more
required conditions, animations and  player  movements,  when the next
frame comes around execution of  the  command  list will continue from
the command following the WAIT command.

See also:       DELAY


WAITTRIG                                     Class - Animation Command

Format:         WAITTRIG
Function:
 This command is animation specific, any  attempt  to execute it on an
object or in LOCAL/GLOBAL conditions will  have no effect. The command
will check the  TRIGGER  flag  in  the  status  byte  of the animation
controller. If the flag has been  set  by use of the TRIGANIM command,
the flag will  be  cleared  and  execution  will  continue  as normal,
otherwise execution will be stopped  at  the  WAITTRIG command and the
execution of the animation command list will be stopped. Upon reaching
the current  animation  controller  on  the  next  frame  the WAITTRIG
command is the first to  be  executed, therefore  the execution of the
animation command list is halted at  the point of the WAITTRIG command
until a TRIGANIM command sets the TRIGGER flag.

See also:       TRIGANIM, STARTANIM, STOPANIM


                       THE ANIMATION CONTROLLER

 In addition to the COMMAND language,  the FREESCAPE system includes a
further  system  for  object  control,  namely  the  ANIMATION  OBJECT
CONTROLLER. The ANIMATION OBJECT CONTROLLER  (AOC)  provides a mean of
joining a number  of  objects  together  and  preforming  movement and
animations functions on these objects. This  means  that to move a car
(for example) it is not  necessary  to  move  each  element of the car
individually for each stage of  the  movement  path but simply to join
all relevant objects that make up  the  car  in  an AOC and then every
MOVE command in the  AOC  command  list  after  the  INCLUDE list will
affect all of the objects.
 To animate an object the object  must  first be marked as a MOVEABLE,
this can be  done  by  entering  the  OBJECT  ATTRIBUTES dialogue box,
towards the bottom of the dialogue  box  is a button titled ANIMATION.
The initial state of this button  will  be STATIC. Below the ANIMATION
field in the ATTRIBUTES dialogue box  is  a START POSITION text field,
while the object is marked  as  static  this field will simply contain
the message REFER POSITION,  this  means  that  as  the  object is not
MOVEABLE it can never be moved,  therefore its start position is equal
to its current position. To mark  the  object as MOVEABLE simply click
once on the STATIC button, the button  will change to show the message
MOVEABLE and the START POSITION field  will change to show the objects
current position. The  START  POSITION  of  a  MOVABLE  object  can be
changed in the same way you would its position and size.
 Any attempt to animate a STATIC object  will be ignored (if there are
problems animating an object for any  reason it is always advisable to
check the animation state of the object first).
 AOC commands are executed every frame,  all  commands in the AOC list
will be executed in order until either  the end of the command list is
encountered or a  redraw  is  requested.  Upon  encountering  a redraw
request program execution will stop  and  the current program position
will be stored. Program execution on the AOC will then recommence from
that position on the next frame.  If  the  end  of the command list is
encountered the AOC is marked as STOPPED and can only be used again if
a STARTANIM command resets its  internal  program counter and marks it
as STARTED.
 Certain commands will, if  called  from  an  AOC,  force a redraw ie.
MOVE, MOVETO and END. REDRAW should  not  be used within an AOC, since
it will do a redraw, then  exit, forcing another redraw. Therefore any
other commands you wish to have  executed before the next frame update
must be placed before  that  command.  A  description  of the commands
available from within an AOC  may  be  found  in the FREESCAPE COMMAND
LANGUAGE section of this manual.
 It is worth noting that  although  the  animated objects will collide
with other objects in the dataset, a group of objects will behave like
a single large object, even  if  they  occupy a relatively small area.
For example, an animator controlling  two  small  objects, one at each
edge of an area, will not be able to move them passed a tall object in
between them. The objects are effectively  grouped together in a large
object that stretches between  them,  and  this  will collide with the
object in the  centre.  In  this  case,  it  is  necessary  to use two
animation controllers to move the objects individually.


                               EXAMPLES

                        TO GO TO ANOTHER AREA

 As an example we will use  object  3  which  is our DOOR and object 4
which is our DOORWAY. For simplicity  the doorway is a black RECTANGLE
which is placed close against a wall and  the door is a red CUBE which
has been "flattened" by the use  of  the  EDIT OBJECT tools and placed
close up in front of  the  doorway.  The DOORWAY (rectangle) should be
set to INVISIBLE via  the  OBJECTS  ATTRIBUTES  function both on START
STATUS and PRESENT  STATUS.  We  will  use  the  ACTIVATED? command to
"open" the door and reveal the doorway as follows:
 Enter the following condition commands for  object 3 by selecting the
CONDITION icon and selecting OBJECT 3  from  the list by clicking with
the mouse button until object 3  is highlighted and then selecting the
TICK icon. Now enter the following:
                IF ACTIVATED?
                THEN INVIS (3)
                VIS (4)
                ENDIF
 Now experiment by clicking the right mouse  button on the door in the
VIEW window. The door (object 3) should  vanish and be replaced by the
doorway (object 4). Now  enter  the  following  condition commands for
object 4 in the same way as above and enter the following:
                IF COLLIDED?
                THEN GOTO (1,2)
                ENDIF
 Now try walking towards the "doorway"  until you collide with it. You
will be transported instantly to ENTRANCE 1 in AREA 2.


                TO MAKE AN OBJECT INVISIBLE OR VISIBLE

 As can be seen by  the  previous  example,  making objects vanish and
reappear is really very simple. If, for  example, we wish an object to
become invisible when  it  is  shot  we  would  select  the  object by
clicking in the CONDITION icon, selecting the object from the list (or
by clicking on the object in the  VIEW  window if it is visible). Then
the following conditions should be entered:
                IF SHOT?
                THEN INVIS (0)
                ENDIF
 The number in the brackets following the INVIS is the object number.


                           TO MAKE A SOUND

 There are  several  different  sound  effects  within  the  FREESCAPE
system. One example would be to  have  a  sound effect when a piece of
treasure is picked up by the player.  The treasure we will refer to as
OBJECT 4. The following  commands  will  play  a  sound  as the player
activates the objects and the  object  vanishes  from the VIEW window.
Select the CONDITION icon and select  OBJECT  4 form the list (having,
of course, previously created  the  object).  Now  enter the following
conditions:
                IF ACTIVATED?
                THEN INVIS (4)
                SOUND (5)
                ENDIF
 Experiment with  different  sounds  by  changing  the  number  in the
brackets following the  SOUND  command  and  clicking  the right mouse
button on OBJECT 4 in the VIEW window to hear the effect.


                            TO USE A LOOP

 At various times during the game creation the LOOP command is needed.
One example of its use  would  be  within  an ANIMATION. The following
example will show how to animate  an  object  and  the use of the LOOP
command. Clear all data from the  VIEW  window and create a cube. This
will be object 2 (cuboid  2)  as  cuboid  1  is  the base of the area.
Select CREATE ANIMATION from   the   AREA   MENU  at   the  top of the
screen. There will be no  visible  response  but  if EDIT ANIMATION is
then selected it will be seen that  ANIMATION 1 has been created ready
for use. For the moment select  ATTRIBUTES from either the OBJECT menu
or from the SHORTCUT icons then  select  object 2. A dialogue box will
appear showing the ATTRIBUTES for object  2. Click on the window where
you see STATIC  until  the  word  MOVEABLE  appears.  Now  select EDIT
ANIMATION, select animator number 1 from  the list shown and enter the
following conditions:
                INCLUDE (2)
                LOOP (20)
                MOVE (40,0,0)
                AGAIN
 We now need something to trigger the  animation so we will select the
floor which is cuboid 1. Select  the CONDITIONS icon and select cuboid
1 in the usual manner. Now enter the following:
                IF SHOT?
                THEN STARTANIM (1)
                ENDIF
 Now shoot the floor to see the results!


                        TO CREATE AN ANIMATION

 As in the previous example HOW  TO  USE  A  LOOP it will be seen that
animation is a very simple procedure. For this example we will attempt
to move the cube  directly  to  another  position  on the VIEW window.
Create the cube and define it  as  MOVEABLE as in the previous example
and create an animator for our commands. Now select EDIT ANIMATION and
enter the following:
                INCLUDE (2)
                START
                MOVETO (4560,0200,4760)
                RESTART
 This will be activated in  the  same  way  as the previous example by
shooting the floor. Try shooting the floor to see the cube transported
to another position to  the  right  of  the  VIEW  window and slightly
lower.
 Now we will attempt something  a  little  more sophisticated. We will
attempt to animate the cube to glide  from one side of the VIEW window
to the other and back again.  To  save  time we will edit the existing
conditions. Select EDIT ANIMATION  and  reselect  the same animator to
edit. Edit the conditions to read as follows:
                INCLUDE (2)
                START
                MOVE (40,0,0)
                AGAIN
                LOOP (20)
                MOVE (-40,0,0)
                AGAIN
                RESTART
 Now shoot the  floor  and  see  the  result!  Note  that  the LOOP is
repeated after the first  AGAIN  command  and  that  the MOVE has been
modified by a minus before the  40.  This  is  to move the cube in the
reverse direction to  the  first  LOOP.  Experiment  a  while with the
coordinates after the MOVE command and see what happens.


                         HOW TO USE VARIABLES

 The format for using  a  VARIABLE  can  be  handled  in  the same way
through various types of conditions, on  an object condition we could,
for example, arrange for a variable  to  be increased to hold a higher
value when it is shot, as follows:
                IF SHOT?
                THEN ADDVAR (25,V21)
 Thus adding 25 to the variable V21.  In  a similar way a value can be
deducted from a variable using the following example:
                IF SHOT?
                THEN SUBVAR (15,V21)
 To set a  variable  to  hold  a  specified  number  we  could use the
following GENERAL condition commands:
                SETVAR (600,V21)
 This same process can be  incorporated into slightly more complicated
conditions where we want to check  the  value of the variable and then
if TRUE to set the variable to hold another value as follows:
                IF VAR>? (0,V21)
                THEN SETVAR (3000,V21)
 Thus if variable V21 holds a value  greater then 0, variable V21 will
be set to hold the value 3000.


                         MOVE ABOUT VARIABLES

 The  use  of  variables  enabled  you  to  create  a  wide  range  of
conditions, from the very simple  to  the  complicated. The system has
256 variables  available  for  use  by  the  COMMAND  LANGUAGE.  These
variables are 32-bit storage areas (that  is  they can hold numbers in
the range -2147483646 to +2147483647) which  can  be used to store and
manipulate various numerical values within the environment, eg. player
score, object position, fuel supply or a timer. The first 30 (0-29) of
these variables are used by the  FREESCAPE  II system. The contents of
these variables are updated each frame  by the system, and any changes
to the variables are so noted by the system. ie. If a variable command
were to change the  value  stored  in  variable  V0  (the view point X
position) the next displayed frame  would  move  the player to the new
specified X position. A list of  the  contents of the system variables
follows:
        00 Viewpoint X position
        01 Viewpoint Y position
        02 Viewpoint Z position
        03 Viewpoint X rotation
        04 Viewpoint Y rotation
        05 Viewpoint Z rotation
        06 Current vehicle type
        07 Current height (WALK only)
        08 Current area number
        09 Number of last area visited
        10 Distance fallen above maximum ability
        11 Number of times shot
        12 Number of times crushed
        13 Number of last SENSOR (detect only) to find you
        14 Number of times SENSED (detect only)
        15 ASCII code of last key pressed
        16 Button status at last press (1-LEFT, 2-RIGHT, 3-BOTH)
        17 Mouse X position at last press
        18 Mouse Y position at last press
        19 50hz counter for accurate timing
        20 Player firing control (see below)
        21 Number of shots fired
        22..29 Reserved
 The player firing control  variable  allows  optional  control of the
players ability to shoot. Putting  0  into  this variable disables the
players shooting completely. A value  of  1 enables shooting. Adding 2
draws lines from the edges of the  screen  to the point of firing, and
adding 4 enables the firing sound.
 Finally, adding 8 enables rapid fire - holding down the firing button
releases a continuously stream os shots. So, to enable firing of rapid
fire, but with no lines or sound, a value of 1+8 (enable + rapid fire)
=9 should be placed in this variable. At  the start of the game, it is
set to 15 (enabled,  lines,  sound  and  rapid  fire),  so it would be
necessary to include a  SETVAR  (V20,9)  in  the  startup condition to
override this.
 Parameters are passed  to  the  commands  in  brackets  following the
command itself, the  number  of  parameters  required  by  the command
varies and some have optional parameters, in the case of commands with
optional parameters (mostly object commands, where  the area number is
usually optional) the optional parameter  is  usually  the last one in
the list. All numeric parameters  may  be  given as either an absolute
value in the range -16383  to  +16384  or  as  a variable specifier in
which place the value must have a  V preceding it and is restricted to
the range 0 to 255. If  a  parameter  is given as a variable specifier
then the contents of the given variable are used as the parameter.
 Note: in the default setup dialogue box  there is an option to set an
initial condition number, this number refers to GENERAL conditions and
allows the user to have any  of the defined GLOBAL CONDITIONS executed
only once immediately after reset. This condition will then be ignored
from then on. Variable  255  is  not  cleared  when the environment is
reset and as such  could  be  very  useful  as  a  Hi-Score counter is
required.


                            SOUND EFFECTS

 The standard sound bank allows for  32 sounds. Sounds 0-6 are already
defined:
        00 Laser out    (PLAY SAMPLE 1)
        01 Shooter      (PLAY SAMPLE 2)
        02 Bump         (PLAY SAMPLE 3)
        03 Explosion    (PLAY SAMPLE 4)
        04 Ping         (FIXED SOUND)
        05 Smash        (PLAY SAMPLE 5)
        06 Clang        (PLAY SAMPLE 6)
        07 UNDEFINED    (PLAY SAMPLE 7) if exists!
              "               "
              "               "
        31 UNDEFINED    (PLAY SAMPLE 31) if exists!


                      CREATING A NEW SAMPLE BANK

 The format for the FREESCAPE II samples are as follows:
        0000 Length
        0004 Playback rate (ignored)
        0006 8-bit sample data
 Sample saved  in  RAW  8-bit  sample  format  from  most  samplers is
similar to the above (note the  contents  of the playback  rate is not
important as it is ignored anyway).  The  sample  BANK is made up of a
number of  these  samples  joined  together  as  a  linked  unit  (one
immediately following another).  A  small  utility  is supplied called
JOIN to concatenate a number of sample  files together to create a new
sample bank. The command line supplied to  the JOIN command must be of
the format:

<Sample_1_name> + <Sample_2_name> + <Sample_?_name> <Sample_BANK_name>

 Note there are no  spaces  between  each  sample  name  but the space
between the sample list and the BANK name is essential.
 To pass a command line to the programme, simply type:
        JOIN [command line] from the CLI.
 Once a new sample  bank  has  been  created  it  can  be  used in the
CONSTRUCTION KIT by passing the KIT a command line of the form:
        3DKIT -s<Sample Bank Name>
 A sample bank name  must  follow  the  -s  option immediately with no
spaces.
 If there is not enough to  memory  to  load a new, larger sample bank
within the CONSTRUCTION KIT it may  still  be  possible to use the new
bank on a runnable  game  (as  there  is  more  available  memory on a
runnable environment as the EDITOR is  not used). This can be achieved
by MAKEing the runnable  environment  with  the  standard sample bank,
there will be a file called  GAME.SAM  (where  GAME is the name of the
stand alone environment). Replace this  file  with the new sample bank
(giving it the same name ie. GAME.SAM)  and  it will then be loaded as
the environment's sample bank.


                         DEFAULT KEY CONTROLS

        O - Move forward        Q - Turn left   K - Move back
        H - Move left           P - Look up     J - Move right
        R - Move up (rise)      N - Tilt left   F - Move down (fall)
        W - Turn right          I - Face forward
        1 - Save game           L - Look down   U - U-turn
        2 - Load game           M - Tilt right  A - Activate object
        B - Select mode         V - Change mode (WALK/FLY)
                       C - Centre cursor on/off
               SPACE - Fire             ESC - Quit game


                            HINTS AND TIPS

 (1) Save regularly.
 (2) Have blank formatted disks ready for saving data.
 (3) Colour sides of  objects  that  can  never  be  seen  to colour 0
(invisible) to increase performance.
 (4) Care should be used when  entering conditions as an infinite loop
can be created effectively causing a crash. If in doubt save your data
to disk before testing a procedure you are unsure of.


                             DISK CONTENT

 The disk content are described in the README file on the actual disk.
To view this file, type README at  the DOS prompt. This file will also
detail any changes to the manual, errata, etc.


                     POSSIBLE DISK ERROR MESSAGES

                ERROR 202: In use.
                ERROR 204: Path not found.
                ERROR 205: File not found.
                ERROR 210: Invalid filename.
                ERROR 212: Wrong type.
                ERROR 213: Disk not valid.
                ERROR 214: Write protected.
                ERROR 218: Disk not mounted.
                ERROR 221: Disk full.
                ERROR 222: Cannot delete.
                ERROR 223: Cannot write.
                ERROR 224: Cannot read.
                ERROR 225: Not a DOS disk.
                ERROR 226: No disk.


                       RANGE OF ALLOWED VALUES

        Object X,Y,Z    positions:      0..8192
                        sizes:          0..8192
        Viewpoint X,Y,Z positions:      0..8192
                        rotations:      0..359
        Numbers in conditions:          -16384..+16383
        Variables:                      0..255
                  which can store:      -2147483646..+2147483645

---
Typed by Flux/Crystal and Matt