subs: Clean up misuse of wu() around mission bomb damage
Don't use multiple calls of wu() to print a single line, because that
creates a separate bulletin for each part. The read command normally
merges the bulletins, but if the bulletins are more than five seconds
apart (clock jumped somehow), we get a bulletin header in the middle
of a line. Unlikely to happen, but it also messes up pln_damage()'s
line wrapping (see commit e002bf2
). Clean it up.
The wu() misuse was introduced in Empire 2.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
820d755e59
commit
4401cca0af
1 changed files with 13 additions and 7 deletions
|
@ -29,7 +29,7 @@
|
||||||
* Known contributors to this file:
|
* Known contributors to this file:
|
||||||
* Ken Stevens, 1995
|
* Ken Stevens, 1995
|
||||||
* Steve McClure, 1996-2000
|
* Steve McClure, 1996-2000
|
||||||
* Markus Armbruster, 2003-2012
|
* Markus Armbruster, 2003-2015
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
@ -1027,6 +1027,7 @@ air_damage(struct emp_qelem *bombers, coord x, coord y, int mission,
|
||||||
struct plist *plp;
|
struct plist *plp;
|
||||||
struct plnstr *pp;
|
struct plnstr *pp;
|
||||||
int newdam, dam = 0;
|
int newdam, dam = 0;
|
||||||
|
char buf[32];
|
||||||
int hitchance;
|
int hitchance;
|
||||||
|
|
||||||
for (qp = bombers->q_forw; qp != bombers; qp = qp->q_forw) {
|
for (qp = bombers->q_forw; qp != bombers; qp = qp->q_forw) {
|
||||||
|
@ -1060,20 +1061,25 @@ air_damage(struct emp_qelem *bombers, coord x, coord y, int mission,
|
||||||
"\t%s pinbombing %s %s in %s\n",
|
"\t%s pinbombing %s %s in %s\n",
|
||||||
prplane(pp), cname(victim), s, xyas(x, y, pp->pln_own));
|
prplane(pp), cname(victim), s, xyas(x, y, pp->pln_own));
|
||||||
}
|
}
|
||||||
hitchance = pln_hitchance(pp, hardtarget, EF_SHIP);
|
|
||||||
|
buf[0] = 0;
|
||||||
if (nuk_on_plane(&plp->plane) >= 0)
|
if (nuk_on_plane(&plp->plane) >= 0)
|
||||||
hitchance = 100;
|
hitchance = 100;
|
||||||
else if (hardtarget != SECT_HARDTARGET)
|
else {
|
||||||
wu(0, pp->pln_own, "\t\t%d%% hitchance...", hitchance);
|
hitchance = pln_hitchance(pp, hardtarget, EF_SHIP);
|
||||||
|
if (hardtarget != SECT_HARDTARGET)
|
||||||
|
snprintf(buf, sizeof(buf), "\t\t%d%% hitchance...",
|
||||||
|
hitchance);
|
||||||
|
}
|
||||||
if (pct_chance(hitchance)) {
|
if (pct_chance(hitchance)) {
|
||||||
newdam = pln_damage(&plp->plane, 'p', "");
|
newdam = pln_damage(&plp->plane, 'p', buf);
|
||||||
wu(0, pp->pln_own,
|
wu(0, pp->pln_own,
|
||||||
"\t\thit %s %s for %d damage\n",
|
"\t\thit %s %s for %d damage\n",
|
||||||
cname(victim), s, newdam);
|
cname(victim), s, newdam);
|
||||||
dam += newdam;
|
dam += newdam;
|
||||||
} else {
|
} else {
|
||||||
newdam = pln_damage(&plp->plane, 'p', 0);
|
newdam = pln_damage(&plp->plane, 'p', NULL);
|
||||||
wu(0, pp->pln_own, "missed\n");
|
wu(0, pp->pln_own, "%smissed\n", buf);
|
||||||
if (mission == MI_SINTERDICT) {
|
if (mission == MI_SINTERDICT) {
|
||||||
mpr(victim,
|
mpr(victim,
|
||||||
"RUMBLE... your sub in %s hears a depth-charge explode nearby\n",
|
"RUMBLE... your sub in %s hears a depth-charge explode nearby\n",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue