/** * @brief Does explosion damage in a radius. * * @param x X position of explosion center. * @param y Y position of explosion center. * @param radius Radius of the explosion. * @param dtype Damage type. * @param damage Damage amount. * @param penetration Damage penetration [0:1]. * @param parent Parent of the explosion, 0 is none. * @param mode Defines the explosion behaviour. */ void expl_explodeDamage( double x, double y, double radius, const Damage *dmg, const Pilot *parent, int mode ) { /* Explosion affects ships. */ if (mode & EXPL_MODE_SHIP) pilot_explode( x, y, radius, dmg, parent ); /* Explosion affects missiles and bolts. */ if ((mode & EXPL_MODE_MISSILE) || (mode & EXPL_MODE_BOLT)) weapon_explode( x, y, radius, dmg->type, dmg->damage, parent, mode ); }
/** * @brief Does explosion damage in a radius. * * @param x X position of explosion center. * @param y Y position of explosion center. * @param radius Radius of the explosion. * @param dtype Damage type. * @param damage Damage amount. * @param penetration Damage penetratior [0:1]. * @param parent Parent of the explosion, 0 is none. * @param mode Defines the explosion behaviour. */ void expl_explodeDamage( double x, double y, double radius, DamageType dtype, double damage, double penetration, const Pilot *parent, int mode ) { /* Explosion affects ships. */ if (mode & EXPL_MODE_SHIP) pilot_explode( x, y, radius, dtype, damage, penetration, parent ); /* Explosion affects missiles and bolts. */ if ((mode & EXPL_MODE_MISSILE) && (mode & EXPL_MODE_BOLT)) weapon_explode( x, y, radius, dtype, damage, parent, mode ); /* Explosion affects missiles. */ else if (mode & EXPL_MODE_MISSILE) weapon_explode( x, y, radius, dtype, damage, parent, mode ); /* Explosion affects bolts. */ else if (mode & EXPL_MODE_BOLT) weapon_explode( x, y, radius, dtype, damage, parent, mode ); }