Requires additional definition when compiling with SFML dynamic libraries
Modified CMake config file to work with Windows better:
-Allow users to specify library directories, which will enable CMake to automatically search for relevant libraries. These were not necessary in Linux as the paths are already configured when you install the supporting libraries.
-Reordered SFML library linking order as the previous order had some problems linking with MinGW32
-Added definitions for MSVC so that it could compile properly
-FindRocket.cmake was updated to look in library directory specified in the modified CMake config
Changes to enable compilation in Windows with MSVC and MinGW32:
- Undefine ERROR in Logger (already defined in Windows)
- Undefine DEBUG in Prototype.h (defined by tinyxml2.h when targeting Debug version)
- Fixed mkdir function parameters (slightly different in Windows)
- Defined M_PI (unavailable in Windows)
- Coded round function (unavailable in Windows)
- Coded replacement for vasprintf (unavailable in Windows)
- Coded equivalent replacement for coloured logger output
- Included stdint.h to properly define data types like uint32_t
- Fixed some errors in Path.cpp
- Misc fixes
Fixed runtime errors in Windows:

- Forced binary input when loading executable and handled boundary EOF bit cases[WindowsNEExecutable.cpp]
- Forced flushing of output buffers to ensure all loggger output is written to file [Logger.cpp]
- Coded proper retrieval of current working directory and dumping of SimTower resources to that directory [Application.cpp]
- Added current working directory into list of paths to look for data directory [DataManager.cpp]
- Modified Unix paths to be included only in non-Windows environment [DataManager.cpp]
- Bugfix: Internal resource path in BitmapManager, SoundManager now uses the correct path separator
- Bugfix: Path.h now returns path directly instead of through another function (avoid temporary variable corruption)
- Bugfix: Undefined behaviour with va_list in MSVC (last parameter before the variable argument list cannot be a reference variable) caused problems during runtime in SimTowerLoader. Swapped the 1st two parameters in the function definitions of loadMerged and loadMergedByID.
- Bugfix: Fixed undefined behaviour when erasing current iterator in adjusting sound pitch and autorelease sounds. [Game.cpp]

OpenSkyScraper should be fully executable in Windows after these changes.
Fixed compile errors on Linux

Rectified minor errors in names (case sensitive on Linux) and missing headers after the previous modifications to make this able to compile and run on Windows. Should be working in Linux now (tested on Linux Mint 14).
Some additions and fixes to game logic:

- Prevent construction when clicking on toolboxWindow, timeWindow and mapWindow [Game.cpp]
- Call for elevator again if queue is not empty after a full elevator car leaves the floor. [Car.cpp, Queue.cpp]
- Bugfix: Properly sets elevator car to move to next queue in path if it is nearer than current car destination floor. Missing return statement causes car to move to destination floor regardless, but the nearer queue is still flagged as answered, causing problems. [Elevator.cpp]
- Bugfix: Compute arrival time for customers to fastfood using year, quarter and day. [Fastfood.cpp]
- Bugfix: Count earnings based only on Customers who actually arrive at fast food. This means customer cannot be removed from CustomerMetadata until the next day. [Fastfood.cpp]
New features, performance improvements, bug fixes:
- Added return route to lobby for fast food customers when leaving. [FastFood.cpp]
- Check for FastFood customer arrival via priority_queue. Set journey only if route is not empty. [FastFood.cpp]
- Check if FastFood customer is ready to leave via ordered list. Skip customer if route to leave is empty. [FastFood.cpp]
- Update all routes only when elevator shaft has been resized, and only when bulldozing a transport item. [Game.cpp]
- Update all routes only when constructing a transport item, otherwise just update route of newly constructed item. [Game.cpp]
- Tidied up code to prevent construction when clicking on in-game tool windows. [Game.cpp]

Bugfixes
--------
- Only consider checking the score of the newly found route if it is not empty. [Game.cpp]
- Elevator serves only up till the floor below motor assembly. [Elevator.cpp]
- Call correct desc() function for Rect description() [Rect.h]
Fixed compile error from previous commit

-Issues compiling with MinGW32 and Linux gcc because of missing const
New construction logic, performance improvements, bugfixes:

- Prevent construction if item is blocked (overlapping another item). [Game.cpp]
- Prevent construction if item is wider than floor below/above. [Game.cpp]
- Extend lobby if it already exists on floor. [Game.cpp]
- Switch to finger tool after construction of elevator. [Game.cpp]
- Added item-maps (by floor, by type) to improve performance when accessing items within game. [Game.cpp]

Bugfixes
--------
- Adding of cars to elevator only when construction tool is within elevator shaft. [Game.cpp]
- Elevator cars are added at the floor where the construction tool is positioned. [Elevator.cpp]
Minor changes and bugfixes for construction and elevator resizing.

- Prevent bulldozing of lobbies. [Game.cpp]

Bugfixes
--------
- Resizing elevators now correctly repositions cars. [Elevator.cpp]
- Resizing elevators now removes previously unserviced floors if they are no longer within the elevator shaft range. [Elevator.cpp]
- Construction of stairs/escalators now correctly blocked if they are too close to neighbouring stairs/escalators. [Game.cpp]
Minor TODO changes.
Support for compressed SIMTOWER.EX_

Features:
- Added support for KWAJ-compressed SIMTOWER.EX_ files through libmspack. This makes it possible to play the game without touching a Windows machine ;).  The support is optional, building the game without libmspack will require a decompressed (i.e. setupped) copy of SIMTOWER.EXE.
Merge branch 'restart' into hoshi10-merge
Added bugs to TODO