Initial commit
# This is a combination of 35 commits.
# The first commit's message is:
Initial commit

# This is the 2nd commit message:

Initial commit. + Palette, begin components

# This is the 3rd commit message:

Edited Makefile. Now works properly on Linux.

# This is the 4th commit message:

Adicionada generalizações de resolução e FPS.

# This is the 5th commit message:

+ Sistema de Entidades, módulo da engine.

# This is the 6th commit message:

+ Modules change, + initial tests

# This is the 7th commit message:

+ vec2, drawing test w/ SDL/OpenGL

# This is the 8th commit message:

Edited Makefile, build number and caption string.

# This is the 9th commit message:

Added input module. Still untested.

# This is the 10th commit message:

Finished input. Keyboard test. Joypad to go.

# This is the 11th commit message:

Massive changes. Now at version 0.2.

CHANGELOG:
- Changed color definitions to an enum class.
- Added COLOR::YELLOW.
- Added component pointer search to Entity.
- Added Exception when trying to add an unnamed component.
- Added void* pointer to EntitySystem on Entity class - needs a cast.
- Added pointer to base engine on EntitySystem class.
- Corrected input types.
- Corrected PressedKey bug.
- Added test joystick input for hats, buttons and axis.
- Added full test keyboard input.
- Updated Test classes.
- Updated Makefile.
- Changed version to 0.2 build 0082.

# This is the 12th commit message:

More milestone 1 changes.
CHANGELOG:
- Corrected 360p rendering. 360p is now the default resolution.
- Changed EnzoEngine::COLOR enum to EnzoEngine::eColor for didatic reasons.
- Added new colors:
	Cyan (eColor::CYAN)
	Magenta (eColor::MAGENTA)
	Grey 12% (eColor::GREY10)
	Grey 25% (eColor::GREY25)
	Grey 50% (eColor::GREY50)
	Grey 75% (eColor::GREY75)
	Grey 87% (eColor::GREY80)
	Grey 95% (eColor::GREY90)
- Updated test. Now every button press will make the square assume a color.

# This is the 13th commit message:

Another changes for Milestone 1.
CHANGELOG:
- Corrected analog sticks' weird behaviour when centered on Windows.
- Separated Hat controls from left stick, for better gameplay on Keyboard.
Keyboard keys now are:
	- 1: UP
	- 2: RIGHT
	- 3: DOWN
	- 4: LEFT

# This is the 14th commit message:

New exception for unnamed components.
CHANGELOG:
- Added EnzoException Library, included in stdafx.h.
- Added UnnamedComponentException class for when adding unnamed components
  on the Engine, on an EntitySystem or on an Entity.

# This is the 15th commit message:

Milestone 1 complete. Version 0.2 build 100.
CHANGELOG:
- Added different names for commands and resolutions.
- Added more info to UnnamedComponentException. Now it has an error
  message that can be retrieved using a try-catch block.
- Added a PlayerInputComponent to outsource all input. It also shows how
  you can make multiple codes for many entities, selecting them by name.

# This is the 16th commit message:

Added copy of current C# project for Windows.

# This is the 17th commit message:

Alternative additions.
CHANGELOG:
- Added 75Hz framerate
- Added experimental VSync, Motion Blur and Framerate Cap Removing
- Changed arguments
- Added Box2D Test (!)

# This is the 18th commit message:

Fully ported EnzoEngine to Linux.
TODO:
- Add Farseer Physics Engine port;
- Port test classes

# This is the 19th commit message:

Added TimeSpan and FPS calculation.

# This is the 20th commit message:

Corrected FPS calculation.

# This is the 21st commit message:

Some Milestone 2 changes and bugfixes.
CHANGELOG:
- Corrected FPS calculus; now it works based on SDL for cross-platforming.
- Added sdlEnzoTools library
- Moved the respective OpenGL and SDL includes to glEnzoTools and sdlEnzoTools.

# This is the 22nd commit message:

SDL/GL changing, part 1. Still WIP.

# This is the 23rd commit message:

More Milestone 2 changes (08/10/13)
CHANGELOG:
- Added TimeSpan class;
- Fixed FPS calculator;
- Removed unused SDL/GL attributes (to a separate function) that made screen behave strangely;
- Isolated Motion Blur rendering code on glEnzoTools;
- Improved Motion Blur;
- Added a mouse pointer.

# This is the 24th commit message:

Milestone 2 additions and corrections.
CHANGELOG:
- Outsourced SDL input to sdlEnzoTools;
- Added 16-bit vec2 type;
- Corrected input. Now it receives SDL's signed word type and converts t to a proper 16-bit stick position;
- Added tools to converting dword and word to a range-based float value.

# This is the 25th commit message:

Milestone 2: Fixed bug on Right Stick input.

# This is the 26th commit message:

M2: Added Xbox Controller input support on Linux.
CHANGELOG:
- Added functions to sdlEnzoTools:
  - handleJoypadInput
  - handleXboxInput
  - handleJoypadButtonPress
  - handleXboxButtonPress
- Partial cross-platform recognition of Xbox/Generic controllers
- Added Xbox Button (BigButton) recognition support

# This is the 27th commit message:

M2: Fixed bugs in input; added Xbox Button test.
CHANGELOG:
- Fixed Input initialization: now BigButton is initialized inactive, as it should be;
- Fixed = operator in input for BigButton;
- Added a test for BigButton: Pressing it causes the square to assume green color.

# This is the 28th commit message:

M2: Fixed casts of eInputSignal to word type

# This is the 29th commit message:

M2: Code improvements, multiarchitecture support.
CHANGELOG:
- Added 32 and 64 bit support for compilation - must change Makefile. Still untested on Windows.
- Improved code by using -03 flag
- Added neutral states for eInputStick and eInputAxis, in case of invalid values.

# This is the 30th commit message:

M2: Multiple architecture is now optional.
- Defaults to each system's default.

# This is the 31st commit message:

M2: Improved input.
CHANGELOG:
- Added "isXboxController(int)" function to check if a controller of the
  desired index is an Xbox controller (untested on Linux)
- Added Xbox Controller partial support for Windows: Triggers are buggy,
  and big button input is not supported in Windows yet.

# This is the 32nd commit message:

M2: Added test camera.
CHANGELOG:
- Added camera debug
- Added floor drawing once more
- Added motion blur for the whole scene
- Added a Signed 32-bit vec2 (svec2)
- Fixed & added overload to camera function on glEnzoTools.

# This is the 33rd commit message:

Added .gitignore file

# This is the 34th commit message:

M2 & M3: Data and SDL2 support
CHANGELOG:
- Added SDL2 Linux support
- Added Data folder copying; originally containing the icon
TODO:
- Re-test joystick support; remake what's necessary
- Add SDL2 support for Windows
- Finish Xbox 360 Controller support on Windows, possibly using XInput
- Verify if it's necessary to affirm that you will use OpenGL on Windows

# This is the 35th commit message:

M3: Fixed dumb mistake on initializing joystick
Initial commit
Added Windows SDL2 initial support.
M3: Added SDL2 Xbox input support for Windows.
TODO:
- Get hat input on Linux;
- Add data folder to repository.
M3: Added data folder to repo.
M3: Improved input for Windows and Linux.
CHANGELOG:
- Added Triggers tracking as axis and buttons;
- Added Triggers tracking for non-axis based triggers and keyboard (it'll only assume the minimum and maximum values);
- Added proper button mapping for Linux;
- Added hat mappings as buttons on Linux.
M3: Dead Zone support and improved Camera test.
CHANGELOG:
- Added remDeadZone(word value, word dz) function to Input library. The function helps ignoring values within dz distance from centered in sticks.
- Added a Right Stick camera test. Move the right stickto move camera; press the right stick to center it on the block again.
M3: Added Keyboard's Right Stick input simulation.
M3: + Joystick rumble tests; updated version
M3: Now using Input's eInputType enum.
Corrected "data" folder copying (win32)
+ delay() func to TimeSpan and qword/sqword types
M4: Additions. Open tab for details.
CHANGELOG:
- Set version to 0.4
- Added CHANGELOG file
- Added Screen Management System
- Remade Test classes from scratch. Removed Box2D support temporarily
- Added overridable methods load() and draw() to EntityComponent
- Set update() method as an optional override on EntityComponent
M3: Added icon on Windows.
CHANGELOG:
- Added exception to Thumbs.db on .gitignore
- Added icon resource to EnzoEngine on Windows
- Added resources folder containing resource script to embed icon on
  program and the icon itself.
M4: Changes regarding future features (20131113)
CHANGELOG:
- Added _DEBUG_AND_BUILD_ flag, defined during compilation, for the future
  implementation of Debug & Build mode.
- Replaced const variables for PlayerInputComponent with common variables.
  Its values are defined on PlayerInputComponent's constructor.
M4: Fixd detail for Linux compatibility (20131113)
M4: Initial correction of canvas
Added Texture Loading Function. Close #18
M4: Added Frames management system.
CHANGELOG:
- Added Frame management. Supports multiple framerates,
  plus unlimited framerate with fixed movement
- Added tools for accessing controls on any class or file that
  includes EnzoEngine.h.