*******************************************
   Documentation for PGG ver. 2.1 Freeware
   (c) 2000-2001 Nick Valoti
   All rights reserved.
*******************************************

COPYRIGHT : PGG ver. 2.1 is Freeware
---------

The use of this PGG is done completely under your own responsibility. Under no circumstances should the producer of this program be held responsible for any damages or costs, that this program in any way could cause you or your equipment.

SYSTEM REQUIREMENTS :
-------------------

Minimum requirements:
* Pentium processor or equal.
* Approx. 16 Mb of internal memory.
* Java

INSTRUCTIONS :
------------

To run PGG you need Java, then execute the class Game by typing;

Java Game [yourgame]

[yourgame] should contain PGG source code; So, if your game was called test.pgg, you would type:

Java Game test.pgg        (NOTE : the capital letter when typing game!)

DEBUGGING KEYS :
--------------

When debugging is set to active (done by placing debugging(yes) within define init-) the following keys can be used:

<  :  Previous Screen
>  :  Next Screen
G  :  Gravity on/off
{  :  Slow down game 
}  :  Speed up game
d  :  Default speed(12)
r  :  Reset to screen 1
i  :  Invincible on/off
k  :  Kill game(restart)

CONTACT ADDRESS :
---------------

If you have any problems or queries, please contact me at:
  E-mail   : admin@platformgame.com
  Web-page : http://www.platformgame.com

CURRENT LIMITATIONS:
-------------------

-No more than 30 enemies can be defined (6 per screen). 
-No more than 30 objects can be defined (6 per screen). 
-No more than 30 items can be defined (6 per screen). 
-No more than 100 screens can be specified. 
-No more than 200 relations can be defined (100 up-down : 100 left-right) 
-No more than 300 blocks, 300 platforms, 300 ladders, 300 upslopes can be made.
-You are limited to 3 frames for each enemy sprite. 
-You are limited to 3 frames for the player sprite.

FILES:
-----

  Game.class      (main class to run)
  Collision.class
  Spritecol.class
  Enemy.class
  Lives.class
  Buildgame.class
  Language.class
  Game$1.class
  readme.txt      (this file)
  template.pgg    (default pgg file for getting started)
  ver210.txt      (info about this version)

All Statments:
-------------

Note : Not all statements have to be defined, a default is usually taken if not given. However some statements only need to be used if you require it. 
  Eg. not using timelimit(x) will simply cause the game not to have any time limit at all. 

Below is a brief guide to a statements available in ver. 2.1 please consult the manual for in depth descriptions.
-----------
Define init statements

  debugging(yes/no)         Activates debugging keys
  testing(yes/no)           Activates testing screen while playing
  walkspeed(x)              Speed at which player walks
  gravity(x)                Gravity level
  stopslowdown(x)           Speed player stops after walking
  screensize(x,y)           Size of the screen in pixels
  keys(a,b,c,d)             Keys to play (left,right,jump,duck) 'd' is optional
  walkinwall(yes/no)        Animate player while walking in a wall
  timelimit(x)              Time until game ends 
  jumppower(x)              Controls the height at which the player jumps
  lives(x)                  Inital amount of lives
  turnwhilejump(yes/no)     Enable changing direction while in the air
  duckwhilejump(yes/no)     Enable ducking while in mid air
  newlifepause(x)           Delay time between life lost and next life starting
  startposition(x,y)        Position the player starts at in pixels
  flashtime(x)		    Invincible time after loosing a life
  allitems(yes/no)	    Automatically pass level when all items collected
  titlescreen(imagefile)    active a title screen (-space key- to start game)

Define player statements

  playerwalkanispeed(x)     Speed 3 frames alternate while walking
  playerleft1(imagefile)    1st frame image while walking(& standing) left
  playerleft2(imagefile)    2nd frame image while walking left
  playerleft3(imagefile)    3rd frame image while walking left
  playerright1(imagefile)   1st frame image while walking(& standing) right
  playerright2(imagefile)   2nd frame image while walking right
  playerright3(imagefile)   3rd frame image while walking right
  playerjump(imagefile,imagefile) Images for jumping left and right
  playerduck(imagefile,imagefile) Images for ducking left and right

Define score statements

  inital(x)                 Initial score when starting the game
  item(x)                   Score for each item collected

Define sound statements

  music(musicfile)          Define music while playing the game
  title(musicfile)          Define music while title screen is being displayed
  itemcollect(soundfile)    Define sound to play when an item is collected
  loose(soundfile)          Define sound to play when loosing a life
  land(soundfile)           Define sound to play when landing from a jump

Define ending statements

  pointwin(x)               To specify a score to win the game at
  screenwin(x)              To specify a screen number to win the game at

Define items statements

  newitem(n,image1,image2,image3,f)    Image number, followed by 3 frames and 
                                       the speed at which the frames alternate 

Define objects statements

  newobject(n,image1,image2,image3,f)  Object number, followed by 3 frames and 
                                       the speed at which the frames alternate 
Define enemies statements

  newenemy(n,image1,image2,image3,f)   Enemy number, followed by 3 frames and
                                       the speed at which the frames alternate 
Define levels statements
  Graphics(image-1,image-2...image-n)  All the level image files
  Block(l,x,y,a,b)         To a make given block solid ie. cant walk through it
  platform(l,a,b,h)        To make a platform ie. can jump on to from below
  upslope(l,x,y,a,b,h)     To place a sloped block into a level
  placeitem(l,n,t,x,y,a,s)   
  placeobject(l,n,t,x,y,a,s)      Used to place items/object/enemies in to a 
  placeenemy(l,n,t,x,y,a,s)            level (consult the manual for details)

define relations statements

  startscreen(x)            Specify the screen number to start the game at
  relation(x<->y,-)         To state a relation between two screens (x and y)

-----------

  
  