naev 0.10.4
outfit.h
1/*
2 * See Licensing and Copyright notice in naev.h
3 */
4#pragma once
5
6#include "collision.h"
7#include "commodity.h"
8#include "opengl.h"
9#include "shipstats.h"
10#include "sound.h"
11#include "spfx.h"
12#include "nlua.h"
13
14/*
15 * properties
16 */
17#define outfit_isProp(o,p) ((o)->properties & p)
18/* property flags */
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)
28/* Outfit filter labels. [Doc comments are also translator notes and must precede the #define.] */
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")
37
38/*
39 * Needed because some outfittypes call other outfits.
40 */
41struct Outfit_;
42
50typedef enum OutfitType_ {
51 OUTFIT_TYPE_NULL,
52 OUTFIT_TYPE_BOLT,
53 OUTFIT_TYPE_BEAM,
54 OUTFIT_TYPE_TURRET_BOLT,
55 OUTFIT_TYPE_TURRET_BEAM,
56 OUTFIT_TYPE_LAUNCHER,
57 OUTFIT_TYPE_TURRET_LAUNCHER,
58 OUTFIT_TYPE_MODIFICATION,
59 OUTFIT_TYPE_AFTERBURNER,
60 OUTFIT_TYPE_FIGHTER_BAY,
61 OUTFIT_TYPE_MAP,
62 OUTFIT_TYPE_LOCALMAP,
63 OUTFIT_TYPE_GUI,
64 OUTFIT_TYPE_LICENSE,
65 OUTFIT_TYPE_SENTINEL
66} OutfitType;
67
71typedef enum OutfitSlotType_ {
72 OUTFIT_SLOT_NULL,
73 OUTFIT_SLOT_NA,
74 OUTFIT_SLOT_STRUCTURE,
75 OUTFIT_SLOT_UTILITY,
76 OUTFIT_SLOT_WEAPON
77} OutfitSlotType;
78
82typedef enum OutfitSlotSize_ {
83 OUTFIT_SLOT_SIZE_NA,
84 OUTFIT_SLOT_SIZE_LIGHT,
85 OUTFIT_SLOT_SIZE_MEDIUM,
86 OUTFIT_SLOT_SIZE_HEAVY
87} OutfitSlotSize;
88
92typedef enum OutfitAmmoAI_ {
93 AMMO_AI_UNGUIDED,
94 AMMO_AI_SEEK,
95 AMMO_AI_SMART
96} OutfitAmmoAI;
97
101typedef struct OutfitSlot_ {
102 unsigned int spid;
104 OutfitSlotType type;
105 OutfitSlotSize size;
106} OutfitSlot;
107
111typedef struct Damage_ {
112 int type;
113 double penetration;
114 double damage;
115 double disable;
116} Damage;
117
121typedef struct OutfitBoltData_ {
122 double delay;
123 double speed;
124 double range;
125 double falloff;
126 double energy;
128 double heatup;
129 double heat;
130 double trackmin;
131 double trackmax;
132 double swivel;
135 int shots;
138 /* Sound and graphics. */
141 double spin;
142 int sound;
147 /* collision polygon */
150
154typedef struct OutfitBeamData_ {
155 /* Time stuff. */
156 double delay;
157 double warmup;
158 double duration;
161 /* Beam properties. */
162 double range;
163 double turn;
164 double energy;
166 double heatup;
167 double heat;
168 double swivel;
171 /* Graphics and sound. */
172 glColour colour;
173 GLfloat width;
174 GLuint shader;
178 int sound;
181
187typedef struct OutfitLauncherData_ {
188 double delay;
189 int amount;
190 double reload_time;
192 /* Lock-on information. */
193 double lockon;
194 double iflockon;
195 double trackmin;
196 double trackmax;
197 double arc;
198 double swivel;
201 int shots;
204 double ammo_mass;
205 double duration;
206 double resist;
207 OutfitAmmoAI ai;
209 double speed;
210 double speed_max;
211 double turn;
212 double thrust;
213 double energy;
217 double spin;
218 int sound;
225 /* collision polygon */
228
234typedef struct OutfitModificationData_ {
235 /* Active information (if applicable). */
236 int active;
237 double duration;
238 double cooldown;
240 /* All the modifiers are based on the outfit's ship stats, nothing here but active stuff. */
242
246typedef struct OutfitAfterburnerData_ {
247 /* Internal properties. */
248 double rumble;
250 int sound;
252 double thrust;
253 double speed;
254 double energy;
256 double heatup;
257 double heat;
258 double heat_cap;
259 double heat_base;
261
265typedef struct OutfitFighterBayData_ {
266 char *ship;
267 double ship_mass;
268 const struct Outfit_ *ammo;
269 double delay;
270 int amount;
272 int sound;
274
275/* Forward declaration */
276struct OutfitMapData_s;
277typedef struct OutfitMapData_s OutfitMapData_t;
278
282typedef struct OutfitLocalMapData_ {
283 double jump_detect;
284 double spob_detect;
286
290typedef struct OutfitGUIData_ {
291 char *gui;
293
297typedef struct OutfitLicenseData_ {
298 char *provides;
300
304typedef struct Outfit_ {
305 char *name;
306 char *typename;
307 int rarity;
308 char *filename;
310 /* General specs */
312 char *license;
313 char *cond;
314 char *condstr;
315 double mass;
316 double cpu;
317 char *limit;
321 /* Store stuff */
322 credits_t price;
323 char *desc_raw;
331 unsigned int properties;
332 unsigned int group;
334 /* Stats. */
337 /* Tags. */
338 char **tags;
340 /* Lua function references. Set to LUA_NOREF if not used. */
341 char *lua_file;
342 nlua_env lua_env;
360 /* Weapons only. */
363 /* Independent of slots and pilots. */
368 /* Type dependent */
369 OutfitType type;
370 union {
377 OutfitMapData_t *map;
381 } u;
382} Outfit;
383
384/*
385 * Access stuff.
386 */
387const Outfit* outfit_get( const char* name );
388const Outfit* outfit_getW( const char* name );
389const Outfit* outfit_getAll (void);
390int outfit_compareTech( const void *outfit1, const void *outfit2 );
391/* outfit types */
392int outfit_isActive( const Outfit *o );
393int outfit_isToggleable( const Outfit *o );
394int outfit_isForward( const Outfit *o );
395int outfit_isBolt( const Outfit *o );
396int outfit_isBeam( const Outfit *o );
397int outfit_isLauncher( const Outfit *o );
398int outfit_isAmmo( const Outfit *o );
399int outfit_isSeeker( const Outfit *o );
400int outfit_isTurret( const Outfit *o );
401int outfit_isMod( const Outfit *o );
402int outfit_isAfterburner( const Outfit *o );
403int outfit_isFighterBay( const Outfit *o );
404int outfit_isMap( const Outfit *o );
405int outfit_isLocalMap( const Outfit *o );
406int outfit_isGUI( const Outfit *o );
407int outfit_isLicense( const Outfit *o );
408int outfit_isSecondary( const Outfit *o );
409const char* outfit_getType( const Outfit *o );
410const char* outfit_getTypeBroad( const Outfit *o );
411const char* outfit_getAmmoAI( const Outfit *o );
412const char* outfit_description( const Outfit *o );
413const char* outfit_summary( const Outfit *o, int withname );
414
415/*
416 * Search.
417 */
418const char *outfit_existsCase( const char* name );
419char **outfit_searchFuzzyCase( const char* name, int *n );
420
421/*
422 * Filter.
423 */
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 );
429
430/*
431 * Get data from outfits.
432 */
433const char *outfit_slotName( const Outfit* o );
434const char *slotName( const OutfitSlotType o );
435const char *outfit_slotSize( const Outfit* o );
436const char *slotSize( const OutfitSlotSize o );
437const glColour *outfit_slotSizeColour( const OutfitSlot* os );
438char outfit_slotSizeColourFont( const OutfitSlot* os );
439char outfit_slotTypeColourFont( const OutfitSlot* os );
440size_t outfit_getNameWithClass( const Outfit* outfit, char* buf, size_t size );
441OutfitSlotSize outfit_toSlotSize( const char *s );
442const glTexture* outfit_gfx( const Outfit* o );
443const CollPoly* outfit_plg( const Outfit* o );
444int outfit_spfxArmour( const Outfit* o );
445int outfit_spfxShield( const Outfit* o );
446const Damage *outfit_damage( const Outfit* o );
447double outfit_delay( const Outfit* o );
448int outfit_amount( const Outfit* o );
449double outfit_energy( const Outfit* o );
450double outfit_heat( const Outfit* o );
451double outfit_cpu( const Outfit* o );
452double outfit_range( const Outfit* o );
453double outfit_speed( const Outfit* o );
454double outfit_spin( const Outfit* o );
455double outfit_trackmin( const Outfit* o );
456double outfit_trackmax( const Outfit* o );
457int outfit_miningRarity( const Outfit* o );
458int outfit_sound( const Outfit* o );
459int outfit_soundHit( const Outfit* o );
460double outfit_ammoMass( const Outfit *o );
461/* Active outfits. */
462double outfit_duration( const Outfit* o );
463double outfit_cooldown( const Outfit* o );
464
465/*
466 * Loading and freeing outfit stack.
467 */
468int outfit_load (void);
469int outfit_loadPost (void);
470int outfit_mapParse(void);
471void outfit_free (void);
472
473/*
474 * Misc.
475 */
476int outfit_fitsSlot( const Outfit* o, const OutfitSlot* s );
477int outfit_fitsSlotType( const Outfit* o, const OutfitSlot* s );
478void outfit_freeSlot( OutfitSlot* s );
479glTexture* rarity_texture( int rarity );
480int outfit_checkIllegal( const Outfit* o, int fct );
481int outfit_licenseExists( const char *name );
int outfit_isSecondary(const Outfit *o)
Checks if outfit has the secondary flag set.
Definition: outfit.c:596
const char * outfit_description(const Outfit *o)
Gets the description of an outfit.
Definition: outfit.c:955
double outfit_speed(const Outfit *o)
Gets the outfit's speed.
Definition: outfit.c:742
double outfit_trackmin(const Outfit *o)
Gets the outfit's minimal tracking.
Definition: outfit.c:782
int outfit_isBeam(const Outfit *o)
Checks if outfit is a beam type weapon.
Definition: outfit.c:488
const char * outfit_summary(const Outfit *o, int withname)
Gets the summary of an outfit.
Definition: outfit.c:969
const Outfit * outfit_getAll(void)
Gets the array (array.h) of all outfits.
Definition: outfit.c:141
double outfit_cpu(const Outfit *o)
Gets the outfit's cpu usage.
Definition: outfit.c:703
int outfit_isActive(const Outfit *o)
Checks if outfit is an active outfit.
Definition: outfit.c:434
int outfit_soundHit(const Outfit *o)
Gets the outfit's hit sound.
Definition: outfit.c:829
const Outfit * outfit_get(const char *name)
Gets an outfit by name.
Definition: outfit.c:118
int outfit_isLauncher(const Outfit *o)
Checks if outfit is a weapon launcher.
Definition: outfit.c:498
int outfit_isSeeker(const Outfit *o)
Checks if outfit is a seeking weapon.
Definition: outfit.c:508
OutfitSlotSize outfit_toSlotSize(const char *s)
Gets the outfit slot size from a human readable string.
Definition: outfit.c:411
int outfit_miningRarity(const Outfit *o)
Gets the maximum rarity the outfit can mine up to.
Definition: outfit.c:806
int outfit_isLocalMap(const Outfit *o)
Checks if outfit is a local space map.
Definition: outfit.c:568
char outfit_slotTypeColourFont(const OutfitSlot *os)
Gets a font colour character that roughly matches an outfit slot type colour.
Definition: outfit.c:375
int outfit_isToggleable(const Outfit *o)
Checks if outfit can be toggled.
Definition: outfit.c:450
int outfit_compareTech(const void *outfit1, const void *outfit2)
Function meant for use with C89, C99 algorithm qsort().
Definition: outfit.c:195
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.
Definition: outfit.c:394
const Outfit * outfit_getW(const char *name)
Gets an outfit by name without warning on no-find.
Definition: outfit.c:132
const char * outfit_getTypeBroad(const Outfit *o)
Gets the outfit's broad type.
Definition: outfit.c:910
int outfit_fitsSlot(const Outfit *o, const OutfitSlot *s)
Checks to see if an outfit fits a slot.
Definition: outfit.c:981
int outfit_checkIllegal(const Outfit *o, int fct)
Checks illegality of an outfit to a faction.
Definition: outfit.c:2736
int outfit_isFighterBay(const Outfit *o)
Checks if outfit is a fighter bay.
Definition: outfit.c:550
int outfit_isAfterburner(const Outfit *o)
Checks if outfit is an afterburner.
Definition: outfit.c:541
double outfit_range(const Outfit *o)
Gets the outfit's range.
Definition: outfit.c:711
int outfit_isMap(const Outfit *o)
Checks if outfit is a space map.
Definition: outfit.c:559
int outfit_spfxShield(const Outfit *o)
Gets the outfit's sound effect.
Definition: outfit.c:636
int outfit_isTurret(const Outfit *o)
Checks if outfit is a turret class weapon.
Definition: outfit.c:521
double outfit_ammoMass(const Outfit *o)
Gets the outfit's ammunition mass.
Definition: outfit.c:840
int outfit_isForward(const Outfit *o)
Checks if outfit is a fixed mounted weapon.
Definition: outfit.c:468
const CollPoly * outfit_plg(const Outfit *o)
Gets the outfit's collision polygon.
Definition: outfit.c:615
int outfit_isLicense(const Outfit *o)
Checks if outfit is a license.
Definition: outfit.c:577
char outfit_slotSizeColourFont(const OutfitSlot *os)
Gets a font colour character that roughly matches an outfit slot size colour.
Definition: outfit.c:358
int outfit_amount(const Outfit *o)
Gets the amount an outfit can hold.
Definition: outfit.c:670
const glTexture * outfit_gfx(const Outfit *o)
Gets the outfit's graphic effect.
Definition: outfit.c:605
int outfit_load(void)
Loads all the outfits.
Definition: outfit.c:2511
const char * slotName(const OutfitSlotType type)
Definition: outfit.c:287
double outfit_spin(const Outfit *o)
Gets the outfit's animation spin.
Definition: outfit.c:771
int outfit_mapParse(void)
Parses all the maps.
Definition: outfit.c:2685
const char * outfit_getType(const Outfit *o)
Gets the outfit's specific type.
Definition: outfit.c:879
double outfit_heat(const Outfit *o)
Gets the outfit's heat generation.
Definition: outfit.c:692
double outfit_trackmax(const Outfit *o)
Gets the outfit's minimal tracking.
Definition: outfit.c:794
int outfit_isMod(const Outfit *o)
Checks if outfit is a ship modification.
Definition: outfit.c:532
int outfit_isGUI(const Outfit *o)
Checks if outfit is a GUI.
Definition: outfit.c:586
int outfit_sound(const Outfit *o)
Gets the outfit's sound.
Definition: outfit.c:818
int outfit_spfxArmour(const Outfit *o)
Gets the outfit's sound effect.
Definition: outfit.c:625
const char * slotSize(const OutfitSlotSize o)
Gets the slot size as a string.
Definition: outfit.c:308
const Damage * outfit_damage(const Outfit *o)
Gets the outfit's damage.
Definition: outfit.c:647
char ** outfit_searchFuzzyCase(const char *name, int *n)
Does a fuzzy search of all the outfits. Searches translated names but returns internal names.
Definition: outfit.c:160
double outfit_duration(const Outfit *o)
Gets the outfit's duration.
Definition: outfit.c:851
double outfit_cooldown(const Outfit *o)
Gets the outfit's cooldown.
Definition: outfit.c:866
const char * outfit_slotName(const Outfit *o)
Gets the name of the slot type of an outfit.
Definition: outfit.c:279
int outfit_isBolt(const Outfit *o)
Checks if outfit is bolt type weapon.
Definition: outfit.c:478
const char * outfit_slotSize(const Outfit *o)
Gets the name of the slot size of an outfit.
Definition: outfit.c:330
void outfit_free(void)
Frees the outfit stack.
Definition: outfit.c:2759
const char * outfit_existsCase(const char *name)
Checks to see if an outfit exists matching name (case insensitive).
Definition: outfit.c:149
double outfit_energy(const Outfit *o)
Gets the outfit's energy usage.
Definition: outfit.c:681
int outfit_licenseExists(const char *name)
Checks to see if a license exists.
Definition: outfit.c:2748
void outfit_freeSlot(OutfitSlot *s)
Frees an outfit slot.
Definition: outfit.c:1047
const char * outfit_getAmmoAI(const Outfit *o)
Gets a human-readable string describing an ammo outfit's AI.
Definition: outfit.c:931
glTexture * rarity_texture(int rarity)
Definition: outfit.c:2726
const glColour * outfit_slotSizeColour(const OutfitSlot *os)
Gets the slot size colour for an outfit slot.
Definition: outfit.c:341
double outfit_delay(const Outfit *o)
Gets the outfit's delay.
Definition: outfit.c:658
int outfit_fitsSlotType(const Outfit *o, const OutfitSlot *s)
Checks to see if an outfit fits a slot type (ignoring size).
Definition: outfit.c:1025
int outfit_loadPost(void)
Loads all the outfits legality.
Definition: outfit.c:2634
Represents a polygon used for collision detection.
Definition: collision.h:13
Core damage that an outfit does.
Definition: outfit.h:111
int type
Definition: outfit.h:112
double disable
Definition: outfit.h:115
double penetration
Definition: outfit.h:113
double damage
Definition: outfit.h:114
Represents an afterburner.
Definition: outfit.h:246
Represents the particular properties of a beam weapon.
Definition: outfit.h:154
double energy
Definition: outfit.h:164
double heatup
Definition: outfit.h:166
int sound_warmup
Definition: outfit.h:177
double duration
Definition: outfit.h:158
int spfx_armour
Definition: outfit.h:175
double warmup
Definition: outfit.h:157
int mining_rarity
Definition: outfit.h:169
Damage dmg
Definition: outfit.h:165
GLuint shader
Definition: outfit.h:174
double min_duration
Definition: outfit.h:159
double turn
Definition: outfit.h:163
double heat
Definition: outfit.h:167
double range
Definition: outfit.h:162
int sound_off
Definition: outfit.h:179
double swivel
Definition: outfit.h:168
glColour colour
Definition: outfit.h:172
GLfloat width
Definition: outfit.h:173
int spfx_shield
Definition: outfit.h:176
double delay
Definition: outfit.h:156
Represents the particular properties of a bolt weapon.
Definition: outfit.h:121
glTexture * gfx_end
Definition: outfit.h:140
int spfx_shield
Definition: outfit.h:145
double dispersion
Definition: outfit.h:133
double heat
Definition: outfit.h:129
double trackmin
Definition: outfit.h:130
double falloff
Definition: outfit.h:125
double range
Definition: outfit.h:124
double delay
Definition: outfit.h:122
double swivel
Definition: outfit.h:132
CollPoly * polygon
Definition: outfit.h:148
int sound_hit
Definition: outfit.h:143
double heatup
Definition: outfit.h:128
double spin
Definition: outfit.h:141
Damage dmg
Definition: outfit.h:127
double trackmax
Definition: outfit.h:131
double speed
Definition: outfit.h:123
int mining_rarity
Definition: outfit.h:136
double energy
Definition: outfit.h:126
glTexture * gfx_space
Definition: outfit.h:139
int spfx_armour
Definition: outfit.h:144
double speed_dispersion
Definition: outfit.h:134
Represents a fighter bay.
Definition: outfit.h:265
const struct Outfit_ * ammo
Definition: outfit.h:268
double reload_time
Definition: outfit.h:271
Represents a GUI.
Definition: outfit.h:290
char * gui
Definition: outfit.h:291
Represents a particular missile launcher.
Definition: outfit.h:187
double trackmax
Definition: outfit.h:196
CollPoly * polygon
Definition: outfit.h:226
double iflockon
Definition: outfit.h:194
double speed_max
Definition: outfit.h:210
double dispersion
Definition: outfit.h:199
double speed_dispersion
Definition: outfit.h:200
double trail_x_offset
Definition: outfit.h:223
const TrailSpec * trail_spec
Definition: outfit.h:222
double reload_time
Definition: outfit.h:190
double trackmin
Definition: outfit.h:195
glTexture * gfx_space
Definition: outfit.h:216
double duration
Definition: outfit.h:205
OutfitAmmoAI ai
Definition: outfit.h:207
double ammo_mass
Definition: outfit.h:204
Represents a license.
Definition: outfit.h:297
char * provides
Definition: outfit.h:298
Represents a local map.
Definition: outfit.h:282
double jump_detect
Definition: outfit.h:283
double spob_detect
Definition: outfit.h:284
Represents a map, is not actually stored on a ship but put into the nav system.
Definition: mapData.h:13
Represents a ship modification.
Definition: outfit.h:234
Pilot slot that can contain outfits.
Definition: outfit.h:101
OutfitSlotSize size
Definition: outfit.h:105
int exclusive
Definition: outfit.h:103
unsigned int spid
Definition: outfit.h:102
OutfitSlotType type
Definition: outfit.h:104
A ship outfit, depends radically on the type.
Definition: outfit.h:304
char ** tags
Definition: outfit.h:338
unsigned int properties
Definition: outfit.h:331
int lua_ontoggle
Definition: outfit.h:349
char * lua_file
Definition: outfit.h:341
credits_t price
Definition: outfit.h:322
int lua_onscan
Definition: outfit.h:355
char * limit
Definition: outfit.h:317
int lua_jumpin
Definition: outfit.h:359
char * cond
Definition: outfit.h:313
double cpu
Definition: outfit.h:316
OutfitLauncherData lau
Definition: outfit.h:373
int lua_cooldown
Definition: outfit.h:356
char * desc_raw
Definition: outfit.h:323
OutfitBeamData bem
Definition: outfit.h:372
int lua_buy
Definition: outfit.h:365
OutfitBoltData blt
Definition: outfit.h:371
int lua_takeoff
Definition: outfit.h:358
OutfitType type
Definition: outfit.h:369
int lua_onimpact
Definition: outfit.h:361
int lua_outofenergy
Definition: outfit.h:351
int lua_land
Definition: outfit.h:357
int lua_onscanned
Definition: outfit.h:354
int lua_update
Definition: outfit.h:348
int lua_onmiss
Definition: outfit.h:362
glTexture * gfx_store
Definition: outfit.h:328
int rarity
Definition: outfit.h:307
int lua_descextra
Definition: outfit.h:343
int lua_price
Definition: outfit.h:364
OutfitGUIData gui
Definition: outfit.h:379
unsigned int group
Definition: outfit.h:332
char * condstr
Definition: outfit.h:314
char ** illegaltoS
Definition: outfit.h:319
char * filename
Definition: outfit.h:308
OutfitModificationData mod
Definition: outfit.h:374
OutfitSlot slot
Definition: outfit.h:311
int lua_onhit
Definition: outfit.h:350
char * summary_raw
Definition: outfit.h:324
OutfitAfterburnerData afb
Definition: outfit.h:375
int * illegalto
Definition: outfit.h:318
int lua_onshoot
Definition: outfit.h:352
OutfitFighterBayData bay
Definition: outfit.h:376
int priority
Definition: outfit.h:326
int lua_cleanup
Definition: outfit.h:347
int lua_sell
Definition: outfit.h:366
ShipStatList * stats
Definition: outfit.h:335
nlua_env lua_env
Definition: outfit.h:342
int lua_onstealth
Definition: outfit.h:353
char * license
Definition: outfit.h:312
OutfitLocalMapData lmap
Definition: outfit.h:378
int lua_onadd
Definition: outfit.h:344
glTexture ** gfx_overlays
Definition: outfit.h:329
int lua_onremove
Definition: outfit.h:345
double mass
Definition: outfit.h:315
char * desc_extra
Definition: outfit.h:325
OutfitMapData_t * map
Definition: outfit.h:377
char * name
Definition: outfit.h:305
int lua_init
Definition: outfit.h:346
OutfitLicenseData lic
Definition: outfit.h:380
Represents relative ship statistics as a linked list.
Definition: shipstats.h:167
represents a set of styles for trails.
Definition: spfx.h:43
Abstraction for rendering sprite sheets.
Definition: opengl_tex.h:34