示例#1
0
/**
 * @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 );
}
示例#2
0
文件: explosion.c 项目: AvanWolf/naev
/**
 * @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 );
}