|SOURCE|
[Common::Game]
* Execute checks if the window has been resized or moved, if it has, the new
  dimensions or position are set in the game configuration, respectively
|SOURCE|
[Linux::Game]
* Removed TODO comment
|SOURCE|
* Moved Source/Linux/Source/Main.cpp to Source/Common/Source/Main.cpp
[Common::Main]
* More verbose output of the build information is given
|SOURCE|
[Common::Game]
* The keyboard and mouse are grabbed for the window, which are released upon
  the program's termination
* F12 toggles between the different grab modes for the mouse
* The new FlushEvents for the ZED::System::Window does not flush any events
|SOURCE|
[Common::Game]
* Added a ZED::System::Mouse to track the state of the mouse
* Execute reports the difference in the X and Y from the centre of the screen
[Linux::LinuxGame]
* PreInitialise adds a mouse device to the input manager
|SOURCE|
[Common::Events]
* Added a new event type: MousePositionInputEventType
* Mouse positions can now be sent to the event router to be handled by the
  event handlers which request them
* MousePositionInputEventData has member funcitons for getting and setting the
  mouse position
* MousePositionEvent maintains a MousePositionInputEventData instance which is
  unpacked by event handlers
[Common::GameplayEvents]
* Replaced the four DEBUG_CAMERA_LOOK_* constants with
  DEBUG_CAMERA_LOOK_HORIZONTAL and DEBUG_CAMERA_LOOK_VERTICAL to handle mouse
  input being in the range of -1 to 1
* Removed the cases for DEBUG_CAMERA_LOOK_* in DebugCameraActive, replacing
  them with the new DEBUG_CAMERA_LOOK_HORIZONTAL and DEBUG_CAMERA_LOOK_VERTICAL
* Added a maximum vertical and horizontal look speed
[Common::Game]
* The mouse position is stored for the previous update and compared against the
  new one to determine if the position has changed
* The mouse position is centred after every update
[Common::GameStateEvents]
* Added code to handle the MousePositionEventType, this is only working with a
  width of 640 and only deals with the horizontal movement, converting it into
  the range -1 (left of screen) to 1 (right of screen), with 0 being in the
  centre
[Common::GameStateManager]
* Added the MousePositionInputType to the event listener of the topmost game
  state
[Common::GameplayGameState]
* The X and Y axis of the connected mouse is bound to the
  DEBUG_CAMERA_LOOK_HORIZONTAL and DEBUG_CAMERA_LOOK_VERTICAL, respectively
* Temporarily enabled the debug camera by default to test out the new mouse
  look
|SOURCE|
[Common::GameStateEvents::GameStateInputListener]
* The mouse Y axis is now handled for 480-high windows
[Common::GameplayEvents]
* Fixed the axis that the rotation occurs on for DEBUG_CAMERA_LOOK_VERTICAL as
  well as not negating the ActionValue
[Common::GameplayGameState]
* Removed the ToggleDebugCamera call from the entry point of the gameplay state
|SOURCE|
[Common::GameplayEvents]
* Added PLAYER_LOOK_HORIZONTAL and PLAYER_LOOK_VERTICAL for the player to look
  around the world
* GameplayInputListener::HandleEvent rotates the player's camera when
  PLAYER_LOOK_* events come through
[Common::GameStateEvents]
* Fixed a typo with ActionData.SetAction on line 181 of GameStateEvents.cpp,
  ActionCount was being passed instead of i
[Common::GameplayGameState]
* Enter registers the mouse X and Y axes for the player look
|SOURCE|
[Common::Events]
* Added ResolutionChangeEventType for when the screen's resolution changes
* Added ResolutionChangeEventData which contains the width and height of the
  resolution change.  Data can be set with SetResolution and retrieved with
  GetResolution.
* If the resolution passed in to SetResolution for the
  ResolutionChangeEventData is zero for either parameter, ZED_FAIL is returned
  and an error message is printed to the standarad output, otherwise ZED_OK is
  returned
* Added ResolutionChangeEvent to pass the resolution to the event router
[Common::GameStateEvents::GameStateInputListener]
* Added member variables to store the width and height of the screen as well as
  the half width and half height in both unsigned 32-bit integer form and
  32-bit floating point form
* The previously hard-coded values for the half width and half height in the
  HandleEvent member function
* When a ResolutionChangeEventType is passed through into the HandleEvent
  function, the resolution is extracted and the local width and height, and
  half-width and half-height are set
[Common::Game]
* Before entering the main loop, the current resolution of the screen is sent
  to the global event router for all events which may be listening for it
* When the window is resized in Execute, the resolution is sent as an event to
  the global event router
[Common::GameStateManager]
* PushState registers the ResolutionChangeEventType with the topmost game state
|SOURCE|
[Common::Game]
* Platform-independent code from LinuxGame's PreInitialise has been moved into
  Initialise
[Linux::LinuxGame]
* PreInitialise only handles creating new instances of the platform-dependent
  objects
|SOURCE|
[Common::Game]
* In Execute's main loop, when checking the key states, the key being examined
  is cast once to a ZED_KEY instead of at least two times during the loop
|SOURCE|
[Common::GameplayEvents::GameplayInputListener]
* The DEBUG_CAMERA_TOGGLE action event has a boolean state to determine if the
  camera should be active or not
[Common::Game]
* In the main loop under Execute, all new key state is sent to the event
  router, on an Intel Core i7-4770 processor under Gentoo Linux, this takes
  approximately 150 microseconds to perform
* The F12 key should toggle the state of the mouse grabbing the window,
  however, this is not working right now, as the mouse is warped to the centre
  at the end of each update, regardless
|SOURCE|
[Common::GameplayEvents::GameplayInputListener]
* PLAYER_MOVE_FORWARD and PLAYER_MOVE_BACKWARD actions in HandleEvent have had
  their values negated respective to what they were prior in order to correctly
  walk forward and backward