|
UFO: Alien Invasion
|
Airfight related stuff. More...
#include "../../DateTime.h"#include "../../cl_shared.h"#include "cp_campaign.h"#include "cp_mapfightequip.h"#include "cp_geoscape.h"#include "cp_ufo.h"#include "cp_missions.h"#include "save/save_airfight.h"#include "../../sound/s_main.h"
Go to the source code of this file.
Macros | |
| #define | AIRCRAFT_INVALID -1 |
Functions | |
| static void | AIRFIGHT_RemoveProjectile (aircraftProjectile_t *projectile) |
| Remove a projectile from ccs.projectiles. | |
| static bool | AIRFIGHT_AddProjectile (const base_t *attackingBase, const installation_t *attackingInstallation, aircraft_t *attacker, aircraft_t *target, aircraftSlot_t *weaponSlot) |
| Add a projectile in ccs.projectiles. | |
| static void | AIRFIGHT_MissTarget (aircraftProjectile_t *projectile) |
| Change destination of projectile to an idle point of the map, close to its former target. | |
| int | AIRFIGHT_CheckWeapon (const aircraftSlot_t *slot, float distance) |
| Check if the selected weapon can shoot. | |
| int | AIRFIGHT_ChooseWeapon (const aircraftSlot_t *slot, int maxSlot, const vec2_t pos, const vec2_t targetPos) |
| Choose the weapon an attacking aircraft will use to fire on a target. | |
| static float | AIRFIGHT_ProbabilityToHit (const aircraft_t *shooter, const aircraft_t *target, const aircraftSlot_t *slot) |
| Calculate the probability to hit the enemy. | |
| void | AIRFIGHT_ExecuteActions (const campaign_t *campaign, aircraft_t *shooter, aircraft_t *target) |
| Decide what an attacking aircraft can do. | |
| void | AIRFIGHT_RemoveProjectileAimingAircraft (const aircraft_t *aircraft) |
| Set all projectile aiming a given aircraft to an idle destination. | |
| static void | AIRFIGHT_UpdateProjectileForDestroyedAircraft (const aircraft_t *aircraft) |
| Set all projectile attackingAircraft pointers to nullptr. | |
| void | AIRFIGHT_ActionsAfterAirfight (const campaign_t *campaign, aircraft_t *shooter, aircraft_t *aircraft, bool phalanxWon) |
| Actions to execute when a fight is done. | |
| static bool | AIRFIGHT_ProjectileReachedTarget (const aircraftProjectile_t *projectile, float movement) |
| Check if some projectiles on geoscape reached their destination. | |
| static int | AIRFIGHT_GetDamage (const objDef_t *od, const aircraft_t *target) |
| Calculates the damage value for the airfight. | |
| static void | AIRFIGHT_ProjectileHits (const campaign_t *campaign, aircraftProjectile_t *projectile) |
| Solve the result of one projectile hitting an aircraft. | |
| static void | AIRFIGHT_GetNextPointInPathFromVector (const float *movement, const vec2_t originalPoint, const vec3_t orthogonalVector, vec2_t finalPoint) |
| Get the next point in the object path based on movement converting the positions from polar coordinates to vector for the calculation and back again to be returned. | |
| static void | AIRFIGHT_GetNextPointInPath (const float *movement, const vec2_t originalPoint, const vec2_t targetPoint, float *angle, vec2_t finalPoint, vec3_t orthogonalVector) |
| Get the next point in the object path based on movement. | |
| void | AIRFIGHT_CampaignRunProjectiles (const campaign_t *campaign, int dt) |
| Update values of projectiles. | |
| static void | AIRFIGHT_BaseShoot (const base_t *base, baseWeapon_t *weapons, int maxWeapons) |
| Check if one type of battery (missile or laser) can shoot now. | |
| static void | AIRFIGHT_InstallationShoot (const installation_t *installation, baseWeapon_t *weapons, int maxWeapons) |
| Check if one type of battery (missile or laser) can shoot now. | |
| void | AIRFIGHT_CampaignRunBaseDefence (int dt) |
| Run base defences. | |
| bool | AIRFIGHT_SaveXML (xmlNode_t *parent) |
| Save callback for savegames in XML Format. | |
| bool | AIRFIGHT_LoadXML (xmlNode_t *parent) |
| Load callback for savegames in XML Format. | |
| void | AIRFIGHT_InitStartup (void) |
Airfight related stuff.
Definition in file cp_airfight.cpp.
| #define AIRCRAFT_INVALID -1 |
Invalid aircraft index for savegames (global index).
Definition at line 38 of file cp_airfight.cpp.
Referenced by AIRFIGHT_LoadXML().
| void AIRFIGHT_ActionsAfterAirfight | ( | const campaign_t * | campaign, |
| aircraft_t * | shooter, | ||
| aircraft_t * | aircraft, | ||
| bool | phalanxWon ) |
Actions to execute when a fight is done.
| [in] | campaign | The campaign data structure |
| [in] | shooter | Pointer to the aircraft that fired the projectile. |
| [in] | aircraft | Pointer to the aircraft which was destroyed (alien or phalanx). |
| [in] | phalanxWon | true if PHALANX won, false if UFO won. |
Definition at line 464 of file cp_airfight.cpp.
References _, AIR_DestroyAircraft(), AIR_PilotSurvivedCrash(), AIRFIGHT_RemoveProjectileAimingAircraft(), AIRFIGHT_UpdateProjectileForDestroyedAircraft(), cgi, Employee::chr, CP_MissionIsOverByUFO(), CP_SpawnCrashSiteMission(), CP_SpawnRescueMission(), CP_UFOProceedMission(), DEBUG_CLIENT, GEO_GetColor(), MapIsWater, MAPTYPE_TERRAIN, aircraft_t::maxWeapons, MS_AddNewMessage(), MSG_DEATH, MSG_STANDARD, aircraft_t::pilot, aircraft_t::pos, character_t::score, SKILL_EVADING, SKILL_TARGETING, chrScoreGlobal_t::skills, and UFO_NotifyPhalanxAircraftRemoved().
Referenced by AIRFIGHT_ProjectileHits().
|
static |
Add a projectile in ccs.projectiles.
| [in] | attackingBase | the attacking base in ccs.bases[]. nullptr is the attacker is an aircraft or a samsite. |
| [in] | attackingInstallation | the attacking samsite in ccs.installations[]. nullptr is the attacker is an aircraft or a base. |
| [in] | attacker | Pointer to the attacking aircraft |
| [in] | target | Pointer to the target aircraft |
| [in] | weaponSlot | Pointer to the weapon slot that fires the projectile. |
Definition at line 62 of file cp_airfight.cpp.
References AII_ReloadWeapon(), aircraftProjectile_t::aimedAircraft, aircraftProjectile_t::aircraftItem, aircraftSlot_t::ammo, aircraftSlot_t::ammoLeft, aircraftProjectile_t::angle, aircraftProjectile_t::attackerPos, aircraftProjectile_t::attackingAircraft, aircraftProjectile_t::beam, craftItem::beam, aircraftProjectile_t::bullets, craftItem::bullets, ccs, cgi, objDef_t::craftitem, DEBUG_CLIENT, aircraftProjectile_t::idleTarget, aircraftSlot_t::item, MAX_PROJECTILESONGEOSCAPE, aircraftProjectile_t::numProjectiles, aircraft_t::pos, aircraftProjectile_t::pos, base_t::pos, installation_t::pos, aircraftProjectile_t::rocket, aircraftProjectile_t::time, and VectorSet.
Referenced by AIRFIGHT_BaseShoot(), AIRFIGHT_ExecuteActions(), and AIRFIGHT_InstallationShoot().
|
static |
Check if one type of battery (missile or laser) can shoot now.
| [in] | base | Pointer to the firing base. |
| [in] | weapons | The base weapon to check and fire. |
| [in] | maxWeapons | The number of weapons in that base. |
Definition at line 723 of file cp_airfight.cpp.
References AIR_STATS_WRANGE, AIRFIGHT_AddProjectile(), AIRFIGHT_CheckWeapon(), AIRFIGHT_MissTarget(), AIRFIGHT_ProbabilityToHit(), AIRFIGHT_WEAPON_CAN_NEVER_SHOOT, AIRFIGHT_WEAPON_CAN_NOT_SHOOT_AT_THE_MOMENT, aircraftSlot_t::ammo, ccs, objDef_t::craftitem, aircraftSlot_t::delayNextShot, frand(), GetDistanceOnGlobe(), i, aircraftSlot_t::installationTime, aircraft_t::pos, base_t::pos, baseWeapon_t::slot, craftItem::stats, baseWeapon_t::target, UFO_IsUFOSeenOnGeoscape(), and craftItem::weaponDelay.
Referenced by AIRFIGHT_CampaignRunBaseDefence().
Run base defences.
| [in] | dt | Time elapsed since last call of this function. |
Definition at line 829 of file cp_airfight.cpp.
References AII_BaseCanShoot(), AII_InstallationCanShoot(), AII_ReloadWeapon(), AIRFIGHT_BaseShoot(), AIRFIGHT_InstallationShoot(), aircraftSlot_t::ammoLeft, B_DEFENCE_LASER, B_DEFENCE_MISSILE, B_GetBuildingStatus(), B_GetNext(), B_IsUnderAttack, base_t::batteries, aircraftSlot_t::delayNextShot, INS_Foreach, INSTALLATION_WORKING, base_t::lasers, base_t::numBatteries, base_t::numLasers, and baseWeapon_t::slot.
Referenced by CP_CampaignFunctionPeriodicCall().
| void AIRFIGHT_CampaignRunProjectiles | ( | const campaign_t * | campaign, |
| int | dt ) |
Update values of projectiles.
| [in] | campaign | The campaign data structure |
| [in] | dt | Time elapsed since last call of this function. |
Definition at line 676 of file cp_airfight.cpp.
References aircraftProjectile_t::aimedAircraft, aircraftProjectile_t::aircraftItem, AIRFIGHT_GetNextPointInPath(), AIRFIGHT_ProjectileHits(), AIRFIGHT_ProjectileReachedTarget(), AIRFIGHT_RemoveProjectile(), aircraftProjectile_t::angle, ccs, objDef_t::craftitem, aircraftProjectile_t::hasMoved, aircraftProjectile_t::idleTarget, aircraftProjectile_t::numInterpolationPoints, aircraft_t::pos, aircraftProjectile_t::pos, aircraftProjectile_t::projectedPos, DateTime::SECONDS_PER_HOUR, aircraftProjectile_t::time, VectorCopy, and craftItem::weaponSpeed.
Referenced by CP_CampaignFunctionPeriodicCall(), and TEST_F().
| int AIRFIGHT_CheckWeapon | ( | const aircraftSlot_t * | slot, |
| float | distance ) |
Check if the selected weapon can shoot.
| [in] | slot | Pointer to the weapon slot to shoot with. |
| [in] | distance | distance between the weapon and the target. |
Definition at line 201 of file cp_airfight.cpp.
References AIR_STATS_WRANGE, AIRFIGHT_WEAPON_CAN_NEVER_SHOOT, AIRFIGHT_WEAPON_CAN_NOT_SHOOT_AT_THE_MOMENT, AIRFIGHT_WEAPON_CAN_SHOOT, aircraftSlot_t::ammo, aircraftSlot_t::ammoLeft, objDef_t::craftitem, aircraftSlot_t::delayNextShot, aircraftSlot_t::installationTime, aircraftSlot_t::item, and craftItem::stats.
Referenced by AII_WeaponsCanShoot(), AIRFIGHT_BaseShoot(), AIRFIGHT_ChooseWeapon(), AIRFIGHT_InstallationShoot(), and BDEF_AutoTarget().
| int AIRFIGHT_ChooseWeapon | ( | const aircraftSlot_t * | slot, |
| int | maxSlot, | ||
| const vec2_t | pos, | ||
| const vec2_t | targetPos ) |
Choose the weapon an attacking aircraft will use to fire on a target.
| [in] | slot | Pointer to the first weapon slot of attacking base or aircraft. |
| [in] | maxSlot | maximum number of weapon slots in attacking base or aircraft. |
| [in] | pos | position of attacking base or aircraft. |
| [in] | targetPos | Pointer to the aimed aircraft. |
Definition at line 235 of file cp_airfight.cpp.
References AIRFIGHT_CheckWeapon(), AIRFIGHT_WEAPON_CAN_NEVER_SHOOT, AIRFIGHT_WEAPON_CAN_NOT_SHOOT_AT_THE_MOMENT, AIRFIGHT_WEAPON_CAN_SHOOT, GetDistanceOnGlobe(), and i.
Referenced by AIRFIGHT_ExecuteActions(), CL_DisplayPopupInterceptUFO(), CP_InterceptNextStage(), CP_UFOProceedMission(), and UFO_SendPursuingAircraft().
| void AIRFIGHT_ExecuteActions | ( | const campaign_t * | campaign, |
| aircraft_t * | shooter, | ||
| aircraft_t * | target ) |
Decide what an attacking aircraft can do.
| [in] | campaign | The campaign data structure |
| [in] | shooter | The aircraft we attack with. |
| [in] | target | The ufo we are going to attack. |
Definition at line 348 of file cp_airfight.cpp.
References _, AIR_AircraftReturnToBase(), AIR_IsUFO, AIR_SendAircraftPursuingUFO(), aircraft_t::aircraftTarget, AIRFIGHT_AddProjectile(), AIRFIGHT_ChooseWeapon(), AIRFIGHT_MissTarget(), AIRFIGHT_ProbabilityToHit(), AIRFIGHT_WEAPON_CAN_NOT_SHOOT_AT_THE_MOMENT, AIRFIGHT_WEAPON_CAN_SHOOT, aircraftSlot_t::ammo, ccs, cgi, CP_UFOProceedMission(), objDef_t::craftitem, DEBUG_CLIENT, aircraftSlot_t::delayNextShot, aircraft_t::detected, frand(), aircraft_t::maxWeapons, MS_AddNewMessage(), MSO_CheckAddNewMessage(), aircraft_t::name, NT_UFO_ATTACKING, aircraft_t::pos, RADAR_AddDetectedUFOToEveryRadar(), RADAR_CheckRadarSensored(), UFO_CheckShootBack(), UFO_DetectNewUFO(), UFO_SendPursuingAircraft(), va(), craftItem::weaponDelay, and aircraft_t::weapons.
Referenced by AIR_CampaignRun(), UFO_CheckShootBack(), and UFO_SearchAircraftTarget().
|
static |
Calculates the damage value for the airfight.
| [in] | od | The ammo object definition of the craft item |
| [in] | target | The aircraft the ammo hits |
Definition at line 583 of file cp_airfight.cpp.
References AIR_STATS_SHIELD, objDef_t::craftitem, aircraft_t::damage, aircraft_t::stats, and craftItem::weaponDamage.
Referenced by AIRFIGHT_ProjectileHits().
|
static |
Get the next point in the object path based on movement.
| [in] | movement | The distance that the object needs to move. |
| [in] | originalPoint | The point from which the object is moving. |
| [in] | targetPoint | The final point to which the object is moving. |
| [out] | angle | The direction that the object moving in. |
| [out] | finalPoint | The next point from the original point + movement in "angle" direction. |
| [out] | orthogonalVector | The orthogonal vector. |
Definition at line 665 of file cp_airfight.cpp.
References AIRFIGHT_GetNextPointInPathFromVector(), and GEO_AngleOfPath().
Referenced by AIRFIGHT_CampaignRunProjectiles().
|
static |
Get the next point in the object path based on movement converting the positions from polar coordinates to vector for the calculation and back again to be returned.
| [in] | movement | The distance that the object needs to move. |
| [in] | originalPoint | The point from which the object is moving. |
| [in] | orthogonalVector | The orthogonal vector. |
| [out] | finalPoint | The next point from the original point + movement in "angle" direction. |
Definition at line 647 of file cp_airfight.cpp.
References PolarToVec(), RotatePointAroundVector(), and VecToPolar().
Referenced by AIRFIGHT_GetNextPointInPath().
Definition at line 998 of file cp_airfight.cpp.
References cgi.
Referenced by CP_InitStartup().
|
static |
Check if one type of battery (missile or laser) can shoot now.
| [in] | installation | Pointer to the firing intallation. |
| [in] | weapons | The installation weapons to check and fire. |
| [in] | maxWeapons | The number of weapons in that installation. |
Definition at line 777 of file cp_airfight.cpp.
References AIR_STATS_WRANGE, AIRFIGHT_AddProjectile(), AIRFIGHT_CheckWeapon(), AIRFIGHT_MissTarget(), AIRFIGHT_ProbabilityToHit(), AIRFIGHT_WEAPON_CAN_NEVER_SHOOT, AIRFIGHT_WEAPON_CAN_NOT_SHOOT_AT_THE_MOMENT, aircraftSlot_t::ammo, ccs, objDef_t::craftitem, aircraftSlot_t::delayNextShot, frand(), GetDistanceOnGlobe(), i, aircraftSlot_t::installationTime, aircraft_t::pos, installation_t::pos, baseWeapon_t::slot, craftItem::stats, baseWeapon_t::target, UFO_IsUFOSeenOnGeoscape(), and craftItem::weaponDelay.
Referenced by AIRFIGHT_CampaignRunBaseDefence().
| bool AIRFIGHT_LoadXML | ( | xmlNode_t * | parent | ) |
Load callback for savegames in XML Format.
| [in] | parent | XML Node structure, where we get the information from |
Definition at line 937 of file cp_airfight.cpp.
References aircraftProjectile_t::aimedAircraft, AIR_AircraftGetFromIDX(), AIRCRAFT_INVALID, aircraftProjectile_t::aircraftItem, aircraftProjectile_t::angle, aircraftProjectile_t::attackerPos, aircraftProjectile_t::attackingAircraft, aircraftProjectile_t::beam, aircraftProjectile_t::bullets, ccs, cgi, i, aircraftProjectile_t::idleTarget, INVSH_GetItemByID(), MAX_MULTIPLE_PROJECTILES, MAX_PROJECTILESONGEOSCAPE, aircraftProjectile_t::numProjectiles, aircraftProjectile_t::pos, technology_t::provides, RS_GetTechByProvided(), SAVE_AIRFIGHT_AIMEDAIRCRAFT, SAVE_AIRFIGHT_AIRCRAFTIDX, SAVE_AIRFIGHT_ANGLE, SAVE_AIRFIGHT_ATTACKERPOS, SAVE_AIRFIGHT_ATTACKINGAIRCRAFT, SAVE_AIRFIGHT_BEAM, SAVE_AIRFIGHT_BULLET, SAVE_AIRFIGHT_IDLETARGET, SAVE_AIRFIGHT_ISUFO, SAVE_AIRFIGHT_ITEMID, SAVE_AIRFIGHT_POS, SAVE_AIRFIGHT_PROJECTILE, SAVE_AIRFIGHT_TIME, aircraftProjectile_t::time, UFO_GetByIDX(), and xmlNode_t.
Referenced by AIR_LoadXML().
|
static |
Change destination of projectile to an idle point of the map, close to its former target.
| [in] | projectile | The projectile to update |
Definition at line 160 of file cp_airfight.cpp.
References aircraftProjectile_t::aimedAircraft, frand(), GetDistanceOnGlobe(), aircraftProjectile_t::idleTarget, aircraft_t::pos, aircraftProjectile_t::pos, and VectorCopy.
Referenced by AIRFIGHT_BaseShoot(), AIRFIGHT_ExecuteActions(), AIRFIGHT_InstallationShoot(), and AIRFIGHT_RemoveProjectileAimingAircraft().
|
static |
Calculate the probability to hit the enemy.
| [in] | shooter | Pointer to the attacking aircraft (may be nullptr if a base fires the projectile). |
| [in] | target | Pointer to the aimed aircraft (may be nullptr if a target is a base). |
| [in] | slot | Slot containing the weapon firing. |
Targeting skill increases hit chance for shooter With this equation, max increase (0.29) is reached at skill level 70. Any higher skill rating actually reduces the bonus, so a skill cap should be placed at 70 when skill increase is implemented for pilots.
Evasion skill decreases hit chance for shooter With this equation, max decrease (0.29) is reached at skill level 70. Any higher skill rating actually reduces the bonus, so a skill cap should be placed at 70 when skill increase is implemented for pilots.
Definition at line 273 of file cp_airfight.cpp.
References AIR_IsUFO, AIR_STATS_ACCURACY, AIR_STATS_ECM, aircraftSlot_t::ammo, cgi, Employee::chr, objDef_t::craftitem, DEBUG_CLIENT, aircraftSlot_t::item, aircraft_t::pilot, character_t::score, SKILL_EVADING, SKILL_TARGETING, chrScoreGlobal_t::skills, aircraft_t::stats, and craftItem::stats.
Referenced by AIRFIGHT_BaseShoot(), AIRFIGHT_ExecuteActions(), and AIRFIGHT_InstallationShoot().
|
static |
Solve the result of one projectile hitting an aircraft.
| [in] | campaign | The campaign data structure |
| [in] | projectile | Pointer to the projectile. |
Definition at line 608 of file cp_airfight.cpp.
References aircraftProjectile_t::aimedAircraft, AIR_IsAircraftInBase(), AIR_IsUFO, aircraftProjectile_t::aircraftItem, AIRFIGHT_ActionsAfterAirfight(), AIRFIGHT_GetDamage(), aircraftProjectile_t::attackingAircraft, cgi, aircraft_t::damage, and aircraftProjectile_t::rocket.
Referenced by AIRFIGHT_CampaignRunProjectiles().
|
static |
Check if some projectiles on geoscape reached their destination.
| [in] | projectile | Pointer to the projectile |
| [in] | movement | distance that the projectile will do up to next draw of geoscape |
Definition at line 549 of file cp_airfight.cpp.
References aircraftProjectile_t::aimedAircraft, AIR_STATS_WRANGE, aircraftProjectile_t::aircraftItem, objDef_t::craftitem, GetDistanceOnGlobe(), aircraftProjectile_t::idleTarget, aircraft_t::pos, aircraftProjectile_t::pos, DateTime::SECONDS_PER_HOUR, craftItem::stats, aircraftProjectile_t::time, and craftItem::weaponSpeed.
Referenced by AIRFIGHT_CampaignRunProjectiles().
|
static |
Remove a projectile from ccs.projectiles.
| [in] | projectile | The projectile to remove |
Definition at line 45 of file cp_airfight.cpp.
References ccs, and REMOVE_ELEM_ADJUST_IDX.
Referenced by AIRFIGHT_CampaignRunProjectiles().
| void AIRFIGHT_RemoveProjectileAimingAircraft | ( | const aircraft_t * | aircraft | ) |
Set all projectile aiming a given aircraft to an idle destination.
| [in] | aircraft | Pointer to the aimed aircraft. |
aircraft is destroyed. Definition at line 414 of file cp_airfight.cpp.
References aircraftProjectile_t::aimedAircraft, AIR_AircraftReturnToBase(), AIR_IsUFO, AIRFIGHT_MissTarget(), aircraftProjectile_t::attackingAircraft, ccs, and aircraft_t::homebase.
Referenced by AIRFIGHT_ActionsAfterAirfight(), B_AircraftReturnedToHomeBase(), and CP_UFORemoveFromGeoscape().
| bool AIRFIGHT_SaveXML | ( | xmlNode_t * | parent | ) |
Save callback for savegames in XML Format.
| [out] | parent | XML Node structure, where we write the information to |
Definition at line 892 of file cp_airfight.cpp.
References aircraftProjectile_t::aimedAircraft, AIR_IsUFO, aircraftProjectile_t::aircraftItem, aircraftProjectile_t::angle, aircraftProjectile_t::attackerPos, aircraftProjectile_t::attackingAircraft, aircraftProjectile_t::beam, aircraftProjectile_t::bullets, ccs, cgi, i, objDef_t::id, aircraftProjectile_t::idleTarget, aircraft_t::idx, aircraftProjectile_t::numProjectiles, aircraftProjectile_t::pos, SAVE_AIRFIGHT_AIMEDAIRCRAFT, SAVE_AIRFIGHT_AIRCRAFTIDX, SAVE_AIRFIGHT_ANGLE, SAVE_AIRFIGHT_ATTACKERPOS, SAVE_AIRFIGHT_ATTACKINGAIRCRAFT, SAVE_AIRFIGHT_BEAM, SAVE_AIRFIGHT_BULLET, SAVE_AIRFIGHT_IDLETARGET, SAVE_AIRFIGHT_ISUFO, SAVE_AIRFIGHT_ITEMID, SAVE_AIRFIGHT_POS, SAVE_AIRFIGHT_PROJECTILE, SAVE_AIRFIGHT_TIME, aircraftProjectile_t::time, UFO_GetGeoscapeIDX, and xmlNode_t.
Referenced by AIR_SaveXML().
|
static |
Set all projectile attackingAircraft pointers to nullptr.
| [in] | aircraft | Pointer to the destroyed aircraft. |
aircraft is destroyed. Definition at line 439 of file cp_airfight.cpp.
References aircraftProjectile_t::attackingAircraft, and ccs.
Referenced by AIRFIGHT_ActionsAfterAirfight().