home *** CD-ROM | disk | FTP | other *** search
/ Virtual Reality Madness & More! / Virtual.Reality.Madness.And.More.1994.Disk1.iso / vrstudio / manual / ch10.txt < prev    next >
Text File  |  1993-08-12  |  37KB  |  1,027 lines

  1. ________________________
  2.  
  3. Virtual Reality Studio
  4. Part 10
  5. ________________________
  6.  
  7. FREESCAPE Command Language (FCL) Reference
  8.  
  9.  
  10.  
  11. The FREESCAPE system contains a simple language definition allowing 
  12. functions to be performed when certain conditions occur within the 
  13. FREESCAPE environment. These commands can be used in any of 3 
  14. places:
  15.  
  16. OBJECT CONDITIONS: These commands are executed when some sort of 
  17. interaction with the specified object takes place. The interaction 
  18. options are: 
  19.  
  20. SHOT? - the object is pointed to by the mouse cursor and the left 
  21. mouse button pressed, a series of lines will be seen from the 
  22. corners of the screen to the object being shot, these lines depict 
  23. a weapon (laser).
  24.  
  25. ACTIVATED? - the object is activated in a similar way to shooting 
  26. an object except that the right mouse button is used and there is 
  27. no visible effect. ( The object has to be within the Activate 
  28. distance as defined in the Defaults).
  29.  
  30. COLLIDED? - the object is collided with by either the player or an 
  31. animated object.
  32.  
  33. AREA CONDITIONS: These commands are executed each frame while the 
  34. viewpoint is within the confines of the specified area.
  35.  
  36. GENERAL CONDITIONS: These commands are executed every frame 
  37. regardless of the viewpoint position.
  38.  
  39. In the following list, P1, P2 and P3 refer to parameters 1, 2, and 
  40. 3 respectively. These can be either a literal number or a variable. 
  41. Variables are specified as followed by a variable number 0..255 
  42. (e.g. V23 for variable 23). In this case the contents of the 
  43. variable will be used as the parameter value. e.g. LOOP (P1) can 
  44. be, for example, LOOP (6) (or any other number) or LOOP (V23) which 
  45. uses the value stored in variable 23.
  46.  
  47. Parameters which must be variables are referred to as V1, V2, V3 :
  48.  
  49.      SETVAR (P1,V2) 
  50.  
  51.      shows that the second parameter must be a variable.
  52.      Optional parameters or commands are surrounded by square 
  53.      brackets[]. A list of the available commands follows along 
  54. with 
  55.      a description of the required parameters and their functions.
  56.  
  57.  
  58. ----------
  59. CONDITIONS
  60. ----------
  61.  
  62. -------------------------------------------------------------------
  63. ACTIVATED? (ACT?)                      Class - Trigger Interrogator
  64. -------------------------------------------------------------------
  65.  
  66. Format:  IF ACTIVATED?
  67.          THEN  commands...
  68.          ELSE   commands...
  69.          ENDIF
  70.  
  71. Functions: 
  72. This command checks whether the selected object has been activated. 
  73. This happens when the cursor is over the selected object and the 
  74. right mouse button is pressed.
  75.  
  76. Note: 
  77. The selected object must be within the default activate range to be 
  78. affected. This is set in the GENERAL menu, DEFAULT function.
  79.  
  80. Example:   IF ACTIVATED?
  81.            THEN INVIS (4)
  82.            ENDIF
  83.  
  84. This condition simply informs the system that if the object is 
  85. ACTIVATED then make object 4 invisible..
  86.  
  87. See Also      IF, THEN, ELSE, SHOT?, COLLIDED?
  88.  
  89.  
  90. -------------------------------------------------------------------
  91. ADVAR (ADD)                                Class - Variable Command
  92. -------------------------------------------------------------------
  93.  
  94. Format:  ADDVAR (P1,P2)
  95.  
  96. Function: 
  97. This command performs an addition on the two supplied values, the 
  98. P1 is added to the value P2, if P2 is a variable specifier then the 
  99. result of the addition is stored in the variable otherwise the 
  100. result is lost but the CCR flags are still altered according to the 
  101. result of the addition. Meaning that if an ADDVAR command is 
  102. preceded by an IF and followed by a THEN/ELSE ENDIF combination, 
  103. conditions may be executed depending on whether the result was zero 
  104. or not without altering the value of any variables.
  105.  
  106. See also       SUBVAR
  107.  
  108.  
  109. -------------------------------------------------------------------
  110. AGAIN                                          Class - Loop Command
  111. -------------------------------------------------------------------
  112.  
  113. Format:  LOOP (P1)
  114.             commands...
  115.          AGAIN
  116.  
  117. Function:
  118. This command serves to terminate a LOOP section. Upon reaching an 
  119. AGAIN command the command processor will decrement the relevant 
  120. LOOP counter and if the result is greater than zero, jump to the 
  121. relevant LOOP address (the command immediately following the 
  122. associated LOOP command).
  123.  
  124. Example:  INCLUDE(1)
  125.           START
  126.           LOOP (20)
  127.           MOVE (40,0,0)
  128.           AGAIN
  129.           RESTART
  130.  
  131. This is a simple example of using the LOOP command in animation. 
  132. The rest of the commands will be explained fully later but for now 
  133. the commands simply say: Include object 1 in the animation, Start 
  134. the sequence when triggered, LOOP 20, move the object to the 
  135. coordinates, AGAIN and restart.
  136.  
  137. See also      LOOP.
  138.  
  139.  
  140. -------------------------------------------------------------------
  141. AND                                       Class - Condition Command
  142. -------------------------------------------------------------------
  143.  
  144. Format:  IF condition
  145.          AND condition
  146.          THEN commands...
  147.          [ ELSE Commands...]
  148.          ENDIF
  149.  
  150. Function: 
  151. This command combines the result of two or more condition checking 
  152. commands and returns TRUE only if all of the specified checks are 
  153. TRUE otherwise a FALSE result is returned.
  154.  
  155. See also       IF, THEN, ELSE, ENDIF, OR
  156.  
  157.  
  158. -------------------------------------------------------------------
  159. ANDV                                       Class - Variable Command
  160. -------------------------------------------------------------------
  161.  
  162. Format:  ANDV (P1, P2)
  163.  
  164. Function:
  165. This command performs a logical AND on the two values specified, 
  166. the value P1 is ANDed with the value P2 and if P2 is a variable 
  167. specifier the result is stored in the specified variable, CCR flags 
  168. are set accordingly.
  169.  
  170. See also   ORV, NOTV
  171.  
  172.  
  173. -------------------------------------------------------------------
  174. COLLIDED? (COL?)                       Class - Trigger Interrogator
  175. -------------------------------------------------------------------
  176.  
  177. Format:  IF COLLIDED?
  178.          THEN commands...
  179.          [ ELSE command...]
  180.          ENDIF
  181.  
  182. Function:
  183. This command checks the COLLIDED flag in the status byte of the 
  184. current object, a TRUE result is returned if a collision has 
  185. occurred with this object since the last check, otherwise a FALSE 
  186. result is returned. The COLLIDED flag on the current object is 
  187. cleared upon executing this command.
  188.  
  189. Example:  IF COLLIDED?
  190.           THEN INVIS (4)
  191.           VIS (5)
  192.           ENDIF
  193.  
  194. In this condition the system checks if the object has been collided 
  195. with. If it has then object 4 becomes invisible and object 5 
  196. becomes visible. This could be used to remove a door (object 4) and 
  197. replace it with an open doorway (object 5).
  198.  
  199. See also      IF, THEN, ELSE, ENDIF, ACTIVATED?, SHOT>
  200.  
  201.  
  202. -------------------------------------------------------------------
  203. DELAY                                          Class - Time Command
  204. -------------------------------------------------------------------
  205.  
  206. Format:  DELAY (P1)
  207.  
  208. Function:
  209. This command halts all FREESCAPE functions for the specified time. 
  210. The specified time (P1) is in 60ths of a second.
  211.  
  212. Example:  DELAY (60) would halt execution for 1 second.
  213.  
  214. See also      WAIT.
  215.  
  216.  
  217. -------------------------------------------------------------------
  218. DESTROY                                     Class  - Object Command
  219. -------------------------------------------------------------------
  220.  
  221. Format:  DESTROY (P1 [,P2])           { object[,area] }
  222.  
  223. Function:
  224. This command sets the DESTROYED flag on the specified object (P1) 
  225. in the specified area (P2). If no area is specified the command 
  226. processor presumes that the specified object is in the current 
  227. area. Note - Once an object has been destroyed it is then 
  228. impossible to get the object back short of resetting.
  229.  
  230. Example:  IF SHOT?
  231.           THEN DESTROY (4,2)
  232.           ENDIF
  233.  
  234. This simply asks if the current object has been shot and if so 
  235. destroy object 4 in area 2.
  236.  
  237. See also      DESTROYED?
  238.  
  239.  
  240. -------------------------------------------------------------------
  241. DESTROYED?                              Class - Object Interrogator
  242. -------------------------------------------------------------------
  243.  
  244. Format:  IF DESTROYED? (P1 [,P2])             {object [,area]}
  245.          THEN Commands...
  246.          [ ELSE Commands...]
  247.          ENDIF
  248.  
  249. Function: 
  250. This command checks the status of the specified object and returns 
  251. a TRUE result if the object has been DESTROYED.
  252.  
  253. See also       IF, THEN, ELSE, ENDIF, DESTROY
  254.  
  255.  
  256. -------------------------------------------------------------------
  257. ELSE                                  Class - Conditional Statement
  258. -------------------------------------------------------------------
  259.  
  260. Format:  IF condition
  261.          THEN commands...
  262.          ELSE Commands...
  263.          ENDIF   
  264.  
  265. Function:
  266. This command exists only as part of an IF/THEN/ELSE/ENDIF 
  267. combination. It marks the start of commands to execute only if the 
  268. result of a previous condition was FALSE. The effectiveness of the 
  269. command relies on the correct usage of the IF and THEN commands. 
  270. For any Condition checking to work it is essential that the 
  271. Condition be preceded by an IF command and followed by a THEN and 
  272. (if required) an ELSE statement.
  273.  
  274. See also      IF, THEN, ENDIF
  275.  
  276.  
  277. -------------------------------------------------------------------
  278. END                                       Class - Condition Command
  279. -------------------------------------------------------------------
  280.  
  281. Format:  IF condition
  282.          THEN Commands...
  283.          END
  284.          [ELSE Commands]
  285.          ENDIF
  286.          Commands............
  287.  
  288. Functions:
  289. This command exits command processing before the end of the command 
  290. list is reached, it allow the user to cut short the command 
  291. execution on a particular condition being TRUE or FALSE. Used in 
  292. the above format, if the result of the Condition is true only the 
  293. commands following the THEN statement will be executed and upon 
  294. reaching the END command the processor would stop processing 
  295. commands from this list. Were there no END command the processor 
  296. would continue executing from the command following the ENDIF 
  297. statement.
  298.  
  299. Note: 
  300. If END is used within an animator the execution of the current 
  301. animation frame is ENDed and execution continues on the next frame 
  302. beginning with the command following the END command.
  303.  
  304. See also      IF, THEN, ELSE, ENDIF
  305.  
  306.  
  307. -------------------------------------------------------------------
  308. ENDGAME                                      Class - Player Command
  309. -------------------------------------------------------------------
  310.  
  311. Format:  ENDGAME
  312.  
  313. Function:
  314. This command serves to reset the environment. This can be executed 
  315. on a particular condition being TRUE or FALSE, i.e. if a counter 
  316. being used to store game time reaches zero then the game finishes.
  317.  
  318. Example:  IF COLLIDED?
  319.           THEN ENDGAME
  320.           ENDIF
  321.  
  322. This condition simply states that if the player or another animated 
  323. object collides with the selected object then end the game and 
  324. reset all the flags etc.
  325.  
  326.  
  327. -------------------------------------------------------------------
  328. ENDIF                                   Class - Condition Statement
  329. -------------------------------------------------------------------
  330.  
  331. Format:  IF Condition
  332.          THEN commands...
  333.          [ ELSE Commands...]
  334.          ENDIF
  335.  
  336. Function:
  337. This command terminates a conditional section. Upon reaching an 
  338. ENDIF command, execution continues as normal before the 
  339. IF/THEN/ELSE combination. If the result of a Condition is TRUE the 
  340. commands after the THEN statement are executed and those between 
  341. the ELSE statement and the ENDIF are ignored. If the result is 
  342. FALSE the commands between  the THEN and the ELSE are ignored and 
  343. those between the ELSE and the ENDIF are executed. In either case 
  344. unless an END command has been issued, command processing will 
  345. continue after the ENDIF statement.
  346.  
  347. See      IF, THEN, ELSE
  348.  
  349.  
  350. -------------------------------------------------------------------
  351. EXECUTE (EX)                                 Class - Branch Command
  352. -------------------------------------------------------------------
  353.  
  354. Format:  EXECUTE (P1)            { object }
  355.  
  356. Function:
  357. This command terminates command execution on the current object and 
  358. continues with the command list on object (P1). The status flags 
  359. and the position of the original object are still used for Object 
  360. Interrogator commands.
  361.  
  362.  
  363. -------------------------------------------------------------------
  364. GOTO                                         Class - Player Command
  365. -------------------------------------------------------------------
  366.  
  367. Format:  GOTO (P1 [,P2] )            (entrance [,area] )
  368.  
  369. Function:
  370. This command is used to allow player movement between the various 
  371. defined area. Upon reaching this command the player will be moved 
  372. to the ENTRANCE P1 in the AREA P2. If no area is specified the 
  373. entrance is presumed to be in the current area. If a new area is 
  374. specified, command processing will cease at this point otherwise 
  375. normal command processing will continue.
  376.  
  377. Example:  IF COLLIDED?
  378.           THEN GOTO (1,2)
  379.           ENDIF
  380.  
  381. The above example would be quite useful is it was desired that the 
  382. player, upon colliding with a doorway (the object selected) would 
  383. then be transported to Entrance 1 in Area 2
  384.  
  385.  
  386. -------------------------------------------------------------------
  387. IF                                      Class - Condition Statement
  388. -------------------------------------------------------------------
  389.  
  390. Format:  IF Condition
  391.          THEN commands...
  392.          [ ELSE Commands...]
  393.          ENDIF
  394.  
  395. Function:
  396. This command marks the start of a condition section.  Immediately 
  397. following the IF statement should be one or more condition commands 
  398. separated by either AND or OR statements. The IF command simply 
  399. serves to clear the CCR flags and prepare for the following 
  400. condition. To have any effect at all the Condition should be 
  401. followed by a THEN/ELSE combination otherwise execution will 
  402. continue after the condition regardless of the result.
  403.  
  404. See Also      THEN, ELSE, ENDIF, AND, OR
  405.  
  406.  
  407. -------------------------------------------------------------------
  408. INCLUDE                                  Class - Animation Command
  409. -------------------------------------------------------------------
  410.  
  411. Format:  INCLUDE (P1)            {object}
  412.  
  413. Function:
  414. This command is animation specific. Any attempt to execute it on an 
  415. OBJECT or in LOCAL/GLOBAL conditions will have no effect. The 
  416. command includes the specified object (if it is not already 
  417. animated) into the animation list for the current animator. This 
  418. command should be used at the very beginning of an animation before 
  419. the START command so that is only called once at the start of the 
  420. animation and never again until the environment is restarted.
  421.  
  422. See also      MOVE, START, RESTART
  423.  
  424.  
  425. -------------------------------------------------------------------
  426. INVIS (IV)                                   Class - Object Command
  427. -------------------------------------------------------------------
  428.  
  429. Format:  INVIS (P1 [,P2)            { object {,area] }
  430.  
  431. Function:
  432. This command sets the INVISIBLE flag on object P1 in the specified 
  433. area P2. if no area is specified the object is presumed to be the 
  434. current area.
  435.  
  436. Example:  IF SHOT?
  437.           THEN INVIS (9)
  438.           ENDIF
  439.  
  440. A simple condition which states that if the specified object is 
  441. shot then object 9 will become invisible.
  442.  
  443. See also      INVIS? VIS? VIS
  444.  
  445.  
  446. -------------------------------------------------------------------
  447. INVIS?                                  Class - Object Interrogator
  448. -------------------------------------------------------------------
  449.  
  450. Format:  IF INVIS? (P1 [,P2])                {object [, area] }
  451.          THEN Command...
  452.          [ ELSE Commands...]
  453.          ENDIF
  454.  
  455. Function:
  456. This command checks the INVISIBLE flag in the status byte of OBJECT 
  457. P1 in AREA P2. If no area is specified then the object is presumed 
  458. to be in the current area. The command returns a TRUE result if the 
  459. specified object is INVISIBLE, otherwise a FALSE result is 
  460. returned.
  461.  
  462. See also      INVIS, VIS, VIS?
  463.  
  464.  
  465. -------------------------------------------------------------------
  466. LOOP                                           Class - Loop Command
  467. -------------------------------------------------------------------
  468.  
  469. Format:  LOOP (P1)                {loop count}
  470.  
  471. Function:
  472. This command marks the start of LOOP section. The commands between 
  473. the LOOP and the corresponding AGAIN command will be executed P1 
  474. times.
  475.  
  476. See also      AGAIN
  477.  
  478.  
  479. -------------------------------------------------------------------
  480. MODE                                         Class - Player Command
  481. -------------------------------------------------------------------
  482.  
  483. Format:  MODE (P1)                  { movement mode}
  484.  
  485. Function:
  486. This command alters the current movement mode the player. In the 
  487. game the player is restricted to WALK, FLY1 and FLY 2. The CAMERA 
  488. modes and LOCK modes are only available in the EDITOR, therefore 
  489. the value of the new mode P1 must be in the range 1-3. Any value 
  490. above this will be interpreted as 3 and any less than 1 will be 
  491. interpreted as 1.
  492.  
  493. See also       GOTO
  494.  
  495.  
  496. -------------------------------------------------------------------
  497. MOVE                                      Class - Animation Command
  498. -------------------------------------------------------------------
  499.  
  500. Format:  MOVE (P1,P2,P3)                  {x,y,z coordinates}
  501.  
  502. Function:
  503. This command is animation specific, any attempt to execute this 
  504. command on an OBJECT or LOCAL/GLOBAL conditions will have no 
  505. effect. The command MOVEs the members of the current animation 
  506. (specified at the beginning using the INCLUDE command) by the 
  507. specified amount in the X, Y and Z axis. 
  508.  
  509. See also      INCLUDE, MOVETO
  510.  
  511.  
  512. -------------------------------------------------------------------
  513. MOVETO                                    Class - Animation Command
  514. -------------------------------------------------------------------
  515.  
  516. Format:  MOVETO (P1, P2, P3)         {x,y,z, coordinates}
  517.  
  518. Function:
  519. This command is animation specific, any attempt to execute this 
  520. command on an OBJECT or LOCAL/GLOBAL conditions will have no 
  521. effect. The command MOVEs the members of the current animation 
  522. (specified at the beginning using he INCLUDE command) to the 
  523. specified position in the X, Y and Z area.
  524.  
  525. Example:  INCLUDE (3)
  526.           START
  527.           MOVETO (2900,0260,4760)
  528.           RESTART
  529.  
  530. This condition, when triggered will move object 3 to the 
  531. coordinates specified in the brackets following the command MOVETO.
  532.  
  533. See also       INCLUDE, MOVE
  534.  
  535.  
  536. -------------------------------------------------------------------
  537. NOTV                                       Class - Variable Command
  538. -------------------------------------------------------------------
  539.  
  540. Format:  NOTV (P1)  
  541.  
  542. Function:
  543. This command performs a logical NOT on the value specified, the 
  544. value P1 and the result is stored in the specified variable. CCR 
  545. flags are set accordingly.
  546.  
  547. See also      ANDV, ORV
  548.  
  549.  
  550. -------------------------------------------------------------------
  551. OR                                        Class - Condition Command
  552. -------------------------------------------------------------------
  553.  
  554. Format:  IF Condition
  555.          OR Condition
  556.          THEN Commands...
  557.          [ELSE Commands...]
  558.          ENDIF
  559.  
  560. Function:
  561. This command combines the result of two or more condition checking 
  562. command and returns TRUE if any of the specified checks are TRUE 
  563. otherwise a FALSE result is returned
  564.  
  565. See also      IF, THEN, ELSE, ENDIF, AND
  566.  
  567.  
  568. -------------------------------------------------------------------
  569. ORV                                        Class - Variable Command
  570. -------------------------------------------------------------------
  571.  
  572. Format:  ORV (P1, P2)
  573.  
  574. Function:
  575. This command performs a logical OR on the two values specified, the 
  576. value P1 is ORed with the value P2 and if P2 is a variable 
  577. specifier the result is stored in the specified variable. CCR flags 
  578. are set accordingly.
  579.  
  580. Example:  IF SHOT?
  581.           THEN ORV (2,V21)
  582.           ENDIF
  583.  
  584. This uses Bit 2 of Variable V21 as a flag to say that an object has 
  585. been shot. Using this method it is possible to use a Variable to 
  586. store a number of ON/OFF flags can be checked using the ANDV 
  587. command.
  588.  
  589. Example:  IF ANDV (V21,2)
  590.           THEN Commands....
  591.           [ ELSE Commands...]
  592.           ENDIF
  593.  
  594. By "ANDing" V21 with 2 and not the other way round the AND is 
  595. executed without storing the result, therefore it is possible to 
  596. check the state of the flags without affecting them.
  597.  
  598. See also      ANDV, NOTV
  599.  
  600.  
  601. -------------------------------------------------------------------
  602. GETXPOS,GETYPOS,GETZPOS                 Class - Object Interrogator
  603. -------------------------------------------------------------------
  604.  
  605. Format:  GETXPOS(V1,P2[,P3])         {variable, object[,area]}
  606.          GETYPOS(V1,P2[,P3])
  607.          GETYPOS (V1,P2[,P3])
  608.  
  609. Function:
  610. These command stores the position of the specified object P2, in 
  611. area P3 along the X, Y or Z axis in the specified variable V1. If 
  612. no area is specified, the current area is assumed.
  613.  
  614. Example:  GETXPOS(V21,2)
  615.           IF VAR=?(V21,1000)
  616.           THEN SOUND (2)
  617.           ENDIF
  618.  
  619. This will get Object 2's X position and will perform a sound only 
  620. if Object 2 is at position 1000 in the X axis.
  621.  
  622.  
  623. -------------------------------------------------------------------
  624. PRINT                                    Class - Instrument Command
  625. -------------------------------------------------------------------
  626.  
  627. Format:  PRINT ("message..."P1)         (Message, instrument)
  628.  
  629. Function:
  630. This command allows the user to print a message to a defined TEXT 
  631. WINDOW type instrument (see INSTRUMENTS). The message between the 
  632. quotation marks is printed to the instrument number P1 if the 
  633. instrument exists and if it is a TEXT WINDOW type. The message can 
  634. be split into several lines (if the TEXT WINDOW is big enough) by 
  635. using /N to begin a new line.
  636.  
  637.  
  638. -------------------------------------------------------------------
  639. RESTART                                   Class - Animation Command
  640. -------------------------------------------------------------------
  641.  
  642. Format:  RESTART
  643.  
  644. Function:
  645. The command is animation specific, any attempt to execute it on an 
  646. OBJECT or in LOCAL or GLOBAL conditions will have no effect. After 
  647. executing this command execution of the animation will continue at 
  648. the position set by the START command.  If no START command has 
  649. been executed the RESTART command will set execution to continue 
  650. from the start of the animation.
  651.  
  652. See also   START
  653.  
  654.  
  655. -------------------------------------------------------------------
  656. REDRAW                                    Class- Instrument Command
  657. -------------------------------------------------------------------
  658.  
  659. Format:  REDRAW
  660.  
  661. Function:
  662. This command will force an immediate redraw of the FREESCAPE view 
  663. window.  Any objects whose status have changed since the last frame 
  664. update will be displayed in their new state.  
  665.  
  666. Example:  LOOP (10)
  667.           TOGVIS (2)
  668.           REDRAW
  669.           AGAIN
  670.  
  671. This will toggle the visibility of Object 2 ten times and REDRAW 
  672. the FREESCAPE view each frame.
  673.  
  674.  
  675. -------------------------------------------------------------------
  676. REMOVE                                      Class-Animation Command
  677. -------------------------------------------------------------------
  678.  
  679. Format:  REMOVE (P1)             (Object)
  680.  
  681. Function:
  682. This command works in the opposite way to INCLUDE.  The object 
  683. specified P1 will be removed from the animation.  This command can 
  684. be incorporated into the animation controller, e.g. to remove 
  685. objects from the animation one at a time during animation. This 
  686. command may only be used in animation.
  687.  
  688.  
  689. -------------------------------------------------------------------
  690. SOUND                                         Class - Sound Command
  691. -------------------------------------------------------------------
  692.  
  693. Format:  SOUND (P1)            { sound number }
  694.  
  695. Function:   
  696. This command will immediately perform the sound P1.
  697.  
  698. See also   SYNCSND
  699.  
  700.  
  701. -------------------------------------------------------------------
  702. SETVAR  (SET)                              Class - Variable Command
  703. -------------------------------------------------------------------
  704.  
  705. Format:  SETVAR (P1,V2)
  706.  
  707. Function:           
  708. This command sets the variable V2 to the value P1.  If V2 is not a 
  709. variable specified then the command has no effect.
  710.  
  711.  
  712. -------------------------------------------------------------------
  713. SHOT?                                 Class - Trigger Interrogator
  714. -------------------------------------------------------------------
  715.  
  716. Format:  IF SHOT?
  717.          THEN Commands...
  718.          {ELSE Commands...}
  719.          ENDIF
  720.  
  721. Function:
  722. This command checks the SHOT flag in the status byte of the current 
  723. object.  If the object has been shot since the last time checked 
  724. then the command returns a TRUE result otherwise a FALSE result is 
  725. returned.  Execution of this command also clears the SHOT flag on 
  726. the current object.
  727.  
  728. See also      ACTIVATED?, COLLIDED?
  729.  
  730.  
  731. -------------------------------------------------------------------
  732. START                                     Class - Animation Command
  733. -------------------------------------------------------------------
  734.  
  735. Format:  START
  736.  
  737. Function:
  738. This command is animation specific, any attempt to execute it on an 
  739. OBJECT or LOCAL or GLOBAL conditions will have no effect.  The 
  740. command marks the start of the animation command list.  The 
  741. instruction after the START command will be the point at which the 
  742. RESTART command will continue execution from.  The START command 
  743. should be placed after any INCLUDE command as INCLUDEs after the 
  744. START will be executed each time through the animation loop, this 
  745. wastes time and has no useful effect.
  746.  
  747. See also     INCLUDE, RESTART
  748.  
  749.  
  750. -------------------------------------------------------------------
  751. STARTANIM                                  Class- Animation Command
  752. -------------------------------------------------------------------
  753.  
  754. Format:  STARTANIM (P1[,P2})         { animator [,area]}
  755.  
  756. Function:
  757. This command will start an animation controller going.  At the 
  758. beginning of a game all animation controllers are marked as 
  759. STOPPED.  To begin the animation a STARTANIM command must be 
  760. executed.  The STARTANIM command will also re-enable an animation 
  761. controller which has been stopped using the STOPANIM command. 
  762.  
  763. Example:  IF COLLIDED?
  764.           THEN STARTANIM (2)
  765.  
  766. This condition was placed on a selected object.  If the object is 
  767. collided by the player then start the second animation controller 
  768. (2).
  769.  
  770. See also     STOPANIM, TRIGANIM, WAITTRIG
  771.  
  772.  
  773. -------------------------------------------------------------------
  774. STOPANIM                                  Class - Animation Command
  775. -------------------------------------------------------------------
  776.  
  777. Format:  STOPANIM (P1[,P2])            { animator [,area]}
  778.  
  779. Function:
  780. This command will stop an animation controller, no commands will be 
  781. executed on the controller until it is started using the STARTANIM 
  782. command.  Upon receiving a STARTANIM command the animation 
  783. controller will continue execution from the point at which the 
  784. STOPANIM command was received.  
  785.  
  786. See also   STARTANIM, TRIGANIM, WAITTRIG
  787.  
  788.  
  789. -------------------------------------------------------------------
  790. SUBVAR (SUB)                                 Class-Variable Command
  791. -------------------------------------------------------------------
  792.  
  793. Format:  SUBVAR (P1, P2)
  794.  
  795. Function:
  796. This command performs a subtraction on the two supplied values, the 
  797. value P1 is subtracted from the value P2.  If P2 is a Variable 
  798. specifier then the result of the subtraction is stored in the 
  799. variable otherwise the result is lost but the CCR flags are still 
  800. altered according to the result of the subtraction.  Therefore if a 
  801. SUBVAR command is preceded by an IF and followed by a THEN/ELSE 
  802. ENDIF combination, conditions may be executed depending on whether 
  803. the result was zero or not without altering the value of any 
  804. variables.
  805.  
  806. See also   ADDVAR, SETVAR
  807.  
  808.  
  809. -------------------------------------------------------------------
  810. SYNCSND                                       Class - Sound Command
  811. -------------------------------------------------------------------
  812.  
  813. Format:  SYNCSND (P1)               {sound number }
  814.  
  815. Function:   
  816. This command will execute the specified sound P1 in sync with the 
  817. next complete frame update.  Note the REDRAW command will also 
  818. perform a synchronized sound.
  819.  
  820. See also   SOUND
  821.  
  822.  
  823. -------------------------------------------------------------------
  824. THEN                                    Class - Condition Statement
  825. -------------------------------------------------------------------
  826.  
  827. Format:  IF Condition
  828.          THEN Commands...
  829.          [ELSE Commands... ]
  830.          ENDIF
  831.  
  832. Function:
  833. This command checks the status of the ZERO flag in the CCR.  If the 
  834. contents are TRUE then the commands following the THEN statement 
  835. are executed until either an ELSE of ENDIF statement is found.  If 
  836. an ELSE is found the command s following it are ignored up until an 
  837. ENDIF or the end of the command list.  If an ENDIF is found then 
  838. normal command execution will continue with the following command.  
  839. The THEN command is the only command which examines the result of a 
  840. condition, so an IF ELSE ENDIF combination without a THEN command 
  841. will product incorrect results.
  842.  
  843. See also   IF, ELSE, ENDIF, AND, OR
  844.  
  845.  
  846. -------------------------------------------------------------------
  847. TIMER?                                 Class - Trigger Interrogator
  848. -------------------------------------------------------------------
  849.  
  850. Format:  IF TIMER?
  851.          THEN Commands...
  852.          [ELSE Commands...]
  853.          ENDIF
  854.  
  855. Function:   
  856. This command checks the Timer flag, the command returns a TRUE 
  857. result if a timelapse of the amount specified in the defaults setup 
  858. section has passed, otherwise a FALSE result is returned.  This 
  859. command is only really useful in LOCAL and GLOBAL conditions as 
  860. these are the only conditions which are executed each frame, any 
  861. TIME commands on OBJECTS will only be checked when some form of 
  862. interruption takes place with the object.
  863.  
  864.  
  865. -------------------------------------------------------------------
  866. TOGVIS (TOG)                                 Class - Object Command
  867. -------------------------------------------------------------------
  868.  
  869. Format:  TOGVIS (P1 [,P2])                    { object [,area]}
  870.  
  871. Function:   
  872. This command toggles the status of the VISIBLE flag in the status 
  873. byte of object P1 in area P2.  If no area is specified the object 
  874. is presumed to be in the current area.
  875.  
  876. See also   VIS, INVIS, VIS?, INVIS?
  877.  
  878.  
  879. -------------------------------------------------------------------
  880. TRIGANIM                                  Class - Animation Command
  881. -------------------------------------------------------------------
  882.  
  883. Format:  TRIGANIM (P1)            { animator }
  884.  
  885. Function:
  886. This command sets the TRIGGER flag in the status byte of animation 
  887. controller P1.  A WAITTRIG command within the animation controller 
  888. will register this trigger.  If no WAITTRIG commands exist in the 
  889. animation controller a TRIGANIM command will have no effect on this 
  890. animator.
  891.  
  892. See also   STARTANIM, STOPANIM, WAITTRIG
  893.  
  894.  
  895. -------------------------------------------------------------------
  896. UPDATE                                    Class- Instrument Command
  897. -------------------------------------------------------------------
  898.  
  899. Format:  UPDATE (P1)            { instrument }
  900.  
  901. Function:   
  902. To Update Instrument (P1) in the Test Screen.
  903.  
  904.  
  905. -------------------------------------------------------------------
  906. VAR=? (V=?)                                Class - Variable Command
  907. -------------------------------------------------------------------
  908.  
  909. Format:  IF VAR=?(P1,P2)
  910.          THEN Commands...
  911.          [ELSE Commands...]
  912.          ENDIF
  913.  
  914. Function:
  915. This command will compare the values of P1 and P2 and return a TRUE 
  916. result if the value of P1 is greater than that of P2, otherwise a 
  917. FALSE value is returned.
  918.  
  919. See also   SETVAR, ADDVAR, SUBVAR, VAR>?, VAR<?
  920.  
  921.    
  922. -------------------------------------------------------------------
  923. IF VAR>? (V>?)                             Class - Variable Command
  924. -------------------------------------------------------------------
  925.  
  926. Format:  IF VAR>? (P1,P2)
  927.          THEN Commands...
  928.          [ELSE Commands...]
  929.          ENDIF
  930.  
  931. Function:
  932. This command will compare the values of P1 and P2 and returns a 
  933. TRUE result if the value of P1 is greater than that of P2, 
  934. otherwise a FALSE result is returned.
  935.  
  936. See also   SETVAR, ADDVAR, SUBVAR, VAR>?, VAR=?
  937.  
  938.  
  939. -------------------------------------------------------------------
  940. IF VAR<? (V<?)                             Class - Variable Command
  941. -------------------------------------------------------------------
  942.  
  943. Format:  IF VAR<? (P1,P2)
  944.          THEN Commands...
  945.          [ELSE Commands...]
  946.          ENDIF
  947.  
  948. Function:
  949. This command will compare the values of P1 and P2 and returns a 
  950. TRUE result if the value of P1 is less than that of P2, otherwise a 
  951. FALSE result is returned.
  952.  
  953. See also   SETVAR, ADDVAR, SUBVAR, VAR>?, VAR=?
  954.  
  955.  
  956. -------------------------------------------------------------------
  957. VIS (V)                                      Class - Object Command
  958. -------------------------------------------------------------------
  959.  
  960. Format:  VIS (P1 [,P2])            { object [,area] }
  961.  
  962. Function:
  963. This command clears the INVISIBLE flag on OBJECT P1 in the 
  964. specified AREA P2, making it visible.  If no area is specified the 
  965. object is presumed to be in the current area.
  966.  
  967. See also   INVIS?, VIS?, INVIS, TOGVIS
  968.  
  969.  
  970. -------------------------------------------------------------------
  971. VIS?                                    Class - Object Interrogator
  972. -------------------------------------------------------------------
  973.  
  974. Format:  VIS? (P1 [P2])            { object [area] }
  975.  
  976. Function:   
  977. This command checks the INVISIBLE flag in the status byte of OBJECT 
  978. P1 in AREA P2.  If no area is specified then the object is presumed 
  979. to be in the current area.  The command returns a TRUE result if 
  980. the specified object is VISIBLE, otherwise a FALSE result is 
  981. returned.
  982.  
  983. See also   VIS, INVIS, TOGVIS, INVIS?
  984.  
  985.  
  986. -------------------------------------------------------------------
  987. WAIT                                          Class - Time Command
  988. -------------------------------------------------------------------
  989.  
  990. Format:  WAIT
  991.  
  992. Function:
  993. This command halts processing of the current command list and 
  994. stores information about the current command list on an internal 
  995. stack.  The FREESCAPE processing is then allowed to continue, 
  996. processing any more required conditions, animations and player 
  997. movements, when the next frame comes round execution of the command 
  998. list will continue from the command following the WAIT command.
  999.  
  1000. See also   DELAY
  1001.  
  1002.  
  1003. -------------------------------------------------------------------
  1004. WAITTRIG                                  Class - Animation Command
  1005. -------------------------------------------------------------------
  1006.  
  1007. Format:  WAITTRIG
  1008.  
  1009. Function:
  1010. This command is animation specific, any attempt to execute it on an 
  1011. 0BJECT or in LOCAL or GLOBAL conditions will have no effect.  The 
  1012. command will check the TRIGGER flag in the status byte of the 
  1013. animation controller.  If the flag has been set by use of the 
  1014. TRIGANIM command, the flag will be cleared and execution will 
  1015. continue as normal, otherwise execution will be stopped at the 
  1016. WAITTRIG command and the execution of the animation command list 
  1017. will be stopped.  Upon reaching the current animation controller 
  1018. the next frame the WAITTRIG command is the first to be of the 
  1019. WAITTRIG command until a TRIGANIM command sets the TRIGGER flag.
  1020.  
  1021. See also   TRIGANIM, STARTANIM, STOPANIM   
  1022.  
  1023.  
  1024.  
  1025. *** END ***
  1026.  
  1027.