17#define outfit_isProp(o,p) ((o)->properties & p)
19#define OUTFIT_PROP_UNIQUE (1<<0)
20#define OUTFIT_PROP_SHOOT_DRY (1<<1)
21#define OUTFIT_PROP_TEMPLATE (1<<2)
22#define OUTFIT_PROP_WEAP_SECONDARY (1<<3)
23#define OUTFIT_PROP_WEAP_SPIN (1<<4)
24#define OUTFIT_PROP_WEAP_BLOWUP_ARMOUR (1<<5)
26#define OUTFIT_PROP_WEAP_BLOWUP_SHIELD (1<<6)
28#define OUTFIT_PROP_WEAP_FRIENDLYFIRE (1<<8)
29#define OUTFIT_PROP_WEAP_POINTDEFENSE (1<<9)
30#define OUTFIT_PROP_WEAP_MISS_SHIPS (1<<10)
31#define OUTFIT_PROP_WEAP_MISS_ASTEROIDS (1<<11)
32#define OUTFIT_PROP_WEAP_MISS_EXPLODE (1<<12)
33#define OUTFIT_PROP_WEAP_ONLYHITTARGET (1<<13)
37#define OUTFIT_LABEL_WEAPON N_("#pWeapon")
39#define OUTFIT_LABEL_UTILITY N_("#gUtility")
41#define OUTFIT_LABEL_STRUCTURE N_("#nStructural")
43#define OUTFIT_LABEL_CORE N_("#oCore")
57typedef enum OutfitType_ {
61 OUTFIT_TYPE_TURRET_BOLT,
62 OUTFIT_TYPE_TURRET_BEAM,
64 OUTFIT_TYPE_TURRET_LAUNCHER,
65 OUTFIT_TYPE_MODIFICATION,
66 OUTFIT_TYPE_AFTERBURNER,
67 OUTFIT_TYPE_FIGHTER_BAY,
78typedef enum OutfitSlotType_ {
81 OUTFIT_SLOT_INTRINSIC,
82 OUTFIT_SLOT_STRUCTURE,
90typedef enum OutfitSlotSize_ {
92 OUTFIT_SLOT_SIZE_LIGHT,
93 OUTFIT_SLOT_SIZE_MEDIUM,
94 OUTFIT_SLOT_SIZE_HEAVY
100typedef enum OutfitAmmoAI_ {
109typedef struct OutfitSlot_ {
119typedef struct OutfitGFX_ {
138typedef struct Damage_ {
148typedef struct OutfitBoltData_ {
178typedef struct OutfitBeamData_ {
211typedef struct OutfitLauncherData_ {
259typedef struct OutfitModificationData_ {
271typedef struct OutfitAfterburnerData_ {
289typedef struct OutfitFighterBayData_ {
306typedef struct OutfitLocalMapData_ {
314typedef struct OutfitGUIData_ {
321typedef struct OutfitLicenseData_ {
328typedef struct Outfit_ {
432int outfit_isAmmo(
const Outfit *o );
458int outfit_filterWeapon(
const Outfit *o );
459int outfit_filterUtility(
const Outfit *o );
460int outfit_filterStructure(
const Outfit *o );
461int outfit_filterCore(
const Outfit *o );
462int outfit_filterOther(
const Outfit *o );
468const char *
slotName(
const OutfitSlotType o );
470const char *
slotSize(
const OutfitSlotSize o );
int outfit_isSecondary(const Outfit *o)
Checks if outfit has the secondary flag set.
const char * outfit_description(const Outfit *o)
Gets the description of an outfit.
double outfit_speed(const Outfit *o)
Gets the outfit's speed.
double outfit_trackmin(const Outfit *o)
Gets the outfit's minimal tracking.
int outfit_isBeam(const Outfit *o)
Checks if outfit is a beam type weapon.
const char * outfit_summary(const Outfit *o, int withname)
Gets the summary of an outfit.
const Outfit * outfit_getAll(void)
Gets the array (array.h) of all outfits.
double outfit_cpu(const Outfit *o)
Gets the outfit's cpu usage.
int outfit_isActive(const Outfit *o)
Checks if outfit is an active outfit.
int outfit_soundHit(const Outfit *o)
Gets the outfit's hit sound.
const Outfit * outfit_get(const char *name)
Gets an outfit by name.
int outfit_isLauncher(const Outfit *o)
Checks if outfit is a weapon launcher.
int outfit_isSeeker(const Outfit *o)
Checks if outfit is a seeking weapon.
OutfitSlotSize outfit_toSlotSize(const char *s)
Gets the outfit slot size from a human readable string.
int outfit_miningRarity(const Outfit *o)
Gets the maximum rarity the outfit can mine up to.
int outfit_isLocalMap(const Outfit *o)
Checks if outfit is a local space map.
int outfit_isWeapon(const Outfit *o)
Checks to see if an outfit is a weapon.
char outfit_slotTypeColourFont(const OutfitSlot *os)
Gets a font colour character that roughly matches an outfit slot type colour.
int outfit_isToggleable(const Outfit *o)
Checks if outfit can be toggled.
int outfit_compareTech(const void *outfit1, const void *outfit2)
Function meant for use with C89, C99 algorithm qsort().
size_t outfit_getNameWithClass(const Outfit *outfit, char *buf, size_t size)
Gets a brief name/class description suitable for the title section of an outfitter screen.
const Outfit * outfit_getW(const char *name)
Gets an outfit by name without warning on no-find.
const char * outfit_getTypeBroad(const Outfit *o)
Gets the outfit's broad type.
int outfit_fitsSlot(const Outfit *o, const OutfitSlot *s)
Checks to see if an outfit fits a slot.
int outfit_checkIllegal(const Outfit *o, int fct)
Checks illegality of an outfit to a faction.
int outfit_isFighterBay(const Outfit *o)
Checks if outfit is a fighter bay.
int outfit_isAfterburner(const Outfit *o)
Checks if outfit is an afterburner.
double outfit_range(const Outfit *o)
Gets the outfit's range.
int outfit_isMap(const Outfit *o)
Checks if outfit is a space map.
double outfit_radius(const Outfit *o)
Gets the outfit's explosion radius.
int outfit_spfxShield(const Outfit *o)
Gets the outfit's sound effect.
int outfit_isTurret(const Outfit *o)
Checks if outfit is a turret class weapon.
double outfit_ammoMass(const Outfit *o)
Gets the outfit's ammunition mass.
int outfit_isForward(const Outfit *o)
Checks if outfit is a fixed mounted weapon.
const CollPoly * outfit_plg(const Outfit *o)
Gets the outfit's collision polygon.
int outfit_isLicense(const Outfit *o)
Checks if outfit is a license.
char outfit_slotSizeColourFont(const OutfitSlot *os)
Gets a font colour character that roughly matches an outfit slot size colour.
const OutfitGFX * outfit_gfx(const Outfit *o)
Gets the outfit's graphic effect.
int outfit_amount(const Outfit *o)
Gets the amount an outfit can hold.
int outfit_load(void)
Loads all the outfits.
const char * slotName(const OutfitSlotType type)
double outfit_spin(const Outfit *o)
Gets the outfit's animation spin.
int outfit_mapParse(void)
Parses all the maps.
const char * outfit_getType(const Outfit *o)
Gets the outfit's specific type.
double outfit_heat(const Outfit *o)
Gets the outfit's heat generation.
double outfit_trackmax(const Outfit *o)
Gets the outfit's minimal tracking.
int outfit_isMod(const Outfit *o)
Checks if outfit is a ship modification.
int outfit_isGUI(const Outfit *o)
Checks if outfit is a GUI.
int outfit_sound(const Outfit *o)
Gets the outfit's sound.
int outfit_spfxArmour(const Outfit *o)
Gets the outfit's sound effect.
const char * slotSize(const OutfitSlotSize o)
Gets the slot size as a string.
const Damage * outfit_damage(const Outfit *o)
Gets the outfit's damage.
char ** outfit_searchFuzzyCase(const char *name, int *n)
Does a fuzzy search of all the outfits. Searches translated names but returns internal names.
double outfit_swivel(const Outfit *o)
Gets the swivel of an outfit.
double outfit_duration(const Outfit *o)
Gets the outfit's duration.
double outfit_cooldown(const Outfit *o)
Gets the outfit's cooldown.
const char * outfit_slotName(const Outfit *o)
Gets the name of the slot type of an outfit.
int outfit_isBolt(const Outfit *o)
Checks if outfit is bolt type weapon.
const char * outfit_slotSize(const Outfit *o)
Gets the name of the slot size of an outfit.
void outfit_free(void)
Frees the outfit stack.
const char * outfit_existsCase(const char *name)
Checks to see if an outfit exists matching name (case insensitive).
double outfit_energy(const Outfit *o)
Gets the outfit's energy usage.
int outfit_licenseExists(const char *name)
Checks to see if a license exists.
void outfit_freeSlot(OutfitSlot *s)
Frees an outfit slot.
const char * outfit_getAmmoAI(const Outfit *o)
Gets a human-readable string describing an ammo outfit's AI.
glTexture * rarity_texture(int rarity)
const glColour * outfit_slotSizeColour(const OutfitSlot *os)
Gets the slot size colour for an outfit slot.
double outfit_delay(const Outfit *o)
Gets the outfit's delay.
int outfit_fitsSlotType(const Outfit *o, const OutfitSlot *s)
Checks to see if an outfit fits a slot type (ignoring size).
int outfit_loadPost(void)
Loads all the outfits legality.
Represents a polygon used for collision detection.
Core damage that an outfit does.
Represents an afterburner.
Represents the particular properties of a beam weapon.
Represents the particular properties of a bolt weapon.
Represents a fighter bay.
const struct Ship_ * ship
Represents a particular missile launcher.
const TrailSpec * trail_spec
Represents a map, is not actually stored on a ship but put into the nav system.
Represents a ship modification.
Pilot slot that can contain outfits.
A ship outfit, depends radically on the type.
OutfitModificationData mod
OutfitAfterburnerData afb
glTexture ** gfx_overlays
Represents relative ship statistics as a linked list.
represents a set of styles for trails.
Abstraction for rendering sprite sheets.