UFO: Alien Invasion
Loading...
Searching...
No Matches
cp_airfight.h
Go to the documentation of this file.
1
5
6/*
7Copyright (C) 2002-2025 UFO: Alien Invasion.
8
9This program is free software; you can redistribute it and/or
10modify it under the terms of the GNU General Public License
11as published by the Free Software Foundation; either version 2
12of the License, or (at your option) any later version.
13
14This program is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17
18See the GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with this program; if not, write to the Free Software
22Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
24*/
25
26#pragma once
27
28#define BULLETS_PER_SHOT 1
29#define MAX_MULTIPLE_PROJECTILES 10
30
36#define AIRFIGHT_WEAPON_CAN_SHOOT 0
37#define AIRFIGHT_WEAPON_CAN_NOT_SHOOT_AT_THE_MOMENT -1
38#define AIRFIGHT_WEAPON_CAN_NEVER_SHOOT -2
39
40#define AIRFIGHT_BASE_CAN_T_FIRE -1
41
65
66void AIRFIGHT_ExecuteActions(const struct campaign_s* campaign, aircraft_t* air, aircraft_t* ufo);
67void AIRFIGHT_ActionsAfterAirfight(const struct campaign_s* campaign, aircraft_t* shooter, aircraft_t* aircraft, bool phalanxWon);
68void AIRFIGHT_CampaignRunProjectiles(const struct campaign_s* campaign, int dt);
70int AIRFIGHT_CheckWeapon(const aircraftSlot_t* slot, float distance);
71int AIRFIGHT_ChooseWeapon(const aircraftSlot_t* slot, int maxSlot, const vec2_t pos, const vec2_t targetPos);
72bool AIRFIGHT_BaseCanTargetUFO(const struct base_s* base, const aircraft_t* ufo);
74
75bool AIRFIGHT_SaveXML(xmlNode_t* parent);
76bool AIRFIGHT_LoadXML(xmlNode_t* parent);
77void AIRFIGHT_InitStartup(void);
void AIRFIGHT_CampaignRunBaseDefence(int dt)
Run base defences.
void AIRFIGHT_CampaignRunProjectiles(const struct campaign_s *campaign, int dt)
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.
bool AIRFIGHT_SaveXML(xmlNode_t *parent)
Save callback for savegames in XML Format.
#define MAX_MULTIPLE_PROJECTILES
Definition cp_airfight.h:29
bool AIRFIGHT_BaseCanTargetUFO(const struct base_s *base, const aircraft_t *ufo)
void AIRFIGHT_RemoveProjectileAimingAircraft(const aircraft_t *aircraft)
Set all projectile aiming a given aircraft to an idle destination.
void AIRFIGHT_ActionsAfterAirfight(const struct campaign_s *campaign, aircraft_t *shooter, aircraft_t *aircraft, bool phalanxWon)
void AIRFIGHT_ExecuteActions(const struct campaign_s *campaign, aircraft_t *air, aircraft_t *ufo)
bool AIRFIGHT_LoadXML(xmlNode_t *parent)
Load callback for savegames in XML Format.
void AIRFIGHT_InitStartup(void)
int AIRFIGHT_CheckWeapon(const aircraftSlot_t *slot, float distance)
Check if the selected weapon can shoot.
An aircraft with all it's data.
projectile used during fight between two or more aircraft
Definition cp_airfight.h:43
const objDef_t * aircraftItem
Definition cp_airfight.h:44
vec3_t oldDrawPos[MAX_MULTIPLE_PROJECTILES]
Definition cp_airfight.h:48
aircraft_t * aimedAircraft
Definition cp_airfight.h:57
vec3_t projectedPos[MAX_MULTIPLE_PROJECTILES]
Definition cp_airfight.h:47
vec3_t pos[MAX_MULTIPLE_PROJECTILES]
Definition cp_airfight.h:46
aircraft_t * attackingAircraft
Definition cp_airfight.h:54
slot of aircraft
Definition cp_aircraft.h:78
Defines all attributes of objects used in the inventory.
Definition inv_shared.h:264
vec_t vec3_t[3]
Definition ufotypes.h:39
vec_t vec2_t[2]
Definition ufotypes.h:38
#define xmlNode_t
Definition xml.h:24