[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)
*
@ -256,73 +272,123 @@ 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) {
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_isTurret(o)) return o->u.blt.gfx_space;
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) {
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_isTurret(o)) return o->u.blt.spfx;
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) {
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_isTurret(o)) return o->u.blt.damage;
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) {
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_isTurret(o)) return o->u.blt.dtype;
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) {
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_isTurret(o)) return o->u.blt.delay;
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) {
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_isTurret(o)) return o->u.blt.energy;
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) {
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_isTurret(o)) return o->u.blt.range;
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) {
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_isTurret(o)) return o->u.blt.speed;
return -1.;
}
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 const char* outfit_getType(const Outfit* o)
*
* @brief Get the outfits specific type.
* @param o Outfit to get specific type from.
* @return The specific type in human readable form.
*/
const char* outfit_getType(const Outfit* o) {
const char* outfit_typename[] = {
"NULL",
"Bolt Cannon",
@ -341,37 +407,45 @@ const char* outfit_typename[] = {
"Smart Swarm Missile Ammunition Pack",
"Ship Modification",
"Afterburner",
"Map",
"Jammer"
"Jammer",
"Map"
};
const char* outfit_getType(const Outfit* o) {
return outfit_typename[o->type];
}
/* Return the broad outfit type. */
/**
* @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",
"Weapon",
"Bolt Weapon",
"Beam Weapon",
"Launcher",
"Ammo",
"Turret",
"Modification",
"Afterburner",
"Map",
"Jammer"
"Jammer",
"Map"
};
const char* outfit_getTypeBroad(const Outfit* o) {
int i = 0;
if(outfit_isWeapon(o)) i = 1;
else if(outfit_isLauncher(o)) i = 2;
else if(outfit_isAmmo(o)) i = 3;
else if(outfit_isTurret(o)) i = 4;
else if(outfit_isMod(o)) i = 5;
else if(outfit_isAfterburner(o)) i = 6;
else if(outfit_isMap(o)) i = 7;
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_isMap(o)) i = 9;
return outfit_typenamebroad[i];
}

View File

@ -63,6 +63,7 @@ typedef struct OutfitBoltData_ {
* @brief Represents the particular properties of a beam weapon.
*/
typedef struct OutfitBeamData_ {
unsigned int delay; /**< Delay between usage. */
double range; /**< How far it goes. */
double turn; /**< How fast it can turn. Only for turrets. */
glColour* colour; /**< Beam colour. */