Update for FacingStruct definition changes.
Update for FacingStruct definition changes.
Use descriptive constants instead of magic numbers
Renamed FacingStruct::Data to DirStruct
Merge branch 'master' into v02

Conflicts:
	src/Ares.version.h
	src/Ext/Techno/Body.cpp
	src/Ext/Techno/Hooks.Spotlights.cpp
Related to issue #1051260: AI team building issue

Converted the ugly macros into a half-as-ugly template function. The important change is swapping the operands in a comparison (line 52 old, 39 new). It tried to find the higher value, but TeamCreationFrame was already initialized with the highest value a signed int can hold, thus, it didn't do anything.

Thanks to DCoder for finding this out.
Allow the AI to recruit existing units when it is unable to build a certain unit.
Related to issue #1051260

Commented out an optimization hook that might be related to the AI team issue.
Related to issue #1085513: Superweapon UIName/tooltip max length issue

Replaced the literal tooltip buffer pointer by the pointer in SidebarClass, which makes it obvious the buffer is 66 chars long, and not just 32. Use the full length for super weapon cameo tool tips and ensure the last char is 0.
Related to issue #1075936: Powered aircraft types explode permanently

When using the new PoweredBy= logic, Aircraft becoming unpowered in air should not explode multiple times while crashing any more.
Related to issue #1075936: Powered aircraft types still exploding permanently

The PoweredUnitClass updated its state even if the unit was crashing already. This caused aircraft to explode every update step anew. Update is disabled for destroyed units now.

Because the method to disable the unit contained a code path that destroys flying aircraft, it was possible that the unit's memory (ExtData) was freed while currently being used. This code has been removed. Instead, the return value is used to indicate the unit has to be destroyed.
Updated version number for 0.2p2.
Update for latest YRpp definitions.