Short:    Graphic Adventure Authoring Language 2.2
Author:   pethu@hotmail.com
Uploader: pethu@hotmail.com
Type:     game/role
Replaces: Graal2a.lha




                              ============
                               GRAAL  2.2
                              ============


                          Contents:

                          INTRODUCTION
                          DISTRIBUTION
                          COPYRIGHT NOTICE
                          GRAAL REGISTRATION
                          RELEASE NOTES
                          QUICK-START FOR OLD USERS
                          BUG FIXES AND NEW FEATURES



                              INTRODUCTION
                              ============

GRAAL is a script-based Graphic Adventure Authoring Language, delivered to
your electronic doorstep complete with an editor and other development
tools, a demo adventure, and more documentation than you can shake a
pair of strong eye-glasses at.



                              DISTRIBUTION
                              ============

GRAAL 2.2 is delivered on 4 disks.

The GRAAL aminet archives should be unpacked to a common drawer on
HD or in RAM, or to floppies named as follows:

  Graal2a.lha --> "GRAAL 2.2 - Disk A"
  Graal2b.lha --> "GRAAL 2.2 - Disk B"
  Graal2c.lha --> "GRAAL 2.2 - Disk C"
  Graal2d.lha --> "GRAAL 2.2 - Disk D"

Anyone equipped with the C= installer program can then use the "HD_Install"
icon found on Disk A to install the system to hard disk, or to update an
existing development directory.



                            COPYRIGHT NOTICE
                            ================

GRAAL 2.2 is shareware. Copyright (c) 1997 Per Thulin.

This package may be freely distributed, as long as nothing except
distribution costs are charged. All files must be kept together, either
in the original, unaltered archives, or as a full hard disk installation
done with the installer.

The GRAAL_2 driver program may be distributed on its own and for free
as part of your own adventure, even commercially. There is no license
fee - however, you should register (see below).

The registered user's personal key file, graal.key, must no longer be copied
or re-distributed in any way. (This is a change from earlier versions, 
which required the keyfile to be delivered as part of an encrypted game.
This is no longer necessary.)

You are specifically forbidden to use any of the example material -
characters, story, graphics or sound - in your own adventures.

I take no responsibility for any loss or damage that may result from the
use of this software.




                           GRAAL REGISTRATION
                           ==================

The shareware version of GRAAL is not crippled in any way.

However, if you want to distribute your adventures, you will probably
want the following:

* A way to copy the delivery files to a test directory for final tests.

* A way to compress the data to be able to put more on each floppy.

* A way to encrypt all scripts, graphics, and sound files to prevent
  people from finding the solution to the game too easily.

If you register, you will receive a personal keyfile which enables you
to use the GPRO program to do all of the above. It also enables you to
switch off certain developer functions in the version of GRAAL you
distribute to make it even safer - and harder to crack.

As an added bonus, your name appears in lights on the loading screen, 
from which it cannot be removed - an extra copyright protection, you
might say.

The keyfile will continue to work with any new versions uploaded
to the Aminet. Updates are thus easily accessible and free of charge.

You are also put on a mailing list, and will receive an e-mail GRAAL
newsletter from time to time (provided you are connected to the 'net).

Registering is as easy as sending 150 SEK (swedish crowns), or the
equivalent of £ 15 (British pounds), in cash to me:


                            Per Thulin
                            Malmtorgsgatan 18
                            S-653 40  KARLSTAD
                            SWEDEN

     ---------------------------------------------------------------

     So, print out the file "registration.form" NOW and get mailin'!

     ---------------------------------------------------------------




                          SPECIAL MANUAL OFFER
                          ====================

Now there is a 90-page, laser-printed, indexed and illustrated version of
the newly revised manual available. Already registered users are hereby
offered to buy this manual in a convenient and terribly inexpensive way:
Just send me five (5) empty, 3.5" DD diskettes along with your complete
name and address, and the manual will be along shortly.

(Non-registered users can not get the manual separately, but must pay the
higher shareware fee as stated on the shareware registration form.)




                              RELEASE NOTES
                              =============


This version has been tested on:

* A1200 68030/50/50MHz, 16+2 MB RAM, Workbench 3.0
* A600 68000/7MHz, 2+2MB RAM, Workbench 2.05
* UAE/WIN Amiga Emulator 0.6.8 running under Windows 95 on a
  Pentium 133MHz PC (Workbench 2.05).




                        QUICK-START FOR OLD USERS
                        =========================

Due to all the new features, some of which puts extra straing on the
grahics handling, it is probably wise to recommend a minimum of 2MB RAM
for running GRAAL adventures in the future.

Just want to update and go on typing on your own adventure? OK. As usual, 
I've kept the script changes needed to a minimum:

1)  Copy the new GRAAL_2, GRAAL_Editor, GRAAL.guide, GPRO, GREP, and GDC
    to your development directory.

    If you have Commodore's installer program, use the HD_Install
    script supplied on disk A to do this!

    Delete any old, renamed GRAAL driver programs floating around...


New statement syntax means you have to make small additions to a
couple of statements in graal.main.

If you use the values suggested below, the game will behave exactly the
same as before.


2)  Just below the MAX_DACT: statement, put a

    MAX_ACTION: 120

    statement. This defines the maximum number of ACTION: statements that
    can be used in room and section scripts.


3)  Add 10 to the current value of you N_GLOBALBOBS: statement. (The concept
    of the first 10 images being reserved for "system BOBs" is no more...)


4)  Put the following at the end of your COMMAND_AREA: statement:

    ;NORMAL


5)  Put the following at the end of each VERB_ZONE: statement:

    ;0;0; 

    (Yes, that's right - don't put anything but a blank after the last ";"
    until you've read about what's supposed to be there!)


6)  Change all REMOVE commmands to PUT - they're exactly the same, but
    PUT is what it does, and so is less confusing. (The REMOVE command will
    still be accepted by the driver, but it is spotted by the syntax checker
    in the Editor.)


7)  Change all BG_IFF: statements to BACKDROP: for the same reason.
    (The BG_IFF: statement will still be accepted by the driver, but
    it is spotted by the syntax checker in the Editor.)


8)  IF you want to use the new 3D scaling features, you MUST put a CHAR:
    and an OBJECT: statement in graal.main for your main character.


9)  If you have CHAR: statements, read about the new parameters in the
    on-line reference, and set the height, width, etc. for each to the
    same values as those specified in your  CHARACTER_HEIGHT:, 
    CHARACTER_WIDTH:, CHARACTER_COL:, and WALK_SPEED: statements. Once
    you have done that, you can delete those four statements.


10) Examine the second last parameter of your DLG_LAYOUT: statement, and
    add the same value as an additional, last parameter. For example, if
    the DLG_LAYOUT: statement currently ends with:

    ...;8;3

    it should now end

    ...;8;3;8


11) The player interface of the demo adventure has been revamped using all
    the latest goodies, so I strongly suggest you install it and have a
    look. (Then go ahead and steal the techniques ;)




                        ==========================
                        BUG FIXES AND NEW FEATURES
                        ==========================


Editor
======


* "Array Subscript out of range" message when trying to edit a line in a
  PATH: statement directly after creating it from the "Insert statement?"
  list fixed. (Phew!)



* Bug in syntax check of IFEXISTS condition fixed.



* Bug in syntax check fixed: Editor crashed in extremely small scripts.



* Bug in script template creation fixed: Change counter is now set to number
  of rows in template, so it can be saved with the "Save" command immediately
  upon creation.



* Vertical and horisontal scroll buttons added.



* The window display is now continually updated to show new portions of the
  file as you drag the scroll gadgets.



* New "File" button [F7] added to the parameter editor window. Depending on
  the statement or command, different filters are used in the file requester
  to make it easier to find the file you want to include. Alter the filter
  tooltypes as described above to suit your file naming standards.



* New "3D" button [F8] also added to edit the 3D scaling zones of the 3D:
  statement.



* New <RUN> button (the one with the small GRAAL icon) [F1] starts GRAAL_2
  if it is found in the same directory as the editor. You can specify another
  name for GRAAL_2 using the tooltypes - see below.



* Function key shortcuts added to the "quick locate" buttons:

  <OBJECT:>       [F2]
  <DACT:>         [F3]
  <ACTION:>       [F4]
  <LINE:>         [F5]



* New "Create Report" menu item [Amiga]+[G] starts GREP and then loads the
  resulting graal.report file into a new window.



* <Continue> button in the syntax error message box allows you to step
  through, view and count the errors in a script file in one go.



* Selecting and placing images in the parameter editor now also handles
  flipped still images (prefixed with "//") correctly. Still can't help
  you with animations, though - not surprising :)



* When editing the character position relative a new object, the object
  itself is now shown on screen directly - previously, you had to save
  the script and go back into the parameter editor a second time for the
  object to show up.



* Floors and paths are now shown when editing exit points.



* When the Editor gets confused about which room file to use when loading
  graphics, it will now use the "load room" requester. So now you can select
  the correct room with the aid of the room description instead of just
  the file name.



* Various "graphical editing" functions have been updated. An online helptext
  also appears when editing graphics to tell you about the keys and features
  available.



* Tooltypes!!!

  SCREEN=WB|NTSC|PAL  WB     (or WORKBENCH) screen opens in same mode as
                             Workbench screen (AGA only)

                      NTSC   screen opens in NTSC 640x200 mode regardless
                             of Workbench etc. (AGA only)

                      PAL    screen opens in PAL 640x256 mode regardless
                             of Workbench (AGA only)

  GRAAL=name          The name of the GRAAL driver program started with
                      the <RUN!> button or the "Run GRAAL" command in the
                      GRAAL menu.

  IMAGEFILTER=filter  The filter pattern used when selecting an image file
                      using the <File> button in the parameter editor.
                      Default: #?.pic|#?.iff|#?.i16|#?.i32|#?.i64

  TRACKFILTER=filter  The filter pattern used when selecting a tracker module
                      using the <File> button in the parameter editor.
                      Default: #?.trk|#?.track|#?.mod|#?.sng

  SAMPLEFILTER=filter The filter pattern used when selecting a sample file
                      using the <File> button in the parameter editor.
                      Default: #?.snd|#?.raw|#?.8svx

  Note: do not surround the alternatives in the filter specifications
  with brackets - these will be added by the Editor.

  CHECKONSAVE=YES|NO  If this switch is set to YES, script files will be
                      checked with the syntax checker before they are saved.
                      If the syntax error message box appears and you press
                      the <Cancel> button, the file will not be saved. If
                      you ignore any errors by pressing the <Continue> button
                      instead, the file will be saved with the errors still
                      there.

  PAINTAPP=paintprog  This sets the path, name and command line arguments of
                      a paint application that can then be launched from the
                      Editor's GRAAL menu. If you use a paint program that
                      allows you to specify a file name as an argument on
                      the command line, you can put "{f}" in this tooltype.
                      This will open a file requester, allowing you to select
                      the picture to be edited, before the paint program is
                      started.

                      Example: To start DPaint from GRAAL, use a tooltype
                      similar to this:

                      PAINTAPP=path:DPaint C W N U LOAD={f}



Driver
======

* Finally got rid of that ugly white dot in the middle of the cursor.
  If you still want a dot, design your own cursor - with a dot in it...



* ANIM: statement now accepts PTRN specification.



* Bug in OMOVE with a PTRN specification fixed.



* HIDEEXIT works now! (Didn't anybody notice it didn't???)



* Minor bug fixes to the sentence box display for inventory object names
  and direct command names.



* Verb zones can now be highlighted when the cursor moves over them and/or
  when the player clicks them. (VERB_ZONE: statement addition.)



* You can assign keyboard shortcut keys to verbs. When the player presses
  the keyboard key, GRAAL acts as if the verb zone had been clicked.
  (VERB_ZONE statement addition.) Note that any definitions made override
  the default developer and player shortcut keys ([G], [Q], [S], and so on), 
  so think about what key is assigned to what task.



* The command area screen can (optionally) be double buffered to avoid
  flickering when using graphics in the command area. (COMMAND_AREA:
  statement addition.)



* Images can be pasted onto the command area (COMGR command).



* The walking speed can be changed temporarily (WALK_SPEED command).



* Font handling routines have changed completely. This means FONTS: is no
  longer re-assigned to RAM:Fonts, so all your normal fonts are available
  for other applications while the GRAAL driver is running.



* Bug in SAMLOAD command fixed: Didn't reload the same sample after SAM NO
  had been executed in between. Also, there was a "glitch" in the playing
  of tracker modules while using the SAMLOAD command - not anymore.



* Character offset from an object can now be made to include the character's
  width into the calculation. (Previously, the CHARACTER_WIDTH: parameter
  wasn't used for anything at all!)



* The different controllable characters in multiple-character games can now
  have their own heights, widths, speeds, and text offsets. (CHAR: statement
  addition.)



* Controllable characters can be automatically scaled down to 25% of the
  original size (half the height) to match the perspective of the backdrop
  pictures. The scaling zones used can be set per room. (3D: statement.)



* The mouse cursor can be stopped from disappearing during the execution of
  timed events (TCURS command).



* You can enter your own help text with a

  SYSTEM_TEXT: 0;"Help text\second line of help text..."

  statement. The text appears in the scene area when the player presses the
  [Help] key.



* The dialogue area can be set up so that the line currently under the
  mouse cursor is highlighted. (DLG_LAYOUT: statement addition.)



* You can decide whether the currently controlled character will be spotted
  by the mouse cursor or not (SELECT_CHAR: statement).



* TITLE command now accepts hires and laced screens. (Still no AGA -
  you'll have to make do with good ol' HAM6.)



* HAM6 TITLE screens now fade to black in a nicer way. (They still can't
  be faded in FROM black, though.)



* 2.1 bug in display of LINE: $... fixed.



* COMAREA ON|OFF command lets you switch the display of the command area
  on and off in an easy way.



* You can now start and end a dialogue (DSET, EDLG) while the command
  area is invisible (that is, between COMAREA OFF and COMAREA ON).



* Bugfix in cutscene indicator routine fixed: Cutscene indicator should
  be OK regardless of its position in the command area now.



* It is now possible to construct games where the player can save the came
  from any position - witin a dialogue, or from a room without a visible
  command area. The new demo shows how to do this with a customised
  save/load room. With the built-in requester, it's even simpler.



* Bug in IFCBOB with multiple characters fixed. When testing character
  bob numbers with IFCBOB, you should always use the image numbers used by
  character number 1. For example, if image 14 "belongs" to character 1, 
  doing a CBOB 14 with character 2 active should show the corresponding
  image for character 2, and IFCBOB 14 should subsequently be TRUE.
  Well, in 2.1 it wasn't.


* New MAX_ACTION: statement allows you to define the number of ACTION:
  statements that can be used in .section and .room scripts.



gpro
====

* When using an alternate diskinfo file (called something other than
  diskinfo.graal), marked with the "no encryption" asterisk, the wrong
  diskinfo file was copied to the test directory. Now fixed.



gdc
===

* If you exceed the space available on a disk - that is, define too many
  files for that disk in diskinfo.graal - the meters now show by how
  much. (The "critical line" is shown in red. If the files on the disk
  are mainly large ones, you MAY get away with one or two "nudges" in the
  red - but no more than that!)


* Pauses between disk swaps and at the end of the copying procedure has
  been added. This is to prevent people from responding to the prompts
  too soon, removing the diskettes while the drive is in fact still busy.



GREP - GRAAL Report Tool
========================

* This program checks through your adventure, cross-references files and
  diskinfo.graal, and provides you with a lot of useful information. It
  can be run as a stand-alone utility from a CLI shell, but is also
  integrated into the Editor.



Demo adventure
==============

The demo adventure has been updated to show off the command area graphic
features, customised save/load screens, and sound effects.



Documentation
=============

The documentation has been updated - again. These points are especially
important:



* DO NOT DISPLAY ORIGINAL AND FLIPPED VERSIONS OF THE SAME IMAGE AT THE
  SAME TIME. The collision detection, screen updating and so on will become
  unpredictable. If you NEED the two orientations simultaneously, you have
  to make each a proper image and store them in the image bank using BOBS:
  statements in the normal way.



* The text for the FOLLOW command stated that you may have to place a
  character that was following the main character inside a floor before you
  SWITCH to it. This problem was eliminated in 2.1 already - don't worry
  about it!



* The width and height in the parameters of ...BOBS: statements and commands
  is actually the true width+1 and the true height+1, respectively. The
  parameter editor gives you the proper values automatically. Those of you
  who specify images manually may have been puzzled by this.



* A description of the syntax of pattern files has been added to the manual, 
  along with loads of other information to make it a more complete source of
  information on the capabilities of GRAAL.



KNOWN BUGS
==========

* I have encountered exactly 1 (one) sample file that doesn't compress
  correctly in gpro. Nothing much I can do about it, and it's no big deal -
  if a sound sample in a compressed game sounds awful, just mark it with
  an * in the diskinfo.graal file to stop it from being compressed.

* There is a bug in the tracker player commands I switched to in release 2.1, 
  which means the "stop song" command 0FFE does no longer work. When the tune
  starts over, it may also have a strange tempo. One way of working around
  this and make the song play only once is to put an empty block last in the
  song, and have that block repeat by jumping to itself with a 0B "jump"
  command instead.

* If you have a 68030 processor or better, you may have to issue a

  > CPU NOCACHE NOBURST

  command from a CLI shell before using the editor. Otherwise, graphics
  may become garbled when you use the graphical editing functions -
  Occasionally, not all parts of your images will be shown correctly.
  ( Boy, did I have a hard time figuring out the cause of this one!!! :| )
