18typedef enum ShipStatsType_ {
31 SS_TYPE_D_ARMOUR_REGEN_MOD,
33 SS_TYPE_D_SHIELD_REGEN_MOD,
35 SS_TYPE_D_ENERGY_REGEN_MOD,
37 SS_TYPE_D_COOLDOWN_MOD,
42 SS_TYPE_D_CARGO_INERTIA,
46 SS_TYPE_D_EW_SIGNATURE,
50 SS_TYPE_D_EW_JUMPDETECT,
51 SS_TYPE_D_EW_STEALTH_TIMER,
52 SS_TYPE_D_EW_SCANNED_TIME,
55 SS_TYPE_D_LAUNCH_RATE,
56 SS_TYPE_D_LAUNCH_RANGE,
57 SS_TYPE_D_LAUNCH_DAMAGE,
58 SS_TYPE_D_AMMO_CAPACITY,
59 SS_TYPE_D_LAUNCH_LOCKON,
60 SS_TYPE_D_LAUNCH_CALIBRATION,
61 SS_TYPE_D_LAUNCH_RELOAD,
64 SS_TYPE_D_FBAY_DAMAGE,
65 SS_TYPE_D_FBAY_HEALTH,
66 SS_TYPE_D_FBAY_MOVEMENT,
67 SS_TYPE_D_FBAY_CAPACITY,
69 SS_TYPE_D_FBAY_RELOAD,
72 SS_TYPE_D_FORWARD_HEAT,
73 SS_TYPE_D_FORWARD_DAMAGE,
74 SS_TYPE_D_FORWARD_FIRERATE,
75 SS_TYPE_D_FORWARD_ENERGY,
76 SS_TYPE_D_FORWARD_DAMAGE_AS_DISABLE,
79 SS_TYPE_D_TURRET_HEAT,
80 SS_TYPE_D_TURRET_DAMAGE,
81 SS_TYPE_D_TURRET_TRACKING,
82 SS_TYPE_D_TURRET_FIRERATE,
83 SS_TYPE_D_TURRET_ENERGY,
84 SS_TYPE_D_TURRET_DAMAGE_AS_DISABLE,
87 SS_TYPE_D_HEAT_DISSIPATION,
88 SS_TYPE_D_STRESS_DISSIPATION,
91 SS_TYPE_D_ENGINE_LIMIT_REL,
94 SS_TYPE_D_TIME_SPEEDUP,
95 SS_TYPE_D_COOLDOWN_TIME,
96 SS_TYPE_D_JUMP_DISTANCE,
97 SS_TYPE_D_JUMP_WARMUP,
98 SS_TYPE_D_MINING_BONUS,
109 SS_TYPE_A_ENERGY_REGEN,
110 SS_TYPE_A_ENERGY_REGEN_MALUS,
111 SS_TYPE_A_ENERGY_LOSS,
113 SS_TYPE_A_SHIELD_REGEN,
114 SS_TYPE_A_SHIELD_REGEN_MALUS,
116 SS_TYPE_A_ARMOUR_REGEN,
117 SS_TYPE_A_ARMOUR_REGEN_MALUS,
122 SS_TYPE_A_ENGINE_LIMIT,
123 SS_TYPE_A_FUEL_REGEN,
124 SS_TYPE_A_ASTEROID_SCAN,
125 SS_TYPE_A_NEBULA_VISIBILITY,
132 SS_TYPE_P_NEBULA_ABSORB,
133 SS_TYPE_P_JAMMING_CHANCE,
145 SS_TYPE_B_HIDDEN_JUMP_DETECT,
146 SS_TYPE_B_INSTANT_JUMP,
147 SS_TYPE_B_REVERSE_THRUST,
167typedef struct ShipStatList_ {
198typedef struct ShipStats_ {
int ss_statsListDesc(const ShipStatList *ll, char *buf, int len, int newline)
Writes the ship statistics description.
void ss_free(ShipStatList *ll)
Frees a list of ship stats.
int ss_statsMerge(ShipStats *dest, const ShipStats *src)
Merges two different ship stats.
int ss_statsMergeFromList(ShipStats *stats, const ShipStatList *list)
Updates a stat structure from a stat list.
int ss_statsGetLua(lua_State *L, const ShipStats *s, const char *name, int internal)
Gets a ship stat value by name and pushes it to Lua.
const char * ss_nameFromType(ShipStatsType type)
Gets the name from type.
int ss_statsMergeFromListScale(ShipStats *stats, const ShipStatList *list, double scale)
Updates a stat structure from a stat list.
int ss_statsMergeSingleScale(ShipStats *stats, const ShipStatList *list, double scale)
Modifies a stat structure using a single element.
int ss_statsDesc(const ShipStats *s, char *buf, int len, int newline)
Writes the ship statistics description.
int ss_statsMergeSingle(ShipStats *stats, const ShipStatList *list)
Modifies a stat structure using a single element.
size_t ss_offsetFromType(ShipStatsType type)
Gets the offset from type.
ShipStatsType ss_typeFromName(const char *name)
Gets the type from the name.
int ss_listToXML(xmlTextWriterPtr writer, const ShipStatList *ll)
Creatse a shipstat list element from an xml node.
double ss_statsGet(const ShipStats *s, const char *name)
Gets a ship stat value by name.
int ss_statsInit(ShipStats *stats)
Initializes a stat structure.
int ss_statsSet(ShipStats *s, const char *name, double value, int overwrite)
Sets a ship stat by name.
int ss_statsGetLuaTable(lua_State *L, const ShipStats *s, int internal)
Converts ship stats to a Lua table, which is pushed on the Lua stack.
int ss_check(void)
Checks for validity.
ShipStatList * ss_listFromXML(xmlNodePtr node)
Creates a shipstat list element from an xml node.
int ss_sort(ShipStatList **ll)
Sorts the ship stats, useful if doing saving stuff.
Represents relative ship statistics as a linked list.
struct ShipStatList_ * next
Represents ship statistics, properties ship can use.
double shield_regen_malus
double energy_regen_malus
double launch_calibration
double armour_regen_malus
int misc_hidden_jump_detect
double stress_dissipation