UFO: Alien Invasion
|
Airfight related stuff. More...
#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. More... | |
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. More... | |
static void | AIRFIGHT_MissTarget (aircraftProjectile_t *projectile) |
Change destination of projectile to an idle point of the map, close to its former target. More... | |
int | AIRFIGHT_CheckWeapon (const aircraftSlot_t *slot, float distance) |
Check if the selected weapon can shoot. More... | |
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. More... | |
static float | AIRFIGHT_ProbabilityToHit (const aircraft_t *shooter, const aircraft_t *target, const aircraftSlot_t *slot) |
Calculate the probability to hit the enemy. More... | |
void | AIRFIGHT_ExecuteActions (const campaign_t *campaign, aircraft_t *shooter, aircraft_t *target) |
Decide what an attacking aircraft can do. More... | |
void | AIRFIGHT_RemoveProjectileAimingAircraft (const aircraft_t *aircraft) |
Set all projectile aiming a given aircraft to an idle destination. More... | |
static void | AIRFIGHT_UpdateProjectileForDestroyedAircraft (const aircraft_t *aircraft) |
Set all projectile attackingAircraft pointers to nullptr. More... | |
void | AIRFIGHT_ActionsAfterAirfight (const campaign_t *campaign, aircraft_t *shooter, aircraft_t *aircraft, bool phalanxWon) |
Actions to execute when a fight is done. More... | |
static bool | AIRFIGHT_ProjectileReachedTarget (const aircraftProjectile_t *projectile, float movement) |
Check if some projectiles on geoscape reached their destination. More... | |
static int | AIRFIGHT_GetDamage (const objDef_t *od, const aircraft_t *target) |
Calculates the damage value for the airfight. More... | |
static void | AIRFIGHT_ProjectileHits (const campaign_t *campaign, aircraftProjectile_t *projectile) |
Solve the result of one projectile hitting an aircraft. More... | |
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. More... | |
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. More... | |
void | AIRFIGHT_CampaignRunProjectiles (const campaign_t *campaign, int dt) |
Update values of projectiles. More... | |
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. More... | |
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. More... | |
void | AIRFIGHT_CampaignRunBaseDefence (int dt) |
Run base defences. More... | |
bool | AIRFIGHT_SaveXML (xmlNode_t *parent) |
Save callback for savegames in XML Format. More... | |
bool | AIRFIGHT_LoadXML (xmlNode_t *parent) |
Load callback for savegames in XML Format. More... | |
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 37 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 463 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(), cgame_import_s::csi, DEBUG_CLIENT, GEO_GetColor(), TerrainDefs::getTerrainName(), MapIsWater, MAPTYPE_TERRAIN, aircraft_s::maxWeapons, MS_AddNewMessage(), MSG_DEATH, MSG_STANDARD, aircraft_s::pilot, aircraft_s::pos, character_s::score, SKILL_EVADING, SKILL_TARGETING, chrScoreGlobal_s::skills, csi_s::terrainDefs, 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 61 of file cp_airfight.cpp.
References AII_ReloadWeapon(), aircraftProjectile_s::aimedAircraft, aircraftProjectile_s::aircraftItem, aircraftSlot_s::ammo, aircraftSlot_s::ammoLeft, aircraftProjectile_s::angle, aircraftProjectile_s::attackerPos, aircraftProjectile_s::attackingAircraft, aircraftProjectile_s::beam, craftitem_s::beam, aircraftProjectile_s::bullets, craftitem_s::bullets, ccs, cgi, objDef_s::craftitem, DEBUG_CLIENT, f, aircraftProjectile_s::idleTarget, aircraftSlot_s::item, MAX_PROJECTILESONGEOSCAPE, aircraftProjectile_s::numProjectiles, ccs_s::numProjectiles, aircraftProjectile_s::pos, installation_s::pos, base_s::pos, aircraft_s::pos, ccs_s::projectiles, aircraftProjectile_s::rocket, aircraftProjectile_s::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 722 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_s::ammo, ccs, objDef_s::craftitem, aircraftSlot_s::delayNextShot, frand(), GetDistanceOnGlobe(), i, aircraftSlot_s::installationTime, ccs_s::numProjectiles, base_s::pos, aircraft_s::pos, ccs_s::projectiles, baseWeapon_s::slot, craftitem_s::stats, baseWeapon_s::target, UFO_IsUFOSeenOnGeoscape(), and craftitem_s::weaponDelay.
Referenced by AIRFIGHT_CampaignRunBaseDefence().
Run base defences.
[in] | dt | Time elapsed since last call of this function. |
Definition at line 828 of file cp_airfight.cpp.
References AII_BaseCanShoot(), AII_InstallationCanShoot(), AII_ReloadWeapon(), AIRFIGHT_BaseShoot(), AIRFIGHT_InstallationShoot(), aircraftSlot_s::ammoLeft, B_DEFENCE_LASER, B_DEFENCE_MISSILE, B_GetBuildingStatus(), B_GetNext(), B_IsUnderAttack, base_s::batteries, aircraftSlot_s::delayNextShot, INS_Foreach, INSTALLATION_WORKING, base_s::lasers, base_s::numBatteries, base_s::numLasers, and baseWeapon_s::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 675 of file cp_airfight.cpp.
References aircraftProjectile_s::aimedAircraft, aircraftProjectile_s::aircraftItem, AIRFIGHT_GetNextPointInPath(), AIRFIGHT_ProjectileHits(), AIRFIGHT_ProjectileReachedTarget(), AIRFIGHT_RemoveProjectile(), aircraftProjectile_s::angle, ccs, objDef_s::craftitem, aircraftProjectile_s::hasMoved, aircraftProjectile_s::idleTarget, aircraftProjectile_s::numInterpolationPoints, ccs_s::numProjectiles, aircraftProjectile_s::pos, aircraft_s::pos, aircraftProjectile_s::projectedPos, ccs_s::projectiles, SECONDS_PER_HOUR, aircraftProjectile_s::time, VectorCopy, and craftitem_s::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 200 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_s::ammo, aircraftSlot_s::ammoLeft, objDef_s::craftitem, aircraftSlot_s::delayNextShot, aircraftSlot_s::installationTime, aircraftSlot_s::item, and craftitem_s::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 234 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 347 of file cp_airfight.cpp.
References _, AIR_AircraftReturnToBase(), AIR_IsUFO, AIR_SendAircraftPursuingUFO(), aircraft_s::aircraftTarget, AIRFIGHT_AddProjectile(), AIRFIGHT_ChooseWeapon(), AIRFIGHT_MissTarget(), AIRFIGHT_ProbabilityToHit(), AIRFIGHT_WEAPON_CAN_NOT_SHOOT_AT_THE_MOMENT, AIRFIGHT_WEAPON_CAN_SHOOT, aircraftSlot_s::ammo, ccs, cgi, CP_UFOProceedMission(), objDef_s::craftitem, DEBUG_CLIENT, aircraftSlot_s::delayNextShot, aircraft_s::detected, frand(), aircraft_s::maxWeapons, MS_AddNewMessage(), MSO_CheckAddNewMessage(), aircraft_s::name, NT_UFO_ATTACKING, ccs_s::numProjectiles, aircraft_s::pos, ccs_s::projectiles, RADAR_AddDetectedUFOToEveryRadar(), RADAR_CheckRadarSensored(), UFO_CheckShootBack(), UFO_DetectNewUFO(), UFO_SendPursuingAircraft(), va(), craftitem_s::weaponDelay, and aircraft_s::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 582 of file cp_airfight.cpp.
References AIR_STATS_SHIELD, objDef_s::craftitem, aircraft_s::damage, aircraft_s::stats, and craftitem_s::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 664 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 646 of file cp_airfight.cpp.
References PolarToVec(), RotatePointAroundVector(), and VecToPolar().
Referenced by AIRFIGHT_GetNextPointInPath().
Definition at line 997 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 776 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_s::ammo, ccs, objDef_s::craftitem, aircraftSlot_s::delayNextShot, frand(), GetDistanceOnGlobe(), i, aircraftSlot_s::installationTime, ccs_s::numProjectiles, installation_s::pos, aircraft_s::pos, ccs_s::projectiles, baseWeapon_s::slot, craftitem_s::stats, baseWeapon_s::target, UFO_IsUFOSeenOnGeoscape(), and craftitem_s::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 936 of file cp_airfight.cpp.
References aircraftProjectile_s::aimedAircraft, AIR_AircraftGetFromIDX(), AIRCRAFT_INVALID, aircraftProjectile_s::aircraftItem, aircraftProjectile_s::angle, aircraftProjectile_s::attackerPos, aircraftProjectile_s::attackingAircraft, aircraftProjectile_s::beam, aircraftProjectile_s::bullets, ccs, cgi, i, aircraftProjectile_s::idleTarget, INVSH_GetItemByID(), MAX_MULTIPLE_PROJECTILES, MAX_PROJECTILESONGEOSCAPE, aircraftProjectile_s::numProjectiles, ccs_s::numProjectiles, aircraftProjectile_s::pos, ccs_s::projectiles, technology_s::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_s::time, UFO_GetByIDX(), cgame_import_s::XML_GetNextNode(), cgame_import_s::XML_GetNextPos2(), cgame_import_s::XML_GetNode(), cgame_import_s::XML_GetPos2(), cgame_import_s::XML_GetPos3(), cgame_import_s::XML_GetString(), 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 159 of file cp_airfight.cpp.
References aircraftProjectile_s::aimedAircraft, f, frand(), GetDistanceOnGlobe(), aircraftProjectile_s::idleTarget, aircraftProjectile_s::pos, aircraft_s::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 272 of file cp_airfight.cpp.
References AIR_IsUFO, AIR_STATS_ACCURACY, AIR_STATS_ECM, aircraftSlot_s::ammo, cgi, Employee::chr, objDef_s::craftitem, DEBUG_CLIENT, f, aircraftSlot_s::item, aircraft_s::pilot, character_s::score, SKILL_EVADING, SKILL_TARGETING, chrScoreGlobal_s::skills, aircraft_s::stats, and craftitem_s::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 607 of file cp_airfight.cpp.
References aircraftProjectile_s::aimedAircraft, AIR_IsAircraftInBase(), AIR_IsUFO, aircraftProjectile_s::aircraftItem, AIRFIGHT_ActionsAfterAirfight(), AIRFIGHT_GetDamage(), aircraftProjectile_s::attackingAircraft, cgi, aircraft_s::damage, f, and aircraftProjectile_s::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 548 of file cp_airfight.cpp.
References aircraftProjectile_s::aimedAircraft, AIR_STATS_WRANGE, aircraftProjectile_s::aircraftItem, objDef_s::craftitem, GetDistanceOnGlobe(), aircraftProjectile_s::idleTarget, aircraftProjectile_s::pos, aircraft_s::pos, SECONDS_PER_HOUR, craftitem_s::stats, aircraftProjectile_s::time, and craftitem_s::weaponSpeed.
Referenced by AIRFIGHT_CampaignRunProjectiles().
|
static |
Remove a projectile from ccs.projectiles.
[in] | projectile | The projectile to remove |
Definition at line 44 of file cp_airfight.cpp.
References ccs, ccs_s::numProjectiles, ccs_s::projectiles, 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 413 of file cp_airfight.cpp.
References aircraftProjectile_s::aimedAircraft, AIR_AircraftReturnToBase(), AIR_IsUFO, AIRFIGHT_MissTarget(), aircraftProjectile_s::attackingAircraft, ccs, aircraft_s::homebase, ccs_s::numProjectiles, and ccs_s::projectiles.
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 891 of file cp_airfight.cpp.
References aircraftProjectile_s::aimedAircraft, AIR_IsUFO, aircraftProjectile_s::aircraftItem, aircraftProjectile_s::angle, aircraftProjectile_s::attackerPos, aircraftProjectile_s::attackingAircraft, aircraftProjectile_s::beam, aircraftProjectile_s::bullets, ccs, cgi, i, objDef_s::id, aircraftProjectile_s::idleTarget, aircraft_s::idx, aircraftProjectile_s::numProjectiles, ccs_s::numProjectiles, aircraftProjectile_s::pos, ccs_s::projectiles, 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_s::time, UFO_GetGeoscapeIDX, cgame_import_s::XML_AddNode(), 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 438 of file cp_airfight.cpp.
References aircraftProjectile_s::attackingAircraft, ccs, ccs_s::numProjectiles, and ccs_s::projectiles.
Referenced by AIRFIGHT_ActionsAfterAirfight().