No functional change for now. The next commit will put it to use.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
extern void plane_sweep(struct emp_qelem *, coord, coord);
extern int put_plane_on_land(struct plnstr *, struct lndstr *);
extern int pln_hitchance(struct plnstr *, int, int);
-extern int pln_damage(struct plnstr *, char, int);
+extern int pln_damage(struct plnstr *, char, char *);
extern int pln_identchance(struct plnstr *, int, int);
extern int pln_is_in_orbit(struct plnstr *);
extern void pln_set_tech(struct plnstr *, int);
plp = (struct plist *)qp;
if (changed_plane_aborts(plp))
continue;
- dam += pln_damage(&plp->plane, 'p', 1);
+ dam += pln_damage(&plp->plane, 'p', "");
}
getsect(target->sct_x, target->sct_y, §);
target = §
plp = (struct plist *)qp;
if (changed_plane_aborts(plp))
continue;
- dam += pln_damage(&plp->plane, 'p', 1);
+ dam += pln_damage(&plp->plane, 'p', "");
}
getsect(target->sct_x, target->sct_y, §);
target = §
}
if (pct_chance(hitchance)) {
/* pinbombing is more accurate than normal bombing */
- dam = 2 * pln_damage(&plp->plane, 'p', 1);
+ dam = 2 * pln_damage(&plp->plane, 'p', "");
} else {
pr("splash\n");
/* Bombs that miss have to land somewhere! */
}
if (pct_chance(hitchance)) {
/* pinbombing is more accurate than normal bombing */
- dam = 2 * pln_damage(&plp->plane, 'p', 1);
+ dam = 2 * pln_damage(&plp->plane, 'p', "");
} else {
pr("thud\n");
/* Bombs that miss have to land somewhere! */
pr("%d%% hitchance...", hitchance);
}
if (pct_chance(hitchance)) {
- dam = 2 * pln_damage(&plp->plane, 'p', 1);
+ dam = 2 * pln_damage(&plp->plane, 'p', "");
} else {
pr("thud\n");
/* Bombs that miss have to land somewhere! */
detonate(&nuke, target->sct_x, target->sct_y,
plp->plane.pln_flags & PLN_AIRBURST);
else
- dam += pln_damage(&plp->plane, 's', 1);
+ dam += pln_damage(&plp->plane, 's', "");
}
if (dam <= 0)
return;
if (getnuke(nuk_on_plane(pp), &nuke))
detonate(&nuke, sx, sy, pp->pln_flags & PLN_AIRBURST);
else {
- dam = pln_damage(pp, 's', 1);
+ dam = pln_damage(pp, 's', "");
pr("did %d damage in %s\n", PERCENT_DAMAGE(dam),
xyas(sx, sy, player->cnum));
if (sect.sct_own != 0) {
N_SHP_MISS, N_SHP_SMISS, sublaunch,
target_ship.shp_own)) {
pr("splash\n");
- dam = pln_damage(pp, 'p', 0);
+ dam = pln_damage(pp, 'p', NULL);
collateral_damage(target_ship.shp_x, target_ship.shp_y, dam);
return RET_OK;
}
- dam = pln_damage(pp, 'p', 1);
+ dam = pln_damage(pp, 'p', "");
shipdamage(&target_ship, dam);
if (target_ship.shp_effic < SHIP_MINEFF)
pr("%s sunk!\n", prship(&target_ship));
stopping = 1;
if (msl_hit(&plp->plane, hardtarget, EF_LAND,
N_LND_MISS, N_LND_SMISS, sublaunch, victim)) {
- newdam = pln_damage(&plp->plane, 'p', 1);
+ newdam = pln_damage(&plp->plane, 'p', "");
dam += newdam;
} else {
- newdam = pln_damage(&plp->plane, 'p', 0);
+ newdam = pln_damage(&plp->plane, 'p', NULL);
collateral_damage(newx, newy, newdam);
}
use_up_msl:
if (!msl_hit(&plp->plane, SECT_HARDTARGET, EF_SECTOR,
N_SCT_MISS, N_SCT_SMISS, sublaunch, victim))
CANT_REACH();
- dam2 = pln_damage(&plp->plane, 'p', 1);
+ dam2 = pln_damage(&plp->plane, 'p', "");
air_dam += dam2;
use_up_msl:
plp->plane.pln_effic = 0;
else if (hardtarget != SECT_HARDTARGET)
wu(0, pp->pln_own, "\t\t%d%% hitchance...", hitchance);
if (pct_chance(hitchance)) {
- newdam = pln_damage(&plp->plane, 'p', 1);
+ newdam = pln_damage(&plp->plane, 'p', "");
wu(0, pp->pln_own,
"\t\thit %s %s for %d damage\n",
cname(victim), s, newdam);
struct sctstr sect;
int dam;
- dam = pln_damage(pp, 'p', 0) / 2;
+ dam = pln_damage(pp, 'p', NULL) / 2;
if (pp->pln_ship >= 0) {
shipdamage(&ship, dam);
putship(ship.shp_uid, &ship);
* Dave Pare, 1986
* Ken Stevens, 1995
* Steve McClure, 1998-2000
- * Markus Armbruster, 2004-2012
+ * Markus Armbruster, 2004-2015
*/
#include <config.h>
}
int
-pln_damage(struct plnstr *pp, char type, int noisy)
+pln_damage(struct plnstr *pp, char type, char *noisy)
{
struct plchrstr *pcp = plchr + pp->pln_type;
int load, i, hitroll, aim, len;
aim = 100 - aim;
}
- len = 0;
+ len = snprintf(buf, sizeof(buf), "%s", noisy);
while (i--) {
+ if (noisy) {
+ if (len > 75) {
+ mpr(pp->pln_own, "%s\n", buf);
+ len = 0;
+ }
+ }
dam += roll(6);
hitroll = roll(100);
if (hitroll >= 90) {
len += sprintf(buf + len, "blam");
}
if (noisy) {
- if (len > 75) {
- mpr(pp->pln_own, "%s\n", buf);
- len = 0;
- }
if (i)
len += sprintf(buf + len, "-");
}
if (msl_hit(&plp->plane,
shp_hardtarget(&mvs->unit.ship), EF_SHIP,
N_SHP_MISS, N_SHP_SMISS, sublaunch, victim)) {
- dam = pln_damage(&plp->plane, 'p', 1);
+ dam = pln_damage(&plp->plane, 'p', "");
mpr(victim,
"missile interdiction mission does %d damage to %s!\n",
dam, prship(&mvs->unit.ship));
shp_damage_one(mvs, dam);
} else {
- dam = pln_damage(&plp->plane, 'p', 0);
+ dam = pln_damage(&plp->plane, 'p', NULL);
collateral_damage(newx, newy, dam);
}
mvs = most_valuable_ship(list, newx, newy);