Started phasing out the "include everything and we'll have access to everything" approach. Switched over some Windows-specific typedefs (BYTE, BOOL) to help lessen dependencies to Windows headers.
CKnightsManager is now a static class (only one instance was ever used).
Save one less reference to CEbenezerDlg.
Socket managers are now declared globally, and extern'd to the specific classes that use them. Cleaned up Winsock include code, so we only need to include that when absolutely necessary.
The removal of precompiled headers means StdAfx.cpp can go.
This is better defined as an enumeration.
MagicInstance is now a fully-fledged class, so each skill request gets passed through there. Fixed several skill system bugs in the process (mostly due to wrong target being used, e.g. in ExecuteType4()).
Made use of GetWeatherDamage() to apply a 10% damage output increase on skills "matching" the weather type (i.e. if it's sunny, fire skills -- rainy, then lightning gets +10%, snowing, ice...). It's not even used officially, so we'll see how it goes I guess?
Ebenezer too (couldn't resist).
Moved the brunt of the magic system to MagicInstance.cpp. CMagicProcess is now also a static class.
Fully re-enabled (its use was spotty before) precompiled headers.
More tweaks to cut down dependencies & build time.
When the nation's set to 0, it can be attacked by anyone (for NPCs, players won't ever be set to this) should be disregarded. I believe this is where "3" comes in, as the opposing neutral flag. This check should be applied to the other moral checks as well.
Added debug to highlight missing skills.