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_WEAP_SECONDARY (1<<10)
22#define OUTFIT_PROP_WEAP_SPIN (1<<11)
23#define OUTFIT_PROP_WEAP_BLOWUP_ARMOUR (1<<12)
25#define OUTFIT_PROP_WEAP_BLOWUP_SHIELD (1<<13)
30#define OUTFIT_LABEL_WEAPON N_("#p W ")
32#define OUTFIT_LABEL_UTILITY N_("#g U ")
34#define OUTFIT_LABEL_STRUCTURE N_("#n S ")
36#define OUTFIT_LABEL_CORE N_("#oCore")
50typedef enum OutfitType_ {
54 OUTFIT_TYPE_TURRET_BOLT,
55 OUTFIT_TYPE_TURRET_BEAM,
57 OUTFIT_TYPE_TURRET_LAUNCHER,
58 OUTFIT_TYPE_MODIFICATION,
59 OUTFIT_TYPE_AFTERBURNER,
60 OUTFIT_TYPE_FIGHTER_BAY,
71typedef enum OutfitSlotType_ {
74 OUTFIT_SLOT_STRUCTURE,
82typedef enum OutfitSlotSize_ {
84 OUTFIT_SLOT_SIZE_LIGHT,
85 OUTFIT_SLOT_SIZE_MEDIUM,
86 OUTFIT_SLOT_SIZE_HEAVY
92typedef enum OutfitAmmoAI_ {
101typedef struct OutfitSlot_ {
111typedef struct Damage_ {
121typedef struct OutfitBoltData_ {
154typedef struct OutfitBeamData_ {
187typedef struct OutfitLauncherData_ {
234typedef struct OutfitModificationData_ {
246typedef struct OutfitAfterburnerData_ {
265typedef struct OutfitFighterBayData_ {
282typedef struct OutfitLocalMapData_ {
290typedef struct OutfitGUIData_ {
297typedef struct OutfitLicenseData_ {
304typedef struct Outfit_ {
398int outfit_isAmmo(
const Outfit *o );
424int outfit_filterWeapon(
const Outfit *o );
425int outfit_filterUtility(
const Outfit *o );
426int outfit_filterStructure(
const Outfit *o );
427int outfit_filterCore(
const Outfit *o );
428int outfit_filterOther(
const Outfit *o );
434const char *
slotName(
const OutfitSlotType o );
436const 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.
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.
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.
int outfit_amount(const Outfit *o)
Gets the amount an outfit can hold.
const glTexture * outfit_gfx(const Outfit *o)
Gets the outfit's graphic effect.
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_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 Outfit_ * ammo
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.