[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,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];
} }

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