]> git.pond.sub.org Git - empserver/commitdiff
(BestAirPath): Some callers assumed non-null return value must be the
authorMarkus Armbruster <armbru@pond.sub.org>
Wed, 5 Apr 2006 09:13:03 +0000 (09:13 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Wed, 5 Apr 2006 09:13:03 +0000 (09:13 +0000)
first argument.  Fix them.  Simplify bestownedpath().

src/lib/common/bestpath.c
src/lib/subs/mission.c

index 2356a1bb421d467c7b0e6faad823a38ab1dbf91e..be1591022c0b0e9a64739e4af66d4c473a9dbb44 100644 (file)
@@ -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    */
 }
 
index 8c71d9fd4c444549057775a77dea946811dd7a09..51835d418ea7b60a07948d4a5707bb28ee8083dc 100644 (file)
@@ -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)) {