Gravity Wars
  by Sohrab Ismail-Beigi  completed 4/23/89
     SYSOP of The 3D Graphics BBS
     300/1200/2400 baud, N-8-1 Full duplex
     (201) 444-4154

******************************************************************************
Note:  This game requires a VGA display capable of the 640x480x16 color mode.
       The program does no checking, so don't run it without VGA 640x480x16.
******************************************************************************

-----------------------------------------------------------------------------
INCLUDED FILES:

 Length   Name
 -------  ------
    9519  GRAVWARS.DOC   -  This file
   32172  GRAVWARS.PAS   -  Turbo Pascal 4.0 Source Code
   42640  GRAVWARS.EXE   -  The actual game program
    5139  EGAVGA.BGI     -  Required VGA driver
    5452  SANS.CHR       -  Required Font
 -------
   94922

NOTE:  EGAVGA.BGI and SANS.CHR must exist in the same directory that
       GRAVWARS.EXE is running for the program to run properly

-----------------------------------------------------------------------------
      The game and all attached material are released to the public domain (PD.)
The author does not ask for any monetary contributions, but instead asks you to
call his BBS and leave messages, comments, new ideas, contributions, bug
reports, etc. on his BBS.

DISCLAIMER:  The author, Sohrab Ismail-Beigi, is not in any way responsible
for any damaged caused by, due to, in conjuction, in relation, in proximity,
in discussion of the use, transport, manipulation, misuse, contemplation,
mismanagement, etc. etc. etc. of the program GRAVWARS.EXE and the associated
files GRAVWARS.DOC and GRAVWARS.PAS.

     Gravity Wars was originally a Shareware game on the Amiga.  I liked the
game and decided to convert it for the IBM.  GRAVWARS.EXE is the result and
I hope you like it.

------------------------------------------------------------------------------
GENERAL OVERVIEW:

     Gravity Wars is a two-player game (or one-player if he plays against
himself.)  The players choose ships (one the Enterprise, the other Klingon) and
try to shoot down each other by specifying angles and initial velocities for the
missiles.
     Missiles move under the influence of the gravitational fields of the
various planets in the Gravity Wars universe.  The planets are the spherical
and colored (Red, Green, or Blue) with each color representing a density:
Red=1.0, Green=1.5, Blue=2.0.  The force of gravity is the well known inverse
square law, namely F=GMm/(r^2) (where ^ means exponent.)
     There are also black holes (haha!) which appear as the blacking out of the
stars in the background (you have to watch for them when the scene is drawn.)
They are not very massive, and from far away, they act like small planets.  But
when missiles approach them, their behavior becomes quite erratic, SO BE CAREFUL
WHEN FIRING CLOSE TO A BLACK HOLE!

------------------------------------------------------------------------------
DETAILED DESCRIPTION OF THE MENUS:

     The game is menu driven.  You see the choices and the associated numbers.
Press the number corresponding to your choice.  Esc quits a submenu and
returns to the main menu.  Esc also aborts other commands such as Move planet,
Make planet, etc.
     Each submenu of the main menu is explained below.

Main Menu:

1. Playing the game - Choose a random setup or play the current one.
2. Options - Redraw the screen and turn sound on/off.
3. Changes - move ships, move, make, change, and delete planets.
4. Quit

Sub menu: 1. Playing the game
  1. Random setup - the computer picks a random setup, destroying the current
                    setup and displaying the new one.  If you don't like a
                    setup, either pick a new random one, or use the 3. Changes
                    menu (or both) to make a better setup.

  2. Play game - Play the current setup.  The players take turns entering
                 angles and initial velocities for the missiles.  Angles are
                 in the standard 0-360 mode where 0 is horizontal and to the
                 right.  Velocities are from 0 to 10.  Note that non-integer
                 angles and velocities are allowed, so you can refine your
                 firing considerably.
                 The computer keeps tab of the last angle and velocity you used
                 and displays them inside the [] brackets.  To use the same
                 angle and/or velocity, just press RETURN or ENTER alone and
                 the value in the bracket will be used.
                 To quit the play while entering angles and velocities, enter Q
                 or q as a response.
                 To abort a missile trajectory calculation in progress, press
                 any key.  A message will appear.  Pressing Esc will bring you
                 back to the menu.  Pressing any other key will continue the
                 game.

Sub menu: 2. Options
  1. Redraw screen - Redraws screen.  The screen is cleared, and the planets
                     ships are drawn in their current positions.  This is
                     useful when the missile trails are too many and are
                     irritating.  The Redraw will clear them all out while
                     leaving the setup unchanged.

  2. Sound on/off - turns the music option on/off.  By default, music is on
                    (for example, the tune played when one player wins.)
                    Pressing 2 once will turn this off, 2 again will turn it
                    on.

Sub menu: 3. Changes
  1. Move ship - This allows you to move either of the ships to any legal
                 position.  Press the number corresponding to the ship you want
                 to move (or Esc to abort.)  Then use the numeric keypad (with
                 Num Lock ON) up, down, left, and right to move the ship about.
                 Press RETURN or ENTER to place ship there, or Esc to abort.
                 If the position is illegal, the screen will flash, and you
                 will be informed.  Move the ship to another position and
                 retry.

  2. Move planet - This allows you to move any of the planets on the screen to
                   another legal location (including black holes!)  A pointer
                   will appear.  Use the numeric keypad to move the pointer
                   close to the planet you wish to move and press ENTER to
                   pick that planet, or Esc to abort (the computer will pick
                   the planet closest to the tip of the pointer.)  You can use
                   the + and - keys to increase or descrease the size of the
                   jumps the pointer makes.
                   Move the pointer to the position new center of the planet to
                   and hit ENTER to place it there (or Esc to abort.)  If the
                   location is legal, it will be accepted and the planet/black
                   hole will move there; if not, the screen will flash and you
                   will have to retry.

   3. Make planet - Allows you to make a new planet.  The maximum number of
                    planets allowed is 9, so if there are already 9, you will
                    have to 5. Delete some first.
                    Use the pointer to choose a location for the center of the
                    new planet and press ENTER to pick a spot.  (The screen
                    will flash and you'll have to retry if the spot is not
                    legal.)  Then use the pointer to move to a point which
                    will lie on the surface of the planet (thereby specifying
                    the radius) and press ENTER.  Press Esc at any point to
                    abort.
                    Note that you can not make black holes, planets only.

   4. Change planet - Allows you to change the density (color) of an existing
                      planet.  Use the pointer and move close to the planet in
                      question (only planets can be changed; black holes can
                      not.)  Press ENTER to pick the planet (the computer will
                      pick the planet closest to the pointer tip.)  Then press
                      1, 2, or 3 for the planet density (a message will inform
                      you of the choices): 1=Red 2=Green 3=Blue.  Press Esc at
                      any point to abort.

   5. Delete planet - You can delete a planet or a black hole.  Use the
                      pointer to move close to the planet or black hole in
                      question and press ENTER (again, planet/black hole
                      closest is chosen.)  The planet/black hole will be
                      deleted.  Press Esc to abort.

------------------------------------------------------------------------------
FINAL WORDS OF WISDOM:

     Ok.  There are the rules and descriptions.  Notice that black holes are
"God-given."  You can't create them, but you can keep picking random setups
until you get one (or more!)
     Also, in the above text, "the planet closest to the tip of the pointer"
means the planet whose center is closest to the pointer tip, not the planets'
surface.
     There are many ways of refining firing angles.  You can either change the
angle, change the velocity, or do both, or pick new paths, or even try to put
the missiles in orbit so they will wrap around!  But be careful with orbits,
they may wrap around and hit your own ship!
     If you notice that the calculations for the missile trajectory are too
slow, that means that there are many planets.  Delete some useless ones to
speed things up a bit.

     If you like the game and have any suggestions, bug reports,
contributions, complaints, etc., call the above BBS and leave me (the SYSOP)
some mail.  If you want new updates, PLEASE tell me and if you have written
your own updates and modifications, please tell me.  Thank you very much!

HAVE FUN, AND BEWARE OF BLACK HOLES!!!!!!

************************ NEW VERSION ***************************
updated 16 sep 90
by Arthur R. Hicken
SysOp  The Midnight BBS
Prodigy: CVTS94A
GE: A.HICKEN

added color stars
added different color tracks for different ships
Linked in bgi and chr files
error checking for non-vga systems
compiled for TP 5.0
compiled including Coprocessor code

No longer does the program require the egavga.bgi file and the sans.chr file

now the only files are:
GRAVWAR2.DOC   this file
GRAVWAR2.PAS   NEW source code
GRAVWAR2.EXE   Executable file with graphics drivers and fonts linked in