From 9c27a771b3dfa794ca37d45b4e4e75df34d8437d Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Wed, 5 Apr 2006 09:13:03 +0000 Subject: [PATCH] (BestAirPath): Some callers assumed non-null return value must be the first argument. Fix them. Simplify bestownedpath(). --- src/lib/common/bestpath.c | 16 ++++------------ src/lib/subs/mission.c | 17 +++++++++++------ 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/lib/common/bestpath.c b/src/lib/common/bestpath.c index 2356a1bb..be159102 100644 --- a/src/lib/common/bestpath.c +++ b/src/lib/common/bestpath.c @@ -145,7 +145,6 @@ bestownedpath(s_char *bpath, if (!mapindex) return NULL; - bpath[0] = 0; if (0 != (restr2 = (*terrain == 'R'))) terrain++; @@ -154,11 +153,8 @@ bestownedpath(s_char *bpath, ex = XNORM(ex); ey = YNORM(ey); - if (x == ex && y == ey) { - bpath[0] = 'h'; - bpath[1] = 0; - return bpath; - } + if (x == ex && y == ey) + return "h"; if (!valid(x, y) || !valid(ex, ey)) return NULL; @@ -180,11 +176,8 @@ bestownedpath(s_char *bpath, maxy = y + 1; do { - if (++routelen == MAXROUTE) { - bpath[0] = '?'; - bpath[1] = 0; - return bpath; - } + if (++routelen == MAXROUTE) + return "?"; markedsectors = 0; for (scanx = minx; scanx <= maxx; scanx++) { x = XNORM(scanx); @@ -229,7 +222,6 @@ bestownedpath(s_char *bpath, maxx += 2; } while (markedsectors); - bpath[0] = 0; return NULL; /* no route possible */ } diff --git a/src/lib/subs/mission.c b/src/lib/subs/mission.c index 8c71d9fd..51835d41 100644 --- a/src/lib/subs/mission.c +++ b/src/lib/subs/mission.c @@ -712,7 +712,8 @@ perform_mission(coord x, coord y, natid victim, struct emp_qelem *list, for (qp = airp.q_forw; qp != (&airp); qp = qp->q_forw) { struct airport *air; - s_char pp[512]; + char buf[512]; + char *pp; air = (struct airport *)qp; md = mapdist(x, y, air->x, air->y); @@ -734,14 +735,15 @@ perform_mission(coord x, coord y, natid victim, struct emp_qelem *list, mission_flags = mission_pln_arm(&b, air->x, air->y, 2 * md, 'p', 0, 0, mission_flags, &tech); - if (QEMPTY(&b)) { + if (QEMPTY(&b)) continue; - } mission_flags = mission_pln_arm(&e, air->x, air->y, 2 * md, 'p', 0, P_F | P_ESC, mission_flags, &tech); - BestAirPath(pp, air->x, air->y, x, y); + pp = BestAirPath(buf, air->x, air->y, x, y); + if (CANT_HAPPEN(!pp)) + continue; wu(0, plane_owner, "Flying %s mission from %s\n", mission_name(mission), xyas(air->x, air->y, plane_owner)); if (air->own && (air->own != plane_owner)) { @@ -1484,7 +1486,8 @@ air_defense(coord x, coord y, natid victim, struct emp_qelem *bomb_list, struct genlist *glp; struct genitem *gp; struct genlist mi[MAXNOC]; - s_char path[512]; + char buf[512]; + char *path; int count; int tcount; @@ -1618,7 +1621,9 @@ air_defense(coord x, coord y, natid victim, struct emp_qelem *bomb_list, continue; } - BestAirPath(path, air->x, air->y, x, y); + path = BestAirPath(buf, air->x, air->y, x, y); + if (CANT_HAPPEN(!path)) + continue; wu(0, cn, "Flying %s mission from %s\n", mission_name(MI_AIR_DEFENSE), xyas(air->x, air->y, cn)); if (air->own && (air->own != cn)) {