[Change] Some cleaning up and more documentation of outfit.*

This commit is contained in:
Allanis 2013-09-23 20:58:55 +01:00
parent f0336e14af
commit 7030d97402
2 changed files with 136 additions and 61 deletions

View File

@ -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,74 +272,124 @@ 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_getType(const Outfit* o) {
const char* outfit_typename[] = {
const char* outfit_typename[] = {
"NULL", "NULL",
"Bolt Cannon", "Bolt Cannon",
"Beam Cannon", "Beam Cannon",
@ -341,37 +407,45 @@ const char* outfit_typename[] = {
"Smart Swarm Missile Ammunition Pack", "Smart Swarm Missile Ammunition Pack",
"Ship Modification", "Ship Modification",
"Afterburner", "Afterburner",
"Map", "Jammer",
"Jammer" "Map"
}; };
const char* outfit_getType(const Outfit* o) {
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)
*
* @brief Get the outfits broad type.
* @param o Outfit to get the type of.
* @return the outfits broad type in human readable form.
*/
const char* outfit_getTypeBroad(const Outfit* o) {
int i = 0;
const char* outfit_typenamebroad[] = {
"NULL", "NULL",
"Weapon", "Bolt Weapon",
"Beam Weapon",
"Launcher", "Launcher",
"Ammo", "Ammo",
"Turret", "Turret",
"Modification", "Modification",
"Afterburner", "Afterburner",
"Map", "Jammer",
"Jammer" "Map"
}; };
const char* outfit_getTypeBroad(const Outfit* o) { if(outfit_isBolt(o)) i = 1;
int i = 0; else if(outfit_isBeam(o)) i = 2;
if(outfit_isWeapon(o)) i = 1; else if(outfit_isLauncher(o)) i = 3;
else if(outfit_isLauncher(o)) i = 2; else if(outfit_isAmmo(o)) i = 4;
else if(outfit_isAmmo(o)) i = 3; else if(outfit_isTurret(o)) i = 5;
else if(outfit_isTurret(o)) i = 4; else if(outfit_isMod(o)) i = 6;
else if(outfit_isMod(o)) i = 5; else if(outfit_isAfterburner(o)) i = 7;
else if(outfit_isAfterburner(o)) i = 6;
else if(outfit_isMap(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];
} }

View File

@ -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. */