[Change] Some cleaning up and more documentation of outfit.*
This commit is contained in:
parent
f0336e14af
commit
7030d97402
196
src/outfit.c
196
src/outfit.c
@ -200,6 +200,22 @@ int outfit_isAmmo(const Outfit* o) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn int outfit_isSeeker(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Check if outfit is a seeking weapon.
|
||||||
|
* @param o Outfit to check.
|
||||||
|
* @return 1 if o is a seerker weapon.
|
||||||
|
*/
|
||||||
|
int outfit_isSeeker(const Outfit* o) {
|
||||||
|
if((o->type==OUTFIT_TYPE_MISSILE_SEEK_AMMO) ||
|
||||||
|
(o->type==OUTFIT_TYPE_MISSILE_SEEK_SMART_AMMO) ||
|
||||||
|
(o->type==OUTFIT_TYPE_MISSILE_SWARM_AMMO) ||
|
||||||
|
(o->type==OUTFIT_TYPE_MISSILE_SWARM_SMART_AMMO))
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @fn int outfit_isTurret(const Outfit* o)
|
* @fn int outfit_isTurret(const Outfit* o)
|
||||||
*
|
*
|
||||||
@ -256,122 +272,180 @@ int outfit_isMap(const Outfit* o) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Get the outfit graphics. */
|
/**
|
||||||
|
* @fn glTexture* outfit_gfx(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the outfits graphic effect.
|
||||||
|
* @param o Outfit to get information from.
|
||||||
|
*/
|
||||||
glTexture* outfit_gfx(const Outfit* o) {
|
glTexture* outfit_gfx(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.gfx_space;
|
if(outfit_isBolt(o)) return o->u.blt.gfx_space;
|
||||||
else if(outfit_isAmmo(o)) return o->u.amm.gfx_space;
|
else if(outfit_isAmmo(o)) return o->u.amm.gfx_space;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.gfx_space;
|
else if(outfit_isTurret(o)) return o->u.blt.gfx_space;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the outfit spfx if applicable. */
|
/**
|
||||||
|
* @fn glTexture* outfit_spfx(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the outfits sound effect.
|
||||||
|
* @param o Outfit to get information from.
|
||||||
|
*/
|
||||||
int outfit_spfx(const Outfit* o) {
|
int outfit_spfx(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.spfx;
|
if(outfit_isBolt(o)) return o->u.blt.spfx;
|
||||||
else if(outfit_isAmmo(o)) return o->u.amm.spfx;
|
else if(outfit_isAmmo(o)) return o->u.amm.spfx;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.spfx;
|
else if(outfit_isTurret(o)) return o->u.blt.spfx;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn double outfit_damage(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the outfits damage.
|
||||||
|
* @param o Outfit to get information.
|
||||||
|
*/
|
||||||
double outfit_damage(const Outfit* o) {
|
double outfit_damage(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.damage;
|
if(outfit_isBolt(o)) return o->u.blt.damage;
|
||||||
|
else if(outfit_isBeam(o)) return o->u.bem.damage;
|
||||||
else if(outfit_isAmmo(o)) return o->u.amm.damage;
|
else if(outfit_isAmmo(o)) return o->u.amm.damage;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.damage;
|
else if(outfit_isTurret(o)) return o->u.blt.damage;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn DamageType outfit_damageType(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the outfits damage type.
|
||||||
|
* @param o Outfit to get information from.
|
||||||
|
*/
|
||||||
DamageType outfit_damageType(const Outfit* o) {
|
DamageType outfit_damageType(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.dtype;
|
if(outfit_isBolt(o)) return o->u.blt.dtype;
|
||||||
|
else if(outfit_isBeam(o)) return o->u.bem.dtype;
|
||||||
else if(outfit_isAmmo(o)) return o->u.amm.dtype;
|
else if(outfit_isAmmo(o)) return o->u.amm.dtype;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.dtype;
|
else if(outfit_isTurret(o)) return o->u.blt.dtype;
|
||||||
return DAMAGE_TYPE_NULL;
|
return DAMAGE_TYPE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn int outfit_delay(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the ourfits delay.
|
||||||
|
* @param o Outfit to get information from.
|
||||||
|
*/
|
||||||
int outfit_delay(const Outfit* o) {
|
int outfit_delay(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.delay;
|
if(outfit_isBolt(o)) return o->u.blt.delay;
|
||||||
|
else if(outfit_isBeam(o)) return o->u.bem.delay;
|
||||||
else if(outfit_isLauncher(o)) return o->u.lau.delay;
|
else if(outfit_isLauncher(o)) return o->u.lau.delay;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.delay;
|
else if(outfit_isTurret(o)) return o->u.blt.delay;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn double outfit_energy(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the outfits energy usage.
|
||||||
|
* @param o Outfit to get information from.
|
||||||
|
*/
|
||||||
double outfit_energy(const Outfit* o) {
|
double outfit_energy(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.energy;
|
if(outfit_isBolt(o)) return o->u.blt.energy;
|
||||||
|
else if(outfit_isBeam(o)) return o->u.bem.energy;
|
||||||
else if(outfit_isAmmo(o)) return o->u.amm.energy;
|
else if(outfit_isAmmo(o)) return o->u.amm.energy;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.energy;
|
else if(outfit_isTurret(o)) return o->u.blt.energy;
|
||||||
return -1.;
|
return -1.;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn double outfit_range(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the outfits range.
|
||||||
|
* @param o Outfit to get information from.
|
||||||
|
*/
|
||||||
double outfit_range(const Outfit* o) {
|
double outfit_range(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.range;
|
if(outfit_isBolt(o)) return o->u.blt.range;
|
||||||
|
else if(outfit_isBeam(o)) return o->u.bem.range;
|
||||||
else if(outfit_isAmmo(o)) return 0.8*o->u.amm.speed*o->u.amm.duration;
|
else if(outfit_isAmmo(o)) return 0.8*o->u.amm.speed*o->u.amm.duration;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.range;
|
else if(outfit_isTurret(o)) return o->u.blt.range;
|
||||||
return -1.;
|
return -1.;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn double outfit_speed(const Outfit* o)
|
||||||
|
*
|
||||||
|
* @brief Get the outfits speed.
|
||||||
|
* @param o Outfit to get information from.
|
||||||
|
*/
|
||||||
double outfit_speed(const Outfit* o) {
|
double outfit_speed(const Outfit* o) {
|
||||||
if(outfit_isWeapon(o)) return o->u.blt.speed;
|
if(outfit_isBolt(o)) return o->u.blt.speed;
|
||||||
else if(outfit_isAmmo(o)) return o->u.amm.speed;
|
else if(outfit_isAmmo(o)) return o->u.amm.speed;
|
||||||
else if(outfit_isTurret(o)) return o->u.blt.speed;
|
else if(outfit_isTurret(o)) return o->u.blt.speed;
|
||||||
return -1.;
|
return -1.;
|
||||||
}
|
}
|
||||||
|
|
||||||
int outfit_isSeeker(const Outfit* o) {
|
/**
|
||||||
if((o->type == OUTFIT_TYPE_MISSILE_SEEK_AMMO) ||
|
* @fn const char* outfit_getType(const Outfit* o)
|
||||||
(o->type == OUTFIT_TYPE_MISSILE_SEEK_SMART_AMMO) ||
|
*
|
||||||
(o->type == OUTFIT_TYPE_MISSILE_SWARM_AMMO) ||
|
* @brief Get the outfits specific type.
|
||||||
(o->type == OUTFIT_TYPE_MISSILE_SWARM_SMART_AMMO))
|
* @param o Outfit to get specific type from.
|
||||||
return 1;
|
* @return The specific type in human readable form.
|
||||||
return 0;
|
*/
|
||||||
}
|
|
||||||
|
|
||||||
const char* outfit_typename[] = {
|
|
||||||
"NULL",
|
|
||||||
"Bolt Cannon",
|
|
||||||
"Beam Cannon",
|
|
||||||
"Bolt Turret",
|
|
||||||
"Beam Turret",
|
|
||||||
"Dumb Missile",
|
|
||||||
"Dumb Missile Ammunition",
|
|
||||||
"Seeker Missile",
|
|
||||||
"Seeker Missile Ammunition",
|
|
||||||
"Smart Seeker Missile",
|
|
||||||
"Smart Seeker Missile Ammunition",
|
|
||||||
"Swam Missile",
|
|
||||||
"Swarm Missile Ammunition Pack",
|
|
||||||
"Smart Swarm Missile",
|
|
||||||
"Smart Swarm Missile Ammunition Pack",
|
|
||||||
"Ship Modification",
|
|
||||||
"Afterburner",
|
|
||||||
"Map",
|
|
||||||
"Jammer"
|
|
||||||
};
|
|
||||||
|
|
||||||
const char* outfit_getType(const Outfit* o) {
|
const char* outfit_getType(const Outfit* o) {
|
||||||
|
const char* outfit_typename[] = {
|
||||||
|
"NULL",
|
||||||
|
"Bolt Cannon",
|
||||||
|
"Beam Cannon",
|
||||||
|
"Bolt Turret",
|
||||||
|
"Beam Turret",
|
||||||
|
"Dumb Missile",
|
||||||
|
"Dumb Missile Ammunition",
|
||||||
|
"Seeker Missile",
|
||||||
|
"Seeker Missile Ammunition",
|
||||||
|
"Smart Seeker Missile",
|
||||||
|
"Smart Seeker Missile Ammunition",
|
||||||
|
"Swam Missile",
|
||||||
|
"Swarm Missile Ammunition Pack",
|
||||||
|
"Smart Swarm Missile",
|
||||||
|
"Smart Swarm Missile Ammunition Pack",
|
||||||
|
"Ship Modification",
|
||||||
|
"Afterburner",
|
||||||
|
"Jammer",
|
||||||
|
"Map"
|
||||||
|
};
|
||||||
|
|
||||||
return outfit_typename[o->type];
|
return outfit_typename[o->type];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the broad outfit type. */
|
/**
|
||||||
const char* outfit_typenamebroad[] = {
|
* @fn const char* outfit_getTypeBroad(const Outfit* o)
|
||||||
"NULL",
|
*
|
||||||
"Weapon",
|
* @brief Get the outfits broad type.
|
||||||
"Launcher",
|
* @param o Outfit to get the type of.
|
||||||
"Ammo",
|
* @return the outfits broad type in human readable form.
|
||||||
"Turret",
|
*/
|
||||||
"Modification",
|
|
||||||
"Afterburner",
|
|
||||||
"Map",
|
|
||||||
"Jammer"
|
|
||||||
};
|
|
||||||
|
|
||||||
const char* outfit_getTypeBroad(const Outfit* o) {
|
const char* outfit_getTypeBroad(const Outfit* o) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
if(outfit_isWeapon(o)) i = 1;
|
|
||||||
else if(outfit_isLauncher(o)) i = 2;
|
const char* outfit_typenamebroad[] = {
|
||||||
else if(outfit_isAmmo(o)) i = 3;
|
"NULL",
|
||||||
else if(outfit_isTurret(o)) i = 4;
|
"Bolt Weapon",
|
||||||
else if(outfit_isMod(o)) i = 5;
|
"Beam Weapon",
|
||||||
else if(outfit_isAfterburner(o)) i = 6;
|
"Launcher",
|
||||||
else if(outfit_isMap(o)) i = 7;
|
"Ammo",
|
||||||
|
"Turret",
|
||||||
|
"Modification",
|
||||||
|
"Afterburner",
|
||||||
|
"Jammer",
|
||||||
|
"Map"
|
||||||
|
};
|
||||||
|
|
||||||
|
if(outfit_isBolt(o)) i = 1;
|
||||||
|
else if(outfit_isBeam(o)) i = 2;
|
||||||
|
else if(outfit_isLauncher(o)) i = 3;
|
||||||
|
else if(outfit_isAmmo(o)) i = 4;
|
||||||
|
else if(outfit_isTurret(o)) i = 5;
|
||||||
|
else if(outfit_isMod(o)) i = 6;
|
||||||
|
else if(outfit_isAfterburner(o)) i = 7;
|
||||||
else if(outfit_isJammer(o)) i = 8;
|
else if(outfit_isJammer(o)) i = 8;
|
||||||
|
else if(outfit_isMap(o)) i = 9;
|
||||||
|
|
||||||
return outfit_typenamebroad[i];
|
return outfit_typenamebroad[i];
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ typedef struct OutfitBoltData_ {
|
|||||||
* @brief Represents the particular properties of a beam weapon.
|
* @brief Represents the particular properties of a beam weapon.
|
||||||
*/
|
*/
|
||||||
typedef struct OutfitBeamData_ {
|
typedef struct OutfitBeamData_ {
|
||||||
|
unsigned int delay; /**< Delay between usage. */
|
||||||
double range; /**< How far it goes. */
|
double range; /**< How far it goes. */
|
||||||
double turn; /**< How fast it can turn. Only for turrets. */
|
double turn; /**< How fast it can turn. Only for turrets. */
|
||||||
glColour* colour; /**< Beam colour. */
|
glColour* colour; /**< Beam colour. */
|
||||||
|
Loading…
Reference in New Issue
Block a user