UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
cp_airfight.h
Go to the documentation of this file.
1 
6 /*
7 Copyright (C) 2002-2020 UFO: Alien Invasion.
8 
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License
11 as published by the Free Software Foundation; either version 2
12 of the License, or (at your option) any later version.
13 
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 
18 See the GNU General Public License for more details.
19 
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, 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 
43 typedef struct aircraftProjectile_s {
45  int idx;
50  bool hasMoved;
59  int time;
60  float angle;
61  bool bullets;
62  bool beam;
63  bool rocket;
65 
66 void AIRFIGHT_ExecuteActions(const struct campaign_s* campaign, aircraft_t* air, aircraft_t* ufo);
67 void AIRFIGHT_ActionsAfterAirfight(const struct campaign_s* campaign, aircraft_t* shooter, aircraft_t* aircraft, bool phalanxWon);
68 void AIRFIGHT_CampaignRunProjectiles(const struct campaign_s* campaign, int dt);
70 int AIRFIGHT_CheckWeapon(const aircraftSlot_t* slot, float distance);
71 int AIRFIGHT_ChooseWeapon(const aircraftSlot_t* slot, int maxSlot, const vec2_t pos, const vec2_t targetPos);
72 bool AIRFIGHT_BaseCanTargetUFO(const struct base_s* base, const aircraft_t* ufo);
74 
75 bool AIRFIGHT_SaveXML(xmlNode_t* parent);
76 bool AIRFIGHT_LoadXML(xmlNode_t* parent);
77 void AIRFIGHT_InitStartup(void);
Defines all attributes of objects used in the inventory.
Definition: inv_shared.h:264
A base with all it's data.
Definition: cp_base.h:84
#define xmlNode_t
Definition: xml.h:24
bool AIRFIGHT_SaveXML(xmlNode_t *parent)
Save callback for savegames in XML Format.
void AIRFIGHT_ActionsAfterAirfight(const struct campaign_s *campaign, aircraft_t *shooter, aircraft_t *aircraft, bool phalanxWon)
#define MAX_MULTIPLE_PROJECTILES
Definition: cp_airfight.h:29
int AIRFIGHT_CheckWeapon(const aircraftSlot_t *slot, float distance)
Check if the selected weapon can shoot.
bool AIRFIGHT_BaseCanTargetUFO(const struct base_s *base, const aircraft_t *ufo)
slot of aircraft
Definition: cp_aircraft.h:77
const objDef_t * aircraftItem
Definition: cp_airfight.h:44
vec3_t oldDrawPos[MAX_MULTIPLE_PROJECTILES]
Definition: cp_airfight.h:48
struct aircraftProjectile_s aircraftProjectile_t
projectile used during fight between two or more aircraft
void AIRFIGHT_RemoveProjectileAimingAircraft(const aircraft_t *aircraft)
Set all projectile aiming a given aircraft to an idle destination.
void AIRFIGHT_InitStartup(void)
aircraft_t * attackingAircraft
Definition: cp_airfight.h:54
vec3_t projectedPos[MAX_MULTIPLE_PROJECTILES]
Definition: cp_airfight.h:47
vec_t vec3_t[3]
Definition: ufotypes.h:39
vec_t vec2_t[2]
Definition: ufotypes.h:38
void AIRFIGHT_CampaignRunBaseDefence(int dt)
Run base defences.
void AIRFIGHT_ExecuteActions(const struct campaign_s *campaign, aircraft_t *air, aircraft_t *ufo)
aircraft_t * aimedAircraft
Definition: cp_airfight.h:57
projectile used during fight between two or more aircraft
Definition: cp_airfight.h:43
An aircraft with all it's data.
Definition: cp_aircraft.h:114
vec3_t pos[MAX_MULTIPLE_PROJECTILES]
Definition: cp_airfight.h:46
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.
void AIRFIGHT_CampaignRunProjectiles(const struct campaign_s *campaign, int dt)
bool AIRFIGHT_LoadXML(xmlNode_t *parent)
Load callback for savegames in XML Format.