Initial

Committing before major overhaul. I got halfway through trying to
implement new SDL 2.0 features when I realized this needs a major
rework.
50% Restructured

Planned, and half implemented the overhaul.

Every entity is now defined by the way it is  constructed in the
subclass constructor. EntityFormat declares Entity-specific
functionality, which is enforced in the code using
ModuleMisuseExceptions to prevent client misuse, and boolean checks to
allow or disallow access to undeclared functionalities.

Non-animated Entites now save their clips to a texture *once*, with no
need to clip the spritesheets every time during rendering. Animated
Entities use AnimationIterators and AnimationModules to refactor and
encapsulate animation-specific code.

Door has been moved to its own Header and .cpp, due to its increasing
independence from GridTiles. As Entity has become redefined, GridTiles
are no longer bulked together as "Entities in the environment".

Converted Classes:
Entity
Player
Door
Traveller

Functional Modules:
Animation
Updating
Travelling
Interaction
Tangible
Conversion 100%, Compile-Time 100%, Run-time: 0%

All code converted to new structure.
All interpreter errors resolved.
All compile time errors resolved.
Run-time exits with error code 1 - yet to investigate.

Added typedefs for XY: Coordinates and Dimensions
Wrapper Classes

Not currently working - an oustanding "Invalid Window" SDL_Error remains
unsolved.

Added separate, temporary testing class to test converted features bit
by bit.
Added wrappers for:
-SDL_Texture
-SDL_Renderer
-SDL_Window
And converted code to the extent that it *should* work, but hell I don't
know.
Testing Project

Added project just for testing, to help separate different tested parts.
Unwanted Commit
Renderer and Window wrappers fixed
Window Scaling

Now scales pixels to fullscreen

WHOOOOOOOOOOOO!!!

Still need to test Texture to Texture rendering.
Wrappers Complete

Testing finished, wrappers fully functional.
Direct Texture Loading

Remvoed the SDL_Surface middleman, thus removing (all?) mentioning of
SDL_Surface, which I think is a more legitimate conversion from SDL 1.2
to 2.0.
Wrappers Implemented

Still, nothing's showing on screen, but I think we can be sure that
that's not the rendering/texturing/whateverwrapper's fault. Must be a
logical fault (still!).
Placeholder UI

Seeing as nothing shows up on screen when wrapped within Entities, I
thought I'd start implementing the HUD placeholder Entities to help
flush out any errors in the symbiosis between Entity and
Texture_Wrapper. Not much came up, and the screen still show up blank.
However, given that these new HUD entities are still quite simple, it
should make it easier to debug within the scope of those entities alone.
Entity Logical Error Fixing

Clearing up some remaining problems in the
inter-Entity-and-Render_Wrapper code. I did a stupid, which I've left
highlighted as an interpreted error, which will require a bit of an
overhaul in the next commit.
Rendering Works
Small Changes

A few errors found in Environment child-adding, but the outward effect
is still the same. Doing some general testing with small examples to
help with the big problems. For some reason, adding the
EnvironmentLayers to the Environment made them disappear. Their
positions seem to be correct, but something about their rendering onto
the Environment texture is causing a problem.
Final(ish) Debugging Stretch!

A few bugs remain:
-Player and Door not rendered (common factor: animation)
-Slight offset of the entire map by two or so pixels.

Configured to emphasize remaining bugs:
-Screen flashes horribly, emphasized by large map size.
-Impossible to layer objects with respect to their Alpha. Single-texture
rendering means that alpha pixels replace, rather than layer.
Considering changing blend mode to additive.
Blending Fixed

Fixed bug where alpha blending was not being re-enabled for clipped
textures.
Functionality Restored, Flashing Permits

Everything is exactly as it was before this entire branch began. All
that remains is to optimise the new code, and remove the cause of that
weird flashing at large map sizes. Hopefully those are one and the same.
Optimised: 15%

Moved around a few things, removed superfluous comments and altered some
outdated code styles.

Removed unnecessary nullptr checks for g_window and g_renderer, ensuring
that they are initialised before Game instantiation.

Removed all reference to the now irrelevant SDL_Surface.
Optimised: 30%

Optimised and checked more classes, removed more superfluous and
commented-out code.

Enabled static-images for Top and Bottom layers.

Fixed a bug where entities were added to their own layers, as well as
the layers immediately below them.

Animation OverrideCycle now checks for valid numbers before overriding.