home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / game / role / Graal2a.readme < prev    next >
Encoding:
Text File  |  1997-03-06  |  37.1 KB  |  1,115 lines

  1. Short:    Graphic Adventure Authoring Language 2.0
  2. Author:   pethu@hotmail.com
  3. Uploader: pethu@hotmail.com
  4. Version:  2.0
  5. Type:     game/role
  6. Replaces: game/role/Graal2a.lha
  7. Requires: 1.5 MB of free RAM, WB 2.0 or above, amigaguide.library
  8. Action:   PAL
  9.  
  10.  
  11. GRAAL 2.0 - Disk A
  12.  
  13. GRAAL_2 driver program and first part of demo adventure
  14.  
  15. !!                                                                         !!
  16. !! QUICK-START FOR OLD USERS CHANGED SINCE THE LAST BETA RELEASE - READ IT !!
  17. !!                                                                         !!
  18.  
  19.  
  20.                               ============
  21.                                GRAAL  2.0
  22.                               ============
  23.  
  24.  
  25.                           Contents:
  26.  
  27.                           INTRODUCTION
  28.                           GRAAL REGISTRATION
  29.                           DISTRIBUTION
  30.                           QUICK-START FOR OLD USERS
  31.                           NEW FEATURES SINCE 1.2
  32.                           CHANGES IN BEHAVIOUR SINCE 1.2
  33.                           CHANGES SINCE 2.0 BETA 1
  34.                           BUG FIXES FROM 1.2
  35.                           BUG FIXES FROM 2.0 BETA 1
  36.                           BUGS LEFT IN
  37.                           FUTURE ENHANCEMENTS
  38.  
  39.  
  40.  
  41.                               INTRODUCTION
  42.                               ============
  43.  
  44. GRAAL is a script-based Graphic Adventure Authoring Language, delivered to
  45. your electronic doorstep complete with an editor and other development
  46. tools, a demo adventure, and more documentation than you can shake a
  47. pair of strong eye-glasses at.
  48.  
  49. And here it is at last - The OFFICIAL GRAAL 2.0 release. That's right, no
  50. more beta versions for a while!
  51.  
  52. To keep all you faithful, patient (and registered) people happy, I've also
  53. thrown in a couple of new goodies for ya since last time around (and thus, 
  54. I may have introduced a whole new set of bugs to replace the ones taken
  55. out. Oh well...)
  56.  
  57. * Compression/encryption routines for ALL game files are in place.
  58.   (Only for registered users, though...)
  59.  
  60. * Flipping images doesn't have to involve hexadecimal maths anymore.
  61.  
  62. * A new EXEC command makes it possible to trigger external programs from
  63.   within GRAAL.
  64.  
  65. How's that for a worthwhile bunch of improvements? Read more about it
  66. under "CHANGES..."!
  67.  
  68.                            COPYRIGHT NOTICE
  69.                            ================
  70.  
  71. GRAAL 2.0 is shareware and copyright (c) 1997 Per Thulin.
  72.  
  73. This package may be freely distributed, as long as nothing except
  74. distribution costs are charged.
  75.  
  76. All files must be kept together, either in the original, unaltered
  77. archives, or as a proper disk installation done with the installer.
  78.  
  79. The GRAAL_2 driver program may be distributed on its own and for free
  80. as part of your own adventure, even commercially. There is no license
  81. fee - however, you should register (see below).
  82.  
  83. The registered user's personal key file, graal.key, must no longer be copied
  84. or re-distributed in any way. (This is a change from earlier versions, 
  85. which required the keyfile to be delivered as part of an encrypted game.
  86. This is no longer necessary - the only program using the keyfile is GPRO.)
  87.  
  88. You are specifically forbidden to use any of the example material -
  89. characters, story, graphics or sound - in your own adventures.
  90.  
  91.  
  92.  
  93.                            GRAAL REGISTRATION
  94.                            ==================
  95.  
  96. The shareware version of GRAAL is not crippled in any way.
  97.  
  98. However, if you want to distribute your adventures, you will probably
  99. want the following:
  100.  
  101. * A way to copy the delivery files to a test directory for final tests.
  102.  
  103. * A way to compress the data to be able to put more on each floppy.
  104.  
  105. * A way to encrypt all scripts, graphics, and sound files to prevent
  106.   people from finding the solution to the game too easily.
  107.  
  108. If you register, you will receive a personal keyfile which enables you
  109. to use the GPRO program to do all of the above. It also enables you to
  110. switch off certain developer functions in the version of GRAAL you
  111. distribute to make it even safer - and harder to crack.
  112.  
  113. As an added bonus, your name appears in lights on the loading screen, 
  114. from which it cannot be removed - an extra copyright protection, you
  115. might say.
  116.  
  117.        ----------------------------------------------------------
  118.  
  119.        NOTE: Whenever you use GPRO to compress and encrypt games, 
  120.        you must use the GRAAL driver version that matches the
  121.        GPRO version. GPRO 2.0-treated games will only run using
  122.        the GRAAL 2.0 driver!
  123.  
  124.        ----------------------------------------------------------
  125.  
  126.  
  127. The keyfile will continue to work with any new versions uploaded
  128. to the Aminet. Updates are thus easily accessible and free of charge.
  129.  
  130. You are also put on a mailing list, and will receive an e-mail GRAAL
  131. newsletter from time to time (provided you are connected to the 'net).
  132.  
  133. Registering is as easy as sending 150 SEK (swedish crowns), or the
  134. equivalent of £ 15 (British pounds), in cash to me:
  135.  
  136.  
  137.                             Per Thulin
  138.                             Malmtorgsgatan 18
  139.                             S-653 40  KARLSTAD
  140.                             SWEDEN
  141.  
  142.  
  143.  
  144.  
  145.                               DISTRIBUTION
  146.                               ============
  147.  
  148. The system is now delivered on 4 disks.
  149.  
  150. The aminet archives should be unpacked to a common drawer on HD or in RAM, 
  151. or to floppies named as follows:
  152.  
  153. graal2a.lha --> "GRAAL 2.0 - Disk A"
  154. graal2b.lha --> "GRAAL 2.0 - Disk B"
  155. graal2c.lha --> "GRAAL 2.0 - Disk C"
  156. graal2d.lha --> "GRAAL 2.0 - Disk D"
  157.  
  158. Anyone equipped with the C= installer program can then use the "HD_Install"
  159. icon found on Disk A to install the system to hard disk, or to update an
  160. existing development directory.
  161.  
  162.  
  163.  
  164.  
  165.                        QUICK-START FOR OLD USERS
  166.                        =========================
  167.  
  168. Just want to update and go on typing on your own adventure? OK.
  169.  
  170. 1) Copy the new GRAAL_2, GRAAL_Editor, GRAAL.guide, GPRO, and GDC to
  171.    your development directory.
  172.  
  173.    If you have Commodore's installer program, use the HD_Install
  174.    script supplied on disk A to do this!
  175.  
  176.    Delete any old, renamed GRAAL driver programs floating around...
  177.  
  178. 2) To use the GRAAL editor, make sure amigaguide.library is in your
  179.    LIBS: drawer.
  180.  
  181. 3) If you have a VERB_TEXT: 10;... statement in your graal.main script, 
  182.    change it to VERB_TEXT: 999;...
  183.  
  184. 4) If you have used DACT: statements in section scripts with GRAAL 1, 
  185.    refer to the appropriate section below.
  186.  
  187. 5) Consider putting in a MAX_DLG: statement in graal.main. See graal.guide
  188.    for details on how and why...
  189.  
  190. 6) Registered users: Go through the diskinfo.graal file(s) and put a space
  191.    and an asterisk after the following file entries:
  192.  
  193.    - The driver program (GRAAL_2 or the renamed copy)
  194.    - diskinfo.graal
  195.    - FONTS
  196.    - all user documentation files
  197.    - all icon (.info) files
  198.  
  199.    This stops GPRO from compressing and encrypting these files.
  200.    Read more in "prod.text".
  201.  
  202. 7) Continue with your work. (That wasn't too bad, was it? :)
  203.  
  204. 8) Read the rest of this file when you feel up to it!
  205.  
  206.  
  207.  
  208.  
  209.                          NEW FEATURES SINCE 1.2
  210.                          ======================
  211.  
  212. For detailed descriptions, see the on-line reference. In the overviews
  213. of statements, commands and conditions, all new or significantly
  214. enhanced things have been marked with the text *NEW* next to the brief
  215. description.
  216.  
  217. Below, most new statements and commands are shown in parentheses.
  218.  
  219. By the way, thanks to David Putzier and Evert-Jan Slypen for some good
  220. suggestions (without which GRAAL 2 would have been smaller and out much
  221. sooner ;)
  222.  
  223.  
  224.  
  225. EHB Mode
  226. --------
  227.  
  228. * Use 64 colour graphics in the scene area with the EHB (Extra Halfbrite)
  229.   mode. (N.B.: AGA modes still not supported. Although it wasn't stated
  230.   in the documentation for GRAAL 1, you may also use HAM6 for TITLE screens
  231.   - you probably noticed this possibility in the demo adventure.)
  232.  
  233.  
  234.  
  235. Command and dialogue area layout
  236. --------------------------------
  237.  
  238. Everything in the graphics of the player interface is now customisable:
  239.  
  240. * The sizes of the scene and command/dialogue areas can be changed, and
  241.   also the method GRAAL uses when switching between them.
  242.  
  243.   ( SWITCH_MODE:, AREA_SIZES: )
  244.  
  245. * The number, placement and meanings of verbs.
  246.  
  247.   ( N_VERBS:, VERB_TEXT:, VERB_ZONE: )
  248.  
  249. * The size and number of rows and columns of the inventory display, 
  250.   and whether to display inventory as text or icons.
  251.  
  252.   ( INV_LAYOUT: )
  253.  
  254. * The placement and size of the sentence area.
  255.  
  256.   ( SENTENCE_LAYOUT: )
  257.  
  258. * The size and number of rows in the dialogue lines list.
  259.  
  260.   ( DLG_LAYOUT: )
  261.  
  262. * The size, position and appearance of list scroll arrows.
  263.  
  264.   ( INV_UP:, INV_DOWN:, DLG_UP:, DLG_DOWN: )
  265.  
  266. * The size, position and appearance of the cutscene indicator.
  267.  
  268.   ( CUTSCENE_LAYOUT: )
  269.  
  270. * The fonts used - any font should go for anything, as long as the
  271.   layout is altered to make room for what you have in mind.
  272.  
  273.   NOTE: This does not mean you can use more fonts simultaneously -
  274.   just that the four fonts defined in GRAAL can be any fonts you like.
  275.  
  276. * The mouse pointer shapes.
  277.  
  278.   ( ARROW_CURSOR:, CROSSHAIR_CURSOR: )
  279.  
  280.  
  281.  
  282. Requesters
  283. ----------
  284.  
  285. * The system messages shown to the player can be changed. Now there
  286.   shouldn't be a scrap of text anywhere which cannot be translated into
  287.   a foreign language. (Foreign? What am I talking about? It's English
  288.   that's foreign to me...)
  289.  
  290.   ( SYSTEM_TEXT: )
  291.  
  292.  
  293.  
  294. Calendar and clock
  295. ------------------
  296.  
  297. * Dates and times can be set and advanced.
  298.  
  299.   ( SETTIME, SETDATE, ADDTIME, SAVETIME, RESTORETIME )
  300.  
  301. * A number of different formats for dates and times are available -
  302.   basically, you design your own formats.
  303.  
  304.   ( DATE_FORMAT:, TIME_FORMAT: )
  305.  
  306. * Dates and times can be displayed either with a SAY, THINK, RESP or TEXT
  307.   command, or permanently in the command area using graal.main statements.
  308.  
  309.   ( #DATE, #TIME, DATE_LAYOUT:, TIME_LAYOUT: )
  310.  
  311. * GRAAL can draw analogue clock hands for you in the command area. (You
  312.   still have to draw the rest of the clock's face and casing, though... :)
  313.  
  314. * You can test the date and time
  315.  
  316.   ( IFTIME, IFTIME )
  317.  
  318.  
  319.  
  320. Timed events
  321. ------------
  322.  
  323. * You can have events occuring and recurring at a specified time interval, 
  324.   For example, you may use a timer to advance the time (see above). The
  325.   "events" are actually normal ACTION: statements, so there are no
  326.   restrictions as to what they may contain!
  327.  
  328.   Up to 3 timers may be active at the same time. The time intervals may
  329.   also be randomized.
  330.  
  331.   ( DOAFTER, CANCEL )
  332.  
  333. * One of the timers keeps track of how long the player has been inactive.
  334.  
  335.  
  336.  
  337. Object Default Command
  338. ----------------------
  339.  
  340. * For each object, a default verb can be specified, executed directly
  341.   when the player clicks the right mouse button.
  342.  
  343.  
  344.  
  345. Direct Commands
  346. ---------------
  347.  
  348. * Using the VERB_TEXT: statement, verbs can be defined that do not use
  349.   objects. Instead, they are executed immediately when the player clicks
  350.   the verb in the command area. This can be used for special functions
  351.   such as QUIT, RESTART, or calling some sort of menu or map room.
  352.  
  353.  
  354.  
  355. Dialogues
  356. ---------
  357.  
  358. * Dialogues (LINE: and LACT: statements) can now be defined in a
  359.   .section script. Can't think of a use for it? Don't worry, you will.
  360.   At least, I have!
  361.  
  362. * Number of dialogues, lines per dialogue and actions (LACT:s) per
  363.   dialogue can now all be changed to suit your needs (within the
  364.   restraints of the internal 128K buffer memory, of course)
  365.  
  366.  
  367.  
  368. Object Icons
  369. ------------
  370.  
  371. * For each object, an icon for use in the inventory can be defined and
  372.   altered with the ICON command at any time.
  373.  
  374.  
  375.  
  376. Flags
  377. -----
  378.  
  379. * A flag can be set to the value of another flag.
  380.  
  381. * The following logical operators can now be used to test flags:
  382.   =, <, >, <>, <=, >=
  383.  
  384. * A flag can be tested against the value of another flag.
  385.  
  386. * A flag can be set to the value of the current "in-game date" or
  387.   "in-game time".
  388.  
  389. * A flag value can be added to another flag.
  390.  
  391.  
  392.  
  393. Movement paths
  394. --------------
  395.  
  396. * Floors no longer need to overlap: Paths can be defined
  397.   for movement between them.
  398.  
  399.   ( PATH: )
  400.  
  401. * Paths can twist and turn, but there are restrictions in the movement
  402.   control they allow - read the on-line reference. Floors should still
  403.   overlap as much as possible in most cases for the most flexible
  404.   character movement.
  405.  
  406.  
  407.  
  408. Macros
  409. ------
  410.  
  411. * You can record a sequence of player actions as a macro, store it in a
  412.   file, and later play it back - great for automating long, tedious test
  413.   runs.
  414.  
  415.   ("R" and "P" keyboard keys in developer mode.)
  416.  
  417.  
  418.  
  419. Miscellaneous
  420. -------------
  421.  
  422. * Improved HANDLE command - You can use the various HANDLE positions
  423.   without referring to an object.
  424.  
  425.   (HANDLE LOW, HANDLE MID, HANDLE HIGH)
  426.  
  427.  
  428. * New IFCBOB condition. This could be useful to initiate different
  429.   animations depending on the previous character position - coding
  430.   your own TALK_MAP or HANDLE_MAP-like constructs, as it were. Can
  431.   be used in conjunction with the "player inactive" timer to program
  432.   stall anims in the graal.main file.
  433.  
  434.   ( IFCBOB )
  435.  
  436. * Alter the default length of time a sentence or text is displayed.
  437.  
  438.   ( NORMAL_WAIT: )
  439.  
  440. * PAUSE key. This was unnecessary in GRAAL 1, because
  441.   nothing ever happened that was important when the player left the
  442.   mouse alone! However, GRAAL 2 is (or can be) a whole different kettle
  443.   of fish in that respect (what? Halibut?)
  444.  
  445.   ( SPACE bar )
  446.  
  447. * Nice, "transparent icons" for NewIcons 3 (as well as the old MagicWB
  448.   ones) for GRAAL, the Editor and the on-line reference! Not quite
  449.   necessary, but a nice touch all the same :)
  450.  
  451. * New condition to check which floor the main character is on.
  452.  
  453.   ( IFFLOOR )
  454.  
  455. * New statement can disable the "q" quit key and force the
  456.   user to use a "QUIT" button/verb provided by you. (Your own "quit"
  457.   sequence must end with the QUIT command, new in 1.1.)
  458.  
  459.   ( DISABLE_QUIT: )
  460.  
  461.  
  462.  
  463. THE GRAAL EDITOR
  464. ----------------
  465.  
  466. The GRAAL Editor has had a serious overhaul:
  467.  
  468. * The HELP key now opens GRAAL.guide to show the help for the current
  469.   command or statement.
  470.  
  471. * ALL statements and commands can now be edited using a window showing
  472.   the parameters (a major feat in reverse engineering :-).
  473.  
  474. * All parameters that define areas, points, object or image positions, 
  475.   etc. can now be edited graphically against the proper background
  476.   picture.
  477.  
  478. * Switching to the proper background picture is automatic in most cases.
  479.  
  480. * All parameters that can only be set in a limited number of ways
  481.   have a "cycle" button in the parameter editor.
  482.  
  483. * When the backdrop picture is a scene area backdrop, all objects with
  484.   starting positions defined for that room are also shown, making relative
  485.   positioning of things a lot easier.
  486.  
  487. * As a result of all of the above, the object editing window is actually
  488.   less neat than it used to be. You have to take the bad with the good...
  489.  
  490. * "Quick search" buttons have been added for OBJECT:, DACT:, ACTION:, and
  491.   LINE: statements to find the first statement of the desired type in the
  492.   file.
  493.  
  494.  
  495.  
  496.  
  497. THE DISKINFO.GRAAL FILE, GDC AND GPRO PROGRAMS
  498. ----------------------------------------------
  499.  
  500. * You can insert empty lines or comment lines in between entries.
  501.  
  502. * There is no longer a need to keep track of the number of entries
  503.   in the diskinfo.graal file on line 3. There must still be a line
  504.   here, making the actual entries start below line 3, but you can
  505.   make it a comment line or an empty line if you wish.
  506.  
  507. * The gpro and gdc programs now check that the diskette specifications
  508.   are sorted alphabetically, which they must be in order for gdc to
  509.   work properly.
  510.  
  511. * The gpro program now needs your personal keyfile in the development
  512.   directory to work, and is distributed along with the rest of the
  513.   shareware version.
  514.  
  515. * The gpro program can select any file name for the diskinfo file -
  516.   it will be renamed to "diskinfo.graal" in the test directory. This
  517.   means that you can copy different versions of the game from the same
  518.   development directory to different test directories with ease.
  519.  
  520. * The gpro program can now encrypt and compress ALL game files.
  521.  
  522. * The gpro and gdc programs have a significantly better error checking.
  523.  
  524.  
  525.  
  526.  
  527.                     CHANGES IN BEHAVIOUR SINCE 1.2:
  528.                     ===============================
  529.  
  530. The philosophy has been to make all new statements optional and provide
  531. default values for them that are in keeping with the old GRAAL 1 player
  532. interface. If you are content with sticking to that, it means you don't
  533. really have to learn a lot about the new statements. In fact, although
  534. there are heaps of new graal.main statements, not a single one of them
  535. is mandatory!
  536.  
  537. This text describes the alterations you may still need to do when running
  538. GRAAL 1 scripts under GRAAL 2. There are also some minor changes to the
  539. behaviour of GRAAL which can't be avoided, but at least you get to know
  540. about them here. They are all fairly obvious improvements, so you shouldn't
  541. get too upset, i hope :)
  542.  
  543.  
  544.  
  545. Size
  546. ----
  547.  
  548. The GRAAL program itself has grown by around 60K. In addition, the buffer
  549. memory (the place where GRAAL keeps all your in-game variables, actions
  550. and dialogue data) has been bumped up from 88K to 128K to make room for
  551. possible larger dialogues, more detailed load/save routines, the
  552. customisable player interface data, and so on.
  553.  
  554. All in all, about 250K more may be needed to run GRAAL 2 than GRAAL 1.
  555. However, my statements about memory consumption for GRAAL 1 contained
  556. a healthy margin, and 1.5 M should still be enough for playing most games...
  557.  
  558.  
  559.  
  560. Changes in .section DACT: execution
  561. -----------------------------------
  562.  
  563. In GRAAL 1, section DACT: statements were only executed upon loading
  564. a new .section file. This was never of much use, I thought - there was
  565. a bigger need for a set of DACT:s that were executed for every room, 
  566. saving a lot of re-typing of commands and conditions needed everywhere.
  567.  
  568. Thus, from now on, GRAAL executes all section DACT:s are before the room
  569. DACT:s for each and every room in the section.
  570.  
  571. Check through any old section DACT:s you have - if you want them to be
  572. performed only upon loading the section script, you can use a room flag
  573. for each section in the game to only execute them once upon loading in, 
  574. the old style.
  575.  
  576. Example:
  577.  
  578. You have three sections. The following could be the setup in the script for
  579. section 2 - similar DACT:s should be present in sections 1 and 3, each
  580. checking its own flag and re-setting the others!
  581.  
  582. /* This makes sections 1 and 3 execute their statements if returned to
  583. DACT: SETRF 0,1=0;SETRF 0,3=0
  584. /* If this is the first visit, or if some other section has reset
  585. /* section 2's flag, execute the commands!
  586. DACT: IFRF 0,2=0;... these commands only done once ...;SETRF 0,2=1;EXIT
  587.  
  588.  
  589.  
  590. Enhancement to the save/load game routines
  591. ------------------------------------------
  592.  
  593. GRAAL 1 was not too precise when loading saved games.
  594.  
  595. Basically, it loaded the data for the main character, the inventory, 
  596. and all flags. It then trusted upon the room's DACT:s to set the rest
  597. of the stuff up using flags to determine what the scene should look like.
  598. This was far from perfect and yielded some unwanted results from time
  599. to time. (In addition, the room flags for room 0 were not handled properly.)
  600.  
  601. GRAAL 2 accurately recreates all aspects of the saved game (well, unless
  602. some bugs say otherwise!). In fact, when the saved position has been
  603. loaded, the DACT:s are now completely skipped.
  604.  
  605. However, there are some things that may require some "looking after"
  606. after a saved position has been loaded:
  607.  
  608. Mostnotably, the current set of global BOB images are not saved with the
  609. game. Therefore, after a game has been loaded, GRAAL searches for and
  610. executes all ACTIONs starting with the special verb number "-2". In such
  611. statements you may put whatever needs to be done after a "load game" or
  612. RESUME command.
  613.  
  614. All this means GRAAL 2 may behave somewhat differently after loading a
  615. saved game, but all the better for it!
  616.  
  617. In GRAAL 1, there were also some major bugs concerning loading a saved
  618. game that meant switching between sections after loading sometimes caused
  619. problems. Especially the section objects got a fair old beating from that, 
  620. and often did some very strange things.
  621.  
  622. One final point: All saved games, both disk and ram: files, are now always
  623. encrypted. Despite this, saving and loading is also significantly quicker
  624. than before.
  625.  
  626.  
  627.  
  628. Enhancement / change in MARK and RESUME operations
  629. --------------------------------------------------
  630.  
  631. MARK and RESUME did a poor job in GRAAL 1, and have been completely
  632. re-coded.
  633.  
  634. * A MARK without a number saves exactly the same things
  635.   as the "save game" function to GRAALs internal memory.
  636.  
  637. * A MARK with a number does a "save game to RAM:", which actually
  638.   creates a saved game file in RAM:. (This command takes some time.)
  639.  
  640. If memory permits, you can MARK any number of positions for later use.
  641. (Just remember that each MARK with a different identification number
  642. creates a file in RAM: of anything from 10K upwards, which remains for
  643. the duration of the game.)
  644.  
  645. Note that doing a RESUME resets ALL variables and even timers to their
  646. values and behaviours at the point the MARK command was given. You will
  647. have to think about this when using them for cutscenes - the cutscene should
  648. not itself set any value that you want to keep after the RESUME.
  649.  
  650. In the previous example adventure, I used MARK and RESUME to "refresh"
  651. the display of the main character after having loaded a new set of
  652. global BOB images. This no longer works. However, this new form of the
  653. SHOW command will perform exactly the same thing in a much neater way:
  654.  
  655. SHOW 0, , , 
  656.  
  657. shows the main character in the same place with the same image number...
  658. ...only if the image has been re-loaded will there be any difference!
  659.  
  660. (I have a feeling this should only be used before LIGHTS ON, though...)
  661.  
  662.  
  663.  
  664. Enhancement to the inventory scrolling
  665. --------------------------------------
  666.  
  667. The inventory is now scrolled a row/column at a time - easier for the
  668. player to keep track of objects that way.
  669.  
  670.  
  671.  
  672. Enhancement to the frame updating routines
  673. ------------------------------------------
  674.  
  675. The UPDATE statement controlling frame update rates have been extended
  676. to provide full control over the frame updating rates for all rooms.
  677.  
  678. You may want to amend your old UPDATE statements: The default for
  679. "no background scrolling" is now 1, not 3, so if you want to keep
  680. things exactly as they were, add ";3" at the back of all your old
  681. UPDATE statements.
  682.  
  683. However, I recommend you try the new defaults first and see how it goes.
  684. If your machine can cope, they look better...:
  685.  
  686.  
  687.  
  688. Changes to font spacing
  689. -----------------------
  690.  
  691. All commands dealing with fonts now use the font's baseline to determine
  692. where to place the text. In most cases, if a row of text is meant to
  693. occupy the space from position x1,y1 (upper left corner), the first
  694. character's base will be placed at x1+2,y1+2+Base Line.
  695.  
  696. What this means to you is that some texts may shift slightly from where they
  697. were in the previous version of GRAAL. However, it also means that any
  698. correctly defined bitmap font may now be used for any function, and it
  699. should not be too difficult to place text neatly on the screen.
  700.  
  701.  
  702.  
  703. Change in the VERB_TEXT: statement for the preposition text
  704. -----------------------------------------------------------
  705.  
  706. To change the preposition text, one must now use
  707.  
  708. VERB_TEXT: 999;...
  709.  
  710. instead of
  711.  
  712. VERB_TEXT: 10;...
  713.  
  714. The reason being that you can now have more than 9 verbs in which case
  715. VERB_TEXT: 10;... is needed for other things. However, I trust that
  716. no-one will EVER define 999 of them...!
  717.  
  718.  
  719.  
  720. Change in OBJECT parameters
  721. ---------------------------
  722.  
  723. The two previously unused parameters (15 and 16) have now been assigned
  724. the tasks of keeping track of the inventory icon image and the object
  725. default command.
  726.  
  727. The "visible" parameter should now be VIS or NVIS for "visible" and
  728. "not visible". The old values (-1 and 0) also work, though.
  729.  
  730. Same thing with the "pickable" parameter: From now on, use PICK or
  731. NPICK for that one.
  732.  
  733.  
  734.  
  735. New SHOWEXIT and HIDEEXIT commands
  736. ----------------------------------
  737.  
  738. These came about because the syntax of the old versions (SHOW EXIT,...
  739. and HIDE EXIT,...) caused trouble in the parameter parsing of the
  740. new GRAAL Editor.
  741.  
  742. The old versions still work, but they are not supported by the editor
  743. and will produce error messages during the syntax check, prompting you
  744. to switch to the new syntax.
  745.  
  746.  
  747.  
  748. DELETED FEATURES
  749. ================
  750.  
  751. No more in-game help text when pressing "Help" or "H". Too much text
  752. needed, too much localizing, too slow on 68000 machines... I hope you
  753. won't miss it too much.
  754.  
  755.  
  756.                          CHANGES SINCE 2.0 BETA 1
  757.                          ========================
  758.  
  759. Driver
  760. ------
  761.  
  762. * I finally did something about the cumbersome way to define flipped
  763.   BOB images. They can now be specified by prefixing the image number
  764.   with "//" instead of specifying a hex value "$8000+number". That is, 
  765.  
  766.     //14
  767.  
  768.   means the same as
  769.  
  770.     $800E ( = $8000+14 )
  771.  
  772.   This method of specifying flipped images can be used for all types of
  773.   BOBs everywhere, and also for HANDLE_MAP:, TALK_MAP: and IFCBOB. See
  774.   the demo adventure's graal.main script.
  775.  
  776.     "//RBOB1" means "RBOB1, flipped"
  777.  
  778.     "IFCBOB //12" checks if the current character image is 12, flipped.
  779.  
  780.   The old way can still be used, but I bet I know which one you will
  781.   prefer in the future :)
  782.  
  783. * MAX_DLG: statement in graal.main now sets the total number of dialogues
  784.   in a game.
  785.  
  786.   DLG: statements just define speaking partners for RESP commands.
  787.   Speaking partners can now also be room and section objects.
  788.   (Default is 30 dialogues.)
  789.  
  790. * Moving the mouse cursor over the inventory makes the object name
  791.   show up in the sentence box.
  792.  
  793. * New IFNOTSAVEDISK, IFEXISTS, SAVE, LOAD makes it possible to code
  794.   save/load screens (rooms) in any style you like.
  795.  
  796. * New DISABLE_SAVE: statement to go with the above, forcing the player to
  797.   use your new save/load screen.
  798.  
  799. * New "$" prefix in dialogue lines disables the automatic SAYing of the
  800.   line when it is selected. Makes the dialogue use less character-dependent.
  801.  
  802. * TYPE can now handle text variables and special formatting like
  803.   the TEXT and SAY comands.
  804.  
  805. * New statement parameter: Use "SECTION: SAME" for "subroutine rooms"
  806.   like load/save rooms. Prevents rooms belonging to "all" sections from
  807.   messing with the section data...
  808.  
  809. * Playing from write-protected disk makes GRAAL automatically ask for
  810.   diskette for saved games - mainly for use with CD-ROM distribution.
  811.  
  812. * TYPE, PBOB, CLPART, BOBS and HOTSP commands are now "remembered" in
  813.   save/load/resume operations as well as the current position and image
  814.   or animation pattern for each object present.
  815.  
  816.   Note: You still may have to use ACTION: -2 statements occasionally, 
  817.   because all GRAAL remembers are the commands that took place in the
  818.   room that was MARKed/saved, not anything that may have happened in
  819.   previous rooms... But, in most cases, you shouldn't need ACTION: -2; 
  820.   statements.
  821.  
  822. * There is a new DEBUG: statement making it possible to use the monitor
  823.   and abort keys while testing the final delivery diskette layout. This
  824.   also means you get to see the "looking for file ..." information in the
  825.   diskette swapping requester to help out when you have messed up ;)
  826.  
  827. * GRAAL_2 no longer asks for the keyfile when reading an encrypted game.
  828.   From now on, your peronal graal.key file should NEVER be distributed to
  829.   other users.
  830.  
  831.  
  832. Editor
  833. ------
  834.  
  835. Major user-friendliness overhaul:
  836.  
  837. * The Editor now handles editing of PATH: lines.
  838.  
  839. * Asking to load a specific script type now brings up a list requester
  840.   showing all the existing scripts of that type, including short
  841.   descriptions of each file (both WB 2 and WB 3). (The short descriptions
  842.   are in fact the beginning of the first line, which should be a comment
  843.   line!)
  844.  
  845. * Asking to create a new script of a specific type now automatically
  846.   suggests a suitable, unused script number and lets you enter a
  847.   description (which is inserted in the first script line).
  848.  
  849. * Using "Edit parameters" on an empty line now brings up a list requester
  850.   showing all the available statements and lets you insert one.
  851.  
  852. * Using "Edit parameters" with the cursor on anything but a statement
  853.   or command name in a statement line brings up a list requester showing
  854.   all the available commands and conditions, and lets you insert one.
  855.  
  856. * More keyboard shortcuts: [F1]-[F6] triggers the "graphics editing buttons"
  857.   in the parameter editor, [Tab] activates next input string gadget.
  858.  
  859. * The floors are shown when editing a starting position or a path.
  860.  
  861.  
  862. GPRO
  863. ----
  864.  
  865. GPRO now compresses and encrypts almost all files. The only files that
  866. should never be compressed by GPRO are:
  867.  
  868. * the driver program
  869. * the diskinfo file
  870. * documentation and icon files.
  871.  
  872. Mark these files with an asterisk after the file name in the diskinfo.graal
  873. file to prevent them from being compressed. See prod.text for more detailed
  874. information.
  875.  
  876. The compression routine puts the emphasis on speed rather than efficiency.
  877. On average, 30% less space is used by a compressed adventure, not counting
  878. the GRAAL_2 program, which cannot be compressed by GPRO. However, you can
  879. make a self-decrompressing executable of GRAAL_2 with a suitable utility
  880. (powerpacker or crunchmania, for example), saving more space on diskette A.
  881.  
  882. The percentage gained varies greatly with the structure and complexity
  883. of the files. Some examples:
  884.  
  885. 120K tracker module        ---> gained 42%
  886. 24K complex bg picture     ---> gained 20%
  887. 12K simple clipart picture ---> gained 54%
  888. 24K script file            ---> gained 50%
  889. 48K IFF sample             ---> gained 38%
  890.  
  891. NOTE: Only registered users can use GPRO!!!
  892.  
  893.  
  894. Installer
  895. ---------
  896.  
  897. The HD_install script can now install to hd from an arbitrary directory
  898. containing all the files (like RAM:).
  899.  
  900.  
  901.  
  902.  
  903.                          BUG FIXES FROM 1.2:
  904.                          ===================
  905.  
  906. * Text references to room flags > 6, e.g. #R#1#8#, were not accepted.
  907.  
  908. * Text references to section objects, e.g. #O#SOBJ3#4#, were not resolved
  909.   correctly.
  910.  
  911. * GRAAL crashed on start-up if there was not at least one global OBJECT:
  912.   statement.
  913.  
  914. * Improved error handling when looking for section files.
  915.  
  916. * Room 0 flags were not saved in saved games.
  917.  
  918. * OMOVE with blank x and y parameters sometimes messed the object's
  919.   position up later in the game.
  920.  
  921. * Lots of other stuff!
  922.  
  923.  
  924.                       BUG FIXES FROM 2.0 BETA 1:
  925.                       ==========================
  926.  
  927.  
  928. Note: A lot of these bugs were fixed in the beta 2 release included with
  929. The GRAAL Herald 1.
  930.  
  931.  
  932. Driver
  933. ------
  934.  
  935. * Crash when REMOVEing last inventory object.
  936.  
  937. * Monitor can't handle room 0 flags.
  938.  
  939. * Mouse hit on object belonging to previous room, if the same BOB number
  940.   is used for a STATIC: or ANIM: object, and there were no objects in the
  941.   next room...
  942.  
  943. * Loading and resume does not remember CHAR ON / CHAR OFF properly.
  944.  
  945. * Indicator for sentence speed (when altered with the I or D keyboard key)
  946.   does not compute and display correctly if NORMAL_WAIT: in graal.main is
  947.   anything but the default value.
  948.  
  949. * LOAD and RESUME works better still, because GRAAL can keep track of
  950.   more changes (hotspots, BOBs coming and going) without the need for
  951.   ACTION: -2 statements.
  952.  
  953.  
  954.  
  955. Editor
  956. ------
  957.  
  958. * Editing OMOVE with an anim cut the anim at the , after A 0, ...
  959.   (All commands with an animation string as last parameter had this problem.)
  960.  
  961. * Re-sized the inital area frame when editing new ...BOBS: statements.
  962.   (Previously, it was initially very small and off the screen.)
  963.  
  964. * BOBON without all parameters set, and on its own line in a cutscene, 
  965.   doesn't get all parameters when exiting the parameter window.
  966.  
  967. * If you don't reload graphics data when editing a FLOOR or EXIT area, the
  968.   room objects don't show up on the backdrop.
  969.  
  970. * Invalid CLPART or BG_IFF: file name crashed the editor.
  971.  
  972. * ink and area editing in TIME_LAYOUT: with ANALOGUE doesn't work too
  973.   well...
  974.  
  975. * Trying to position a large image (PBOB, BOBON) often crashed the editor.
  976.  
  977. * A statement with optional last parameter(s) gave a syntax check error
  978.   if the last (optional) parameter was missing (e.g. PATH: with only start
  979.   and end coordinates).
  980.  
  981. * Colours 32-63 were not in the "palette" when editing colour numbers for
  982.   EHB pictures.
  983.  
  984. * Lines 4 and 5 in script templates created with the "New" command behaved
  985.   oddly until you had messed around with the file contents for a while.
  986.   All sorted out now!
  987.  
  988. * The .scene script loader now handles long file names (didn't in beta 2).
  989.  
  990. * Editing the position of an object now uses the room backdrop for the room
  991.   specified as the object's starting position.
  992.  
  993. * Sometimes the last floor wasn't shown when editing a path.
  994.  
  995. * Character position goes relative old object position - should read start
  996.   values from the string gadgets instead!!
  997.  
  998. * "Array subscript out of range" in the list selection window when number
  999.   of selectable items was less than number of displayed rows and you clicked
  1000.   outside the name of an item...
  1001.  
  1002. * The editor now warns you if you try to build a line longer than 256
  1003.   characters using the parameter editor window.
  1004.  
  1005.  
  1006. Gpro
  1007. ----
  1008.  
  1009. * The FONTS: drawer was not properly replaced when running GPRO several
  1010.   times with the same destination directory.
  1011.  
  1012.  
  1013.  
  1014.                                BUGS LEFT IN
  1015.                                ============
  1016.  
  1017. * It seems to me some global objects are not where I last SHOWed or
  1018.   OMOVEd them when I later return to the room where they are. Easy to get
  1019.   around by setting them up again upon re-entry to the room. This is also
  1020.   good coding practice, because the placement is then visible in the
  1021.   .room script DACT: statements at a glance.
  1022.  
  1023.   Note: The problem does not exist for room objects, because changes to
  1024.   them must always be re-done with DACT: statements anyway.
  1025.  
  1026.   Not fixed because I haven't been able to pin it down yet (shame on me).
  1027.  
  1028. * The monitor doesn't use proper GET and REMOVE routines for the PICK and
  1029.   DROP buttons. The Dialogue section of the monitor is also a mess.
  1030.   I'll leave this for now because I will completely redo the monitor in
  1031.   the next release anyway...
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.                          FUTURE ENHANCEMENTS:
  1038.                          ====================
  1039.  
  1040. * New monitor and error tracing facilities.
  1041.  
  1042. * Enhanced sound support.
  1043.  
  1044. * Editor functions to cross-reference game files, catch more errors and
  1045.   set a number of graal.main parameters automatically to make sure
  1046.   only the minimum workspace is allocated.
  1047.  
  1048. * ...some other really nice bits & pieces, if I manage to pull them off!
  1049.  
  1050.  
  1051.  
  1052. *************************************************************************
  1053. *                                                                       *
  1054. *                                                                       *
  1055. *                       T-T-THAT'S ALL, FOLKS!                          *
  1056. *                                                                       *
  1057. *                                                                       *
  1058. *************************************************************************
  1059.  
  1060.  
  1061. ============================= Archive contents =============================
  1062.  
  1063. Original  Packed Ratio    Date     Time    Name
  1064. -------- ------- ----- --------- --------  -------------
  1065.      419     212 49.4% 11-Feb-97 21:59:20  0.scene
  1066.   124760   66825 46.4% 11-Feb-97 21:59:36  0.track
  1067.     5377    2247 58.2% 11-Feb-97 21:58:48  1.section
  1068.     1371     626 54.3% 11-Feb-97 21:58:44  18.room
  1069.    22782   16265 28.6% 11-Feb-97 21:58:52  18BG.IFF
  1070.     7410    3461 53.2% 11-Feb-97 21:58:54  18FG.IFF
  1071.     1380     617 55.2% 11-Feb-97 21:58:46  19.room
  1072.    15592    7180 53.9% 11-Feb-97 21:58:58  19BG.IFF
  1073.    12508    3473 72.2% 11-Feb-97 21:59:00  19FG.IFF
  1074.     3043     834 72.5% 11-Feb-97 21:59:22  29.scene
  1075.     4499    1414 68.5% 07-Aug-96 04:41:08  Disk.info
  1076.     3304    1344 59.3% 11-Feb-97 21:58:16  Diskinfo.graal
  1077.      264      29 89.0% 11-Feb-97 21:57:28 +dpaint.font
  1078.     3316    1919 42.1% 11-Feb-97 21:57:28 +8
  1079.      264      29 89.0% 11-Feb-97 21:57:30 +emerald.font
  1080.     6988    3647 47.8% 11-Feb-97 21:57:30 +20
  1081.      264      29 89.0% 11-Feb-97 21:57:18 +garnet.font
  1082.     3732    2426 34.9% 11-Feb-97 21:57:18 +9
  1083.      784      49 93.7% 11-Feb-97 21:57:20 +hires-5a.font
  1084.     1800    1079 40.0% 11-Feb-97 21:57:18 +6
  1085.     1904    1164 38.8% 11-Feb-97 21:57:18 +7
  1086.     2040    1222 40.0% 11-Feb-97 21:57:18 +8
  1087.      524      41 92.1% 11-Feb-97 21:57:26 +olaf.font
  1088.     4780    1691 64.6% 11-Feb-97 21:57:26 +24
  1089.     5096    1897 62.7% 11-Feb-97 21:57:24 +27
  1090.      264      29 89.0% 11-Feb-97 21:57:22 +times.font
  1091.     3892    2110 45.7% 11-Feb-97 21:57:22 +14
  1092.    22939    8004 65.1% 11-Feb-97 21:58:22  graal.main
  1093.   344984  166958 51.6% 11-Feb-97 21:58:08  GRAAL_2
  1094.     2817    1359 51.7% 07-Aug-96 04:41:06  GRAAL_2.info
  1095.    11836    2265 80.8% 14-Feb-97 00:10:00  HD_Install
  1096.     1939    1279 34.0% 07-Aug-96 04:41:04  HD_Install.info
  1097.     2890     206 92.8% 11-Feb-97 21:59:08  NTITLE0.IFF
  1098.     5020    1456 70.9% 11-Feb-97 21:59:10  NTITLE1.IFF
  1099.     4328     867 79.9% 11-Feb-97 21:59:12  NTITLE2.IFF
  1100.     6094    1787 70.6% 11-Feb-97 21:59:14  NTITLE3.IFF
  1101.     3314     350 89.4% 11-Feb-97 21:59:16  NTITLE4.IFF
  1102.     6276    1623 74.1% 11-Feb-97 21:59:18  NTITLE5.IFF
  1103.     1386     265 80.8% 11-Feb-97 21:58:42  olaf_cursors.iff
  1104.    15040    2095 86.0% 11-Feb-97 21:58:36  olaf_extras.iff
  1105.    21782    5133 76.4% 11-Feb-97 21:58:32  olaf_original.iff
  1106.    20882    5608 73.1% 11-Feb-97 21:58:40  olaf_symbols.iff
  1107.     9672    2565 73.4% 11-Feb-97 21:58:24  olafcomm.iff
  1108.    11692    4964 57.5% 11-Feb-97 21:59:40  Olafdemo.guide
  1109.     8412    1380 83.5% 07-Aug-96 04:41:02  Olafdemo.guide.info
  1110.     3364     560 83.3% 11-Feb-97 21:58:26  olafdlg.iff
  1111.    17782   13116 26.2% 11-Feb-97 21:59:04  PS_Logo_ham6.iff
  1112.    13340    6693 49.8% 11-Feb-97 21:58:30  wood.rsb
  1113. -------- ------- ----- --------- --------
  1114.   774146  350392 54.7% 20-Feb-97 11:19:56   48 files
  1115.