UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
cp_mapfightequip.h File Reference

Header for slot management related stuff. More...

Go to the source code of this file.

Enumerations

enum  zoneaircraftParams_t { ZONE_NONE, ZONE_MAIN, ZONE_AMMO, ZONE_MAX }
 Zone number in airequip menu or base defence menu. More...
 
enum  ammoStatus_t { AMMO_STATUS_NOT_SET = -1, AMMO_STATUS_NO_MORE_AMMO = 0 }
 Different status for numAmmo. More...
 
enum  basedefenceType_t { BASEDEF_RANDOM, BASEDEF_MISSILE, BASEDEF_LASER, BASEDEF_MAX }
 The different possible types of base defence systems. More...
 

Functions

void BDEF_AddBattery (basedefenceType_t basedefType, base_t *base)
 Adds a defence system to base. More...
 
void BDEF_RemoveBattery (base_t *base, basedefenceType_t basedefType, int idx)
 Remove a base defence sytem from base. More...
 
void BDEF_InitialiseBaseSlots (base_t *base)
 Initialise all values of base slot defence. More...
 
void BDEF_InitialiseInstallationSlots (installation_t *installation)
 Initialise all values of installation slot defence. More...
 
void BDEF_ReloadBattery (void)
 
void BDEF_AutoSelectTarget (void)
 Chooses target for all base defences and sam sites. More...
 
technology_t ** AII_GetCraftitemTechsByType (aircraftItemType_t type)
 Returns a list of craftitem technologies for the given type. More...
 
void AII_UpdateInstallationDelay (void)
 Update the installation delay of all slots of a given aircraft. More...
 
bool AII_AddItemToSlot (base_t *base, const technology_t *tech, aircraftSlot_t *slot, bool nextItem)
 Add an item to an aircraft slot. More...
 
bool AII_AddAmmoToSlot (base_t *base, const technology_t *tech, aircraftSlot_t *slot)
 Add an ammo to an aircraft weapon slot. More...
 
void AII_RemoveItemFromSlot (base_t *base, aircraftSlot_t *slot, bool ammo)
 Remove the item from the slot (or optionally its ammo only) and put it the base storage. More...
 
void AII_RemoveNextItemFromSlot (base_t *base, aircraftSlot_t *slot, bool ammo)
 Cancel replacing item, move nextItem (or optionally its ammo only) back to the base storage. More...
 
bool AIM_PilotAssignedAircraft (const base_t *base, const Employee *pilot)
 Checks to see if the pilot is in any aircraft at this base. More...
 
void AIM_AutoEquipAircraft (aircraft_t *aircraft)
 Auto Add weapon and ammo to an aircraft. More...
 
void AII_InitialiseSlot (aircraftSlot_t *slot, aircraft_t *aircraft, base_t *base, installation_t *installation, aircraftItemType_t type)
 Initialise values of one slot of an aircraft or basedefence common to all types of items. More...
 
float AIR_GetMaxAircraftWeaponRange (const aircraftSlot_t *slot, int maxSlot)
 Get the maximum weapon range of aircraft. More...
 
void AII_RepairAircraft (void)
 Repair aircraft. More...
 
void AII_UpdateAircraftStats (aircraft_t *aircraft)
 Update the value of stats array of an aircraft. More...
 
int AII_BaseCanShoot (const base_t *base)
 Check if the base has weapon and ammo. More...
 
bool AII_InstallationCanShoot (const installation_t *installation)
 Check if the installation has a weapon and ammo. More...
 
itemWeight_t AII_GetItemWeightBySize (const objDef_t *od)
 Returns craftitem weight based on size. More...
 
const char * AII_WeightToName (itemWeight_t weight)
 Translate a weight int to a translated string. More...
 
void AII_AutoAddAmmo (aircraftSlot_t *slot)
 Auto add ammo corresponding to weapon, if there is enough in storage. More...
 
bool AIM_SelectableCraftItem (const aircraftSlot_t *slot, const technology_t *tech)
 Check if an aircraft item should or should not be displayed in airequip menu. More...
 
aircraftSlot_tBDEF_GetBaseSlotByIDX (base_t *base, aircraftItemType_t type, int idx)
 returns the aircraftSlot of a base at an index or the first free slot More...
 
aircraftSlot_tBDEF_GetInstallationSlotByIDX (installation_t *installation, aircraftItemType_t type, int idx)
 returns the aircraftSlot of an installaion at an index or the first free slot More...
 
aircraftSlot_tAII_GetAircraftSlotByIDX (aircraft_t *aircraft, aircraftItemType_t type, int idx)
 returns the aircraftSlot of an aircraft at an index or the first free slot More...
 
bool AII_ReloadWeapon (aircraftSlot_t *slot)
 Reloads an aircraft/defence-system weapon. More...
 
void AII_ReloadAircraftWeapons (aircraft_t *aircraft)
 Reload the weapons of an aircraft. More...
 
void AII_SaveOneSlotXML (xmlNode_t *p, const aircraftSlot_t *slot, bool weapon)
 Save callback for savegames in XML Format. More...
 
void AII_LoadOneSlotXML (xmlNode_t *node, aircraftSlot_t *slot, bool weapon)
 Loads one slot (base, installation or aircraft) More...
 

Detailed Description

Header for slot management related stuff.

Definition in file cp_mapfightequip.h.

Enumeration Type Documentation

Different status for numAmmo.

Todo:
do we still need this?
Enumerator
AMMO_STATUS_NOT_SET 

This weapon can't shoot yet.

AMMO_STATUS_NO_MORE_AMMO 

This weapon has no ammo.

Definition at line 46 of file cp_mapfightequip.h.

The different possible types of base defence systems.

See also
BDEF_RemoveBattery_f: BASEDEF_LASER must be just after BASEDEF_MISSILE
Enumerator
BASEDEF_RANDOM 

The base defence system should be randomly selected.

BASEDEF_MISSILE 

The base defence system is a missile battery.

BASEDEF_LASER 

The base defence system is a laser battery.

BASEDEF_MAX 

Definition at line 57 of file cp_mapfightequip.h.

Zone number in airequip menu or base defence menu.

Note
A zone is the rectangular box in the upper right of the screen.
A zone is different from a slot or the type of an item.
Enumerator
ZONE_NONE 

This is not a zone (used when no zone is selected).

ZONE_MAIN 

This is the upper (1st) zone containing the current item installed in the slot.

ZONE_AMMO 

This is the lowest (3rd) zone containing the ammo fitting the weapon in ZONE_MAIN Therefore, this zone should only be used when 1st zone contain an WEAPON.

ZONE_MAX 

Definition at line 33 of file cp_mapfightequip.h.

Function Documentation

bool AII_AddAmmoToSlot ( base_t base,
const technology_t tech,
aircraftSlot_t slot 
)

Add an ammo to an aircraft weapon slot.

Note
No check for the type of item is done here, so it must be done before.
Parameters
[in]basePointer to the base which provides items (nullptr if items shouldn't be removed of storage)
[in]techPointer to the tech to add to slot
[in]slotPointer to the slot where you want to add ammos
See also
AII_AddItemToSlot

Definition at line 647 of file cp_mapfightequip.cpp.

References AC_ITEM_AMMO, AII_ReloadWeapon(), AII_RemoveItemFromSlot(), AII_RemoveNextItemFromSlot(), aircraftSlot_s::ammo, objDef_s::ammos, B_AddToStorage(), B_BaseHasItem(), cgi, objDef_s::craftitem, objDef_s::id, objDef_s::idx, INVSH_GetItemByID(), aircraftSlot_s::item, aircraftSlot_s::nextAmmo, aircraftSlot_s::nextItem, objDef_s::numAmmos, technology_s::provides, and craftitem_s::type.

Referenced by AII_AutoAddAmmo(), AII_LoadOneSlotXML(), and AIM_AircraftEquipAddItem_f().

bool AII_AddItemToSlot ( base_t base,
const technology_t tech,
aircraftSlot_t slot,
bool  nextItem 
)

Add an item to an aircraft slot.

Parameters
[in]basePointer to the base where item will be removed (nullptr for ufos, virtual ammos or while loading game)
[in]techPointer to the tech that will be added in this slot.
[in]slotPointer to the aircraft, base, or installation slot.
[in]nextItemFalse if we are changing current item in slot, true if this is the item to install after current removal is over.
Note
No check for the type of item is done here.
See also
AII_UpdateOneInstallationDelay
AII_AddAmmoToSlot

Definition at line 722 of file cp_mapfightequip.cpp.

References AC_ITEM_AMMO, AII_GetItemWeightBySize(), B_AddToStorage(), B_BaseHasItem(), cgi, objDef_s::craftitem, objDef_s::id, aircraftSlot_s::idx, aircraftSlot_s::installationTime, craftitem_s::installationTime, INVSH_GetItemByID(), aircraftSlot_s::item, aircraftSlot_s::nextItem, technology_s::provides, aircraftSlot_s::size, objDef_s::size, aircraftSlot_s::type, and craftitem_s::type.

Referenced by AII_LoadOneSlotXML(), AIM_AircraftEquipAddItem_f(), AIM_AutoEquipAircraft(), and BDEF_AddItem_f().

int AII_BaseCanShoot ( const base_t base)

Check if the base has weapon and ammo.

Parameters
[in]basePointer to the base you want to check (may not be nullptr)
Returns
true if the base can shoot, qflase else
See also
AII_AircraftCanShoot

Definition at line 1150 of file cp_mapfightequip.cpp.

References AII_WeaponsCanShoot(), B_DEFENCE_LASER, B_DEFENCE_MISSILE, B_GetBuildingStatus(), base_s::batteries, base_s::lasers, base_s::numBatteries, and base_s::numLasers.

Referenced by AIRFIGHT_CampaignRunBaseDefence(), CL_DisplayPopupInterceptUFO(), CL_PopupInterceptBaseClick_f(), and GEO_DrawMapOneBase().

aircraftSlot_t* AII_GetAircraftSlotByIDX ( aircraft_t aircraft,
aircraftItemType_t  type,
int  idx 
)

returns the aircraftSlot of an aircraft at an index or the first free slot

Parameters
[in]aircraftPointer to aircraft
[in]typebase defence type, see aircraftItemType_t
[in]idxindex of aircraftslot
Returns
the aircraftSlot at the index idx if idx non-negative the first free slot otherwise

Definition at line 964 of file cp_mapfightequip.cpp.

References AC_ITEM_ELECTRONICS, AC_ITEM_SHIELD, AC_ITEM_WEAPON, aircraft_s::electronics, i, aircraftSlot_s::item, aircraft_s::maxElectronics, aircraft_s::maxWeapons, aircraftSlot_s::nextItem, aircraft_s::shield, and aircraft_s::weapons.

technology_t** AII_GetCraftitemTechsByType ( aircraftItemType_t  type)

Returns a list of craftitem technologies for the given type.

Note
This list is terminated by a nullptr pointer.
Parameters
[in]typeType of the craft-items to return.

Definition at line 44 of file cp_mapfightequip.cpp.

References cgi, objDef_s::craftitem, cgame_import_s::csi, i, INVSH_GetItemByIDX(), MAX_TECHNOLOGIES, csi_s::numODs, RS_GetTechForItem(), and craftitem_s::type.

Referenced by AIM_UpdateAircraftItemList(), BDEF_AddItem_f(), BDEF_SelectItem_f(), and BDEF_UpdateAircraftItemList().

itemWeight_t AII_GetItemWeightBySize ( const objDef_t od)

Returns craftitem weight based on size.

Parameters
[in]odPointer to objDef_t object being craftitem.
Returns
itemWeight_t
See also
AII_WeightToName

Definition at line 74 of file cp_mapfightequip.cpp.

References ITEM_HEAVY, ITEM_LIGHT, ITEM_MEDIUM, and objDef_s::size.

Referenced by AII_AddItemToSlot(), AIM_AutoEquipAircraft(), AIM_CheckTechnologyIntoSlot(), AIM_SelectableCraftItem(), AIR_ScriptSanityCheck(), and UP_AircraftItemDescription().

void AII_InitialiseSlot ( aircraftSlot_t slot,
aircraft_t aircraftTemplate,
base_t base,
installation_t installation,
aircraftItemType_t  type 
)

Initialise values of one slot of an aircraft or basedefence common to all types of items.

Parameters
[in]slotPointer to the slot to initialize.
[in]aircraftTemplateTemplate Pointer to aircraft template.
[in]basePointer to base.
[in]installationPointer to the thing being installed.
[in]typeThe type of item that can fit in this slot.

sa BDEF_AddBattery: it needs to be AMMO_STATUS_NOT_SET and not 0

See also
B_SaveBaseSlots

Definition at line 847 of file cp_mapfightequip.cpp.

References aircraftSlot_s::aircraft, aircraftSlot_s::ammo, AMMO_STATUS_NOT_SET, aircraftSlot_s::ammoLeft, aircraftSlot_s::base, aircraftSlot_s::installation, aircraftSlot_s::installationTime, aircraftSlot_s::item, ITEM_HEAVY, aircraftSlot_s::nextAmmo, aircraftSlot_s::nextItem, OBJZERO, aircraftSlot_s::size, aircraftSlot_s::type, and type.

Referenced by AII_InitialiseAircraftSlots(), BDEF_InitialiseBaseSlots(), BDEF_InitialiseInstallationSlots(), and BDEF_RemoveBattery().

bool AII_InstallationCanShoot ( const installation_t installation)

Check if the installation has a weapon and ammo.

Parameters
[in]installationPointer to the installation you want to check (may not be nullptr)
Returns
true if the installation can shoot, qflase else
See also
AII_AircraftCanShoot

Definition at line 1173 of file cp_mapfightequip.cpp.

References AII_WeaponsCanShoot(), installation_s::batteries, INSTALLATION_WORKING, installation_s::installationStatus, installation_s::installationTemplate, and installationTemplate_s::maxBatteries.

Referenced by AIRFIGHT_CampaignRunBaseDefence(), CL_DisplayPopupInterceptUFO(), CL_PopupInterceptBaseClick_f(), and GEO_DrawMapOneInstallation().

void AII_LoadOneSlotXML ( xmlNode_t node,
aircraftSlot_t slot,
bool  weapon 
)

Loads one slot (base, installation or aircraft)

Parameters
[in]nodeXML Node structure, where we get the information from
[out]slotPointer to the slot where item should be added.
[in]weaponTrue if the slot is a weapon slot.
See also
B_Load
B_SaveAircraftSlots

Definition at line 1333 of file cp_mapfightequip.cpp.

References AII_AddAmmoToSlot(), AII_AddItemToSlot(), aircraftSlot_s::ammoLeft, cgi, aircraftSlot_s::delayNextShot, aircraftSlot_s::installationTime, name, RS_GetTechByProvided(), SAVE_SLOT_AMMOID, SAVE_SLOT_AMMOLEFT, SAVE_SLOT_DELAYNEXTSHOT, SAVE_SLOT_INSTALLATIONTIME, SAVE_SLOT_ITEMID, SAVE_SLOT_NEXTAMMOID, SAVE_SLOT_NEXTITEMID, and cgame_import_s::XML_GetString().

Referenced by AIR_LoadAircraftSlotsXML(), and B_LoadBaseSlotsXML().

void AII_ReloadAircraftWeapons ( aircraft_t aircraft)

Reload the weapons of an aircraft.

Parameters
[in,out]aircraftPointer to the aircraft to reload

Definition at line 630 of file cp_mapfightequip.cpp.

References AII_ReloadWeapon(), i, aircraft_s::maxWeapons, and aircraft_s::weapons.

Referenced by AIM_AircraftStart_f(), AIR_SendAircraftPursuingUFO(), AIR_SendAircraftToMission(), B_AircraftReturnedToHomeBase(), and UFO_AddToGeoscape().

void AII_RemoveItemFromSlot ( base_t base,
aircraftSlot_t slot,
bool  ammo 
)

Remove the item from the slot (or optionally its ammo only) and put it the base storage.

Note
if there is another item to install after removal, begin this installation.
virtual items cannot be removed!
Parameters
[in]baseThe base to add the item to (may be nullptr if item shouldn't be removed from any base).
[in]slotThe slot to remove the item from.
[in]ammotrue if we want to remove only ammo. false if the whole item should be removed.
See also
AII_AddItemToSlot
AII_AddAmmoToSlot
AII_RemoveNextItemFromSlot

Definition at line 482 of file cp_mapfightequip.cpp.

References AII_RemoveItemFromSlot(), aircraftSlot_s::ammo, objDef_s::ammo, aircraftSlot_s::ammoLeft, B_AddToStorage(), objDef_s::craftitem, aircraftSlot_s::installationTime, craftitem_s::installationTime, objDef_s::isVirtual, aircraftSlot_s::item, aircraftSlot_s::nextAmmo, and aircraftSlot_s::nextItem.

Referenced by AII_AddAmmoToSlot(), AII_RemoveItemFromSlot(), AII_UpdateOneInstallationDelay(), AIM_AircraftEquipAddItem_f(), AIM_AircraftEquipRemoveItem_f(), AIR_DeleteAircraft(), BDEF_AddItem_f(), and BDEF_RemoveItem_f().

void AII_RemoveNextItemFromSlot ( base_t base,
aircraftSlot_t slot,
bool  ammo 
)

Cancel replacing item, move nextItem (or optionally its ammo only) back to the base storage.

Parameters
[in]baseThe base to add the item to (may be nullptr if item shouldn't be removed from any base).
[in]slotThe slot to remove the item from.
[in]ammotrue if we want to remove only ammo. false if the whole item should be removed.
See also
AII_AddItemToSlot
AII_AddAmmoToSlot
AII_RemoveItemFromSlot

Definition at line 535 of file cp_mapfightequip.cpp.

References AII_RemoveNextItemFromSlot(), B_AddToStorage(), objDef_s::isVirtual, aircraftSlot_s::nextAmmo, and aircraftSlot_s::nextItem.

Referenced by AII_AddAmmoToSlot(), AII_RemoveNextItemFromSlot(), AIM_AircraftEquipAddItem_f(), and AIM_AircraftEquipRemoveItem_f().

void AII_RepairAircraft ( void  )

Repair aircraft.

Note
Hourly called.
Repairs 1% of a craft's max damage capacity.

< Number of damage points repaired per hour: 1% of aircraft max damage value

Definition at line 1035 of file cp_mapfightequip.cpp.

References AIR_ForeachFromBase, AIR_IsAircraftInBase(), AIR_STATS_DAMAGE, B_GetNext(), cgi, and DEBUG_CLIENT.

Referenced by CP_CampaignRun().

void AII_SaveOneSlotXML ( xmlNode_t p,
const aircraftSlot_t slot,
bool  weapon 
)

Save callback for savegames in XML Format.

Parameters
[out]pXML Node structure, where we write the information to
[in]slotThe aircraftslot to save
[in]weaponTrue if this is a weapon slot

Definition at line 1309 of file cp_mapfightequip.cpp.

References aircraftSlot_s::ammo, aircraftSlot_s::ammoLeft, cgi, aircraftSlot_s::delayNextShot, objDef_s::id, aircraftSlot_s::installationTime, aircraftSlot_s::item, aircraftSlot_s::nextAmmo, aircraftSlot_s::nextItem, SAVE_SLOT_AMMOID, SAVE_SLOT_AMMOLEFT, SAVE_SLOT_DELAYNEXTSHOT, SAVE_SLOT_INSTALLATIONTIME, SAVE_SLOT_ITEMID, SAVE_SLOT_NEXTAMMOID, and SAVE_SLOT_NEXTITEMID.

Referenced by AIR_SaveAircraftSlotsXML(), and B_SaveBaseSlotsXML().

void AII_UpdateInstallationDelay ( void  )

Update the installation delay of all slots of a given aircraft.

Note
hourly called
See also
CP_CampaignRun
AII_UpdateOneInstallationDelay

Definition at line 392 of file cp_mapfightequip.cpp.

References AII_UpdateOneInstallationDelay(), AIR_Foreach, AIR_IsAircraftInBase(), B_GetNext(), base_s::batteries, INS_Foreach, base_s::lasers, base_s::numBatteries, base_s::numLasers, and baseWeapon_s::slot.

Referenced by CP_CampaignRun().

const char* AII_WeightToName ( itemWeight_t  weight)

Translate a weight int to a translated string.

See also
itemWeight_t
AII_GetItemWeightBySize

Definition at line 1285 of file cp_mapfightequip.cpp.

References _, ITEM_HEAVY, ITEM_LIGHT, and ITEM_MEDIUM.

Referenced by AIM_AircraftEquipMenuUpdate(), and UP_AircraftItemDescription().

void AIM_AutoEquipAircraft ( aircraft_t aircraft)

Auto Add weapon and ammo to an aircraft.

Parameters
[in]aircraftPointer to the aircraft
Note
This is used to auto equip interceptor of first base.
See also
B_SetUpBase
Todo:
Eliminate hardcoded techs here.

Definition at line 784 of file cp_mapfightequip.cpp.

References AII_AddItemToSlot(), AII_AutoAddAmmo(), AII_GetItemWeightBySize(), AII_UpdateAircraftStats(), B_BaseHasItem(), cgi, ERR_DROP, aircraft_s::homebase, i, aircraftSlot_s::installationTime, INVSH_GetItemByID(), aircraftSlot_s::item, aircraft_s::maxWeapons, technology_s::provides, RS_GetTechByID(), aircraftSlot_s::size, and aircraft_s::weapons.

Referenced by B_SetUpFirstBase().

bool AIM_PilotAssignedAircraft ( const base_t base,
const Employee pilot 
)

Checks to see if the pilot is in any aircraft at this base.

Parameters
[in]baseWhich base has the aircraft to search for the employee in.
[in]pilotWhich employee to search for.
Returns
true or false depending on if the employee was found on the base aircraft.

Definition at line 166 of file cp_mapfightequip.cpp.

References AIR_ForeachFromBase, and AIR_GetPilot().

bool AIM_SelectableCraftItem ( const aircraftSlot_t slot,
const technology_t tech 
)

Check if an aircraft item should or should not be displayed in airequip menu.

Parameters
[in]slotPointer to an aircraft slot (can be base/installation too)
[in]techPointer to the technology to test
Returns
true if the craft item should be displayed, false else
Todo:
maybe this isn't working, aircraft slot type can't be an AMMO
Todo:
This only works for ammo that is usable in exactly one weapon check the weap_idx array and not only the first value

Definition at line 92 of file cp_mapfightequip.cpp.

References AC_ITEM_AMMO, AII_GetItemWeightBySize(), aircraftSlot_s::aircraft, objDef_s::ammos, B_BaseHasItem(), aircraftSlot_s::base, objDef_s::craftitem, aircraft_s::homebase, objDef_s::idx, craftitem_s::installationTime, INVSH_GetItemByID(), aircraftSlot_s::item, aircraftSlot_s::nextItem, objDef_s::numAmmos, technology_s::provides, RS_IsResearched_ptr(), aircraftSlot_s::size, aircraftSlot_s::type, craftitem_s::type, and objDef_s::weapons.

Referenced by AII_AutoAddAmmo(), AIM_UpdateAircraftItemList(), BDEF_AddItem_f(), BDEF_SelectItem_f(), and BDEF_UpdateAircraftItemList().

float AIR_GetMaxAircraftWeaponRange ( const aircraftSlot_t slot,
int  maxSlot 
)

Get the maximum weapon range of aircraft.

Parameters
[in]slotPointer to the aircrafts weapon slot list.
[in]maxSlotmaximum number of weapon slots in aircraft.
Returns
Maximum weapon range for this aircaft as an angle.

Definition at line 1004 of file cp_mapfightequip.cpp.

References AII_CheckUpdateAircraftStats(), AIR_STATS_WRANGE, aircraftSlot_s::ammo, objDef_s::craftitem, i, radar_s::range, and craftitem_s::stats.

Referenced by AII_UpdateAircraftStats().

void BDEF_AddBattery ( basedefenceType_t  basedefType,
base_t base 
)

Adds a defence system to base.

Parameters
[in]basedefTypeBase defence type (see basedefenceType_t)
[in]basePointer to the base in which the battery will be added
See also
BDEF_RemoveBattery

Definition at line 186 of file cp_mapfightequip.cpp.

References AMMO_STATUS_NOT_SET, aircraftSlot_s::ammoLeft, baseWeapon_s::autofire, BASEDEF_LASER, BASEDEF_MISSILE, base_s::batteries, cgi, base_s::lasers, MAX_BASE_SLOT, base_s::numBatteries, base_s::numLasers, and baseWeapon_s::slot.

Referenced by BDEF_AddBattery_f().

void BDEF_AutoSelectTarget ( void  )

Chooses target for all base defences and sam sites.

Definition at line 1266 of file cp_mapfightequip.cpp.

References B_GetNext(), base_s::batteries, BDEF_AutoTarget(), INS_Foreach, base_s::lasers, base_s::numBatteries, and base_s::numLasers.

Referenced by CP_CampaignRun().

aircraftSlot_t* BDEF_GetBaseSlotByIDX ( base_t base,
aircraftItemType_t  type,
int  idx 
)

returns the aircraftSlot of a base at an index or the first free slot

Parameters
[in]basePointer to base
[in]typedefence type, see aircraftItemType_t
[in]idxindex of aircraftslot
Returns
the aircraftSlot at the index idx if idx non-negative the first free slot otherwise

Definition at line 900 of file cp_mapfightequip.cpp.

References AC_ITEM_BASE_LASER, AC_ITEM_BASE_MISSILE, base_s::batteries, i, aircraftSlot_s::item, base_s::lasers, aircraftSlot_s::nextItem, base_s::numBatteries, base_s::numLasers, and baseWeapon_s::slot.

Referenced by BDEF_AddItem_f(), BDEF_RemoveItem_f(), and BDEF_SelectItem_f().

aircraftSlot_t* BDEF_GetInstallationSlotByIDX ( installation_t installation,
aircraftItemType_t  type,
int  idx 
)

returns the aircraftSlot of an installaion at an index or the first free slot

Parameters
[in]installationPointer to the installation
[in]typedefence type, see aircraftItemType_t
[in]idxindex of aircraftslot
Returns
the aircraftSlot at the index idx if idx non-negative the first free slot otherwise

Definition at line 938 of file cp_mapfightequip.cpp.

References AC_ITEM_BASE_MISSILE, installation_s::batteries, i, aircraftSlot_s::item, aircraftSlot_s::nextItem, installation_s::numBatteries, and baseWeapon_s::slot.

Referenced by BDEF_AddItem_f(), BDEF_RemoveItem_f(), and BDEF_SelectItem_f().

void BDEF_InitialiseBaseSlots ( base_t base)

Initialise all values of base slot defence.

Parameters
[in]basePointer to the base which needs initalisation of its slots.

Definition at line 283 of file cp_mapfightequip.cpp.

References AC_ITEM_BASE_LASER, AC_ITEM_BASE_MISSILE, AII_InitialiseSlot(), baseWeapon_s::autofire, base_s::batteries, i, base_s::lasers, MAX_BASE_SLOT, baseWeapon_s::slot, and baseWeapon_s::target.

Referenced by B_Build(), and B_LoadXML().

void BDEF_InitialiseInstallationSlots ( installation_t installation)

Initialise all values of installation slot defence.

Parameters
[in]installationPointer to the installation which needs initialisation of its slots.

Definition at line 301 of file cp_mapfightequip.cpp.

References AC_ITEM_BASE_MISSILE, AII_InitialiseSlot(), baseWeapon_s::autofire, installation_s::batteries, i, installation_s::installationTemplate, installationTemplate_s::maxBatteries, baseWeapon_s::slot, and baseWeapon_s::target.

Referenced by INS_FinishInstallation(), and INS_LoadXML().

void BDEF_ReloadBattery ( void  )
void BDEF_RemoveBattery ( base_t base,
basedefenceType_t  basedefType,
int  idx 
)

Remove a base defence sytem from base.

Parameters
[in]baseThe base that is affected
[in]basedefType(see basedefenceType_t)
[in]idxindex of the battery to destroy
Note
if idx is negative the function looks for an empty battery to remove, it removes the last one if every one equipped
See also
BDEF_AddBattery

Definition at line 230 of file cp_mapfightequip.cpp.

References AC_ITEM_BASE_LASER, AC_ITEM_BASE_MISSILE, AII_InitialiseSlot(), BASEDEF_LASER, BASEDEF_MISSILE, base_s::batteries, cgi, i, aircraftSlot_s::item, base_s::lasers, base_s::numBatteries, base_s::numLasers, REMOVE_ELEM, and baseWeapon_s::slot.

Referenced by BDEF_RemoveBattery_f().