In this file, each class is described in at least the following ways:

-Where from? Sources we used

-Who done it? Which of us primarily wrote the class (Joe Merrit, Mike Lamenzo, Peter Mowry "Pem")

-What is it? General description of the class's purpose.  Also includes some design analysis.

---------------------------------------------------------------------------------------------
Main/Global Files:

-Where from?
GameCore and GameError from class example.  GameEngine originally from class example,
but has been totally rewritten for our specific project.

-Who done it? All

-What is it?

GameCore.h
	Holds all the main constants for the game and the headers files for GameError so
that it can be used in any of the files.

GameEngine.cpp
	The main file.  Contains the WinMain and the Game loop.  This file is in charge of
running and managing all of the other files.
	
GameError.cpp
	Taken from example code in class, outputs a string to the debug window when
running the program in MS Visual Studio in debug mode.

---------------------------------------------------------------------------------------------
Graphics/Sound and map files:

Where from? Custom made, except for the player graphics and temporary sound files.

Who done it? Mostly Joe.  A good amount Mike.  Pem generally made ugly graphics with the
necessary format (size/transparency) to work with the executable.  Then Joe and Mike made
them prettier.

- Note from Joe -
The sounds are actually taken from Abuse, The Guardian Legend, and Lufia, the graphics
for the character are obviously from Starcraft, and the christmas tree, well, clip art.
The tiles came from several places too, eye.box.sk for the grass texture, Fallout Tactics
for the dirt, sand, and water.  The font is SerpentineDBold, I have no idea where I found
it, probably www.fontpool.com long ago.

What is it?
Currently organized with the class that uses them:
-CharacterScreen/Images/*
-FontEngine/Alphabet.bmp
-Maps/*
-Player/Images/*
-Sound/*.wav
-TileMap/Tiles/*

---------------------------------------------------------------------------------------------
GameDXSetup:

Where from? Largely based on class examples

Who done it? All

What it is?
-A wrapper class for a Direct 3D object.  Used to create a new Direct 3D object
and called from WinMain when another class needs an instance of a Direct 3D object.

-Originally was used to load images from disk to surfaces, textures, etc in various forms.
This functionality has been moved to the specific classes in which they are used.
It may be put in an ImageManager class if loading functionality overlaps. However,
the specifics of image loading currently differ per class.

-Also contains functionally to load in bitmaps to a surface, this is used for displaying
our onscreen text

-Game is meant to be run in full-screen; windowed mode for debugging (removed ToggleWindowed 
method; instead specify at start-up)

---------------------------------------------------------------------------------------------
GameWindow:

Where from? Largely based on class examples

Who done it? All

What it is?
-A wrapper class for all the windows calls necessary to create and manage a window.
This class seperates the windows stuff from the rest of the program (DirectX stuff).
Stores all information about the window (size, style) as well as handles to the window.
-Also includes the WinProc

---------------------------------------------------------------------------------------------
GameDI:

Where from? Created from examples in DX Documentation and the Zen code

Who done it? All

What it is?
Houses the input devices (a mouse and a keyboard).
Also keeps track of the mouse's change in position.

---------------------------------------------------------------------------------------------
Timing:

Where from? Created from example classes from class and the Zen book

Who done it? All

What it is?
A class that manages a timer so that game events can be time driven.  Houses
the Performance Counter to help do this.

Keep track of the frames be second the game is running.  The timer may be extended later to
time game-play events not based on frame-rate.

---------------------------------------------------------------------------------------------
FontEngine:
Where from? Example classes from the Zen book

Who done it? All

What it is?
It is in charge of loading and displaying text in a custom font on the screen.
It loads in a single bitmap file which contains all of the characters to be displayed.
This was recently updated so that it would draw correctly with the other sprites.

---------------------------------------------------------------------------------------------
TextBuffer:
Where from? None

Who done it? Joe

What it is?
This class creates a text buffer by storing text that will then be displayed in the lower
right hand corner of the screen.  

---------------------------------------------------------------------------------------------
Sound:
Where from? Examples on http://www.gamedev.net

Who done it? Joe

What it is?
A wrapper class for loading and playing sounds.  It uses the direct sound and
direct music classes to do this.  Currently just plays many sounds at a time as well
as streaming music in the background.

---------------------------------------------------------------------------------------------
CharacterScreen:

Where from? None

Who done it? Pem

What it is? 
It is in charge of managing and displaying the character screen.  A task with 
involves both images and text display.  Works with the Sprite and FontEngine classes to do 
this.

---------------------------------------------------------------------------------------------
Sprite:

Where from? Examples in the Zen book

Who done it? Pem

What it is?
A classes that will load images and display them on the screen.  It also
handles any transformations needed before images are displayed.

---------------------------------------------------------------------------------------------
TileMap:

Where from? None

Who done it? Pem wrote initial (had left/right working); Mike debugged and extended

- Note from Joe - 
Don't forget my horrendous tree code contribution!

What it is?
This class is in charge of the holding, altering, and displaying the map.  It
reads in the information about the map from a file.  For displaying the map it uses the
Sprite class.  
*This class now handles the monsters as well, reading them in, storing them
and displaying them when nessicary.
*This class now handles blocking, checking to see if a past rect will intercept
anything it shouldn't.

---------------------------------------------------------------------------------------------
TileMapMouseMoveVisitor:

Where from? None

Who done it? Pem

What it is?
This class setups up vectors and handles all of the movement in the game.  It makes sure
nothing moves too fast or too much in a single pass.  It works with both types of units.


---------------------------------------------------------------------------------------------
Unit:
Where from? None

Who done it? Mike

What it is?  
This is a parent class for both the player and the monster classes.  This
allows movement for both the player and the monsters to be handled by a single class.

---------------------------------------------------------------------------------------------
Player:
Where from? None

Who done it? Pem

What it is? 
This class handles displaying and animating the player on the screen.  It uses
the Sprite class to display the player.

---------------------------------------------------------------------------------------------
Monster:
Where from? Player Class

Who done it? Mike

What it is? 
This class is a single monster object.  It handles displaying and animating
the player on the screen.

---------------------------------------------------------------------------------------------
Shadow:
Where from? Character Screen Class

Who done it? Mike

What it is? 
This is a simple class that holds a sprite to overlay to make the appearance
of light and shadow when moving around.

---------------------------------------------------------------------------------------------
RPG_Rules:
Where from? None

Who done it? Pem through in-depth game design, including lots of balancing.
Joe and Mike want it simple; Pem wants it complicated.  The official compromise in a quote
from Mike: "We will touch it with a 10 foot pole".

What is it?
These classes are for the game rules.  They are for the future.  More information can be found in
the Informal_Game_Design folder.