Changes to support Syringe updates and .inj file removal:
hook macros have been changed significantly, keep these changes in mind:
- hook address and size now have to be specified as proper integers (with 0x prefix).
- DEFINE_HOOK_AGAIN cannot be placed between DEFINE_HOOK and function body, as it's no longer a NOP macro. Either put it above DEFINE_HOOK or below function body.
Do not mess with struct alignment.
Converted Pip as PipScale to classes.
Pixel offsets used to draw the different foundation types on the mini map.
HouseClass::Observer.
Added INIClass::IsBlank helper function.

The method was moved over from Ares, because it is rather a property of the game.
Converted InfDeath to class.
Sound and Vox enums

SoundPriority converted to class, values off-by-one fixed.
Old SoundType was actually VoxType. Converted to class.
SoundControl converted to class.
Added real SoundType as class.
Added VoxPriority as class.

Updated VocClass and VoxClass to use them. Also fixed the length of the VocClass::Name field.
Converted AIMode to class.
Armor converted to class.
ChargeDrainState enum.
AnimClass::PaletteName field.
FlamingGuy fields for AnimClass.
Named the MapDescription field.
Added complete VoxelAnimTypeClass definition.
Added a Quaternion class stub.

Quaternions use different math and support different operations than a hypothetical Vector4D<float>, so it would have been unnatural to make it a typedef.
Added BallisticData definition.

BallisticData is responsible for encapsulating physical properties. These includes elasticity when bouncing off the ground, gravity, position, current velocity and terminal velocity, orientation and rotation.
Added complete VoxelAnimClass definition.

unknown_int_100 is an initialized field, but it seems to be unused.
Use BallisticData in AnimClass.
Complete DifficultyStruct.
Powerup enumeration converted to class.