]> git.pond.sub.org Git - empserver/commitdiff
Rewrite show_mission()'s conditional for clarity
authorMarkus Armbruster <armbru@pond.sub.org>
Tue, 3 Jun 2008 05:27:32 +0000 (07:27 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Fri, 6 Jun 2008 19:31:55 +0000 (21:31 +0200)
No functional change, except oops on bad mission.

src/lib/subs/mission.c

index 26f21a24929238b5ff7c721e70da437402764985..1b69b06dfdbda46d2c807cb6dbc3730b0c3bd4be 100644 (file)
@@ -772,6 +772,7 @@ show_mission(int type, struct nstr_item *np)
     int first = 1, radius;
     union empobj_storage item;
     struct empobj *gp;
+    struct sctstr sect;
 
     while (nxtitem(np, &item)) {
        gp = (struct empobj *)&item;
@@ -784,35 +785,39 @@ show_mission(int type, struct nstr_item *np)
        }
        pr("%-25s", obj_nameof(gp));
        prxy(" %3d,%-3d", gp->x, gp->y, player->cnum);
-       if (gp->mission == MI_INTERDICT || gp->mission == MI_SUPPORT ||
-           gp->mission == MI_OSUPPORT ||
-           gp->mission == MI_DSUPPORT || gp->mission == MI_AIR_DEFENSE) {
-           radius = 999;
+       switch (gp->mission) {
+       case MI_INTERDICT:
+       case MI_SUPPORT:
+       case MI_AIR_DEFENSE:
+       case MI_DSUPPORT:
+       case MI_OSUPPORT:
+           radius = gp->radius;
            oprange(gp, &radius);
            prxy(" %3d,%-3d", gp->opx, gp->opy, player->cnum);
-           if (radius < gp->radius)
-               pr("  %4d", radius);
-           else
-               pr("  %4d", gp->radius);
-       } else if (gp->mission == MI_RESERVE) {
-           struct sctstr sect;
-           int plus = 2;
-
-           getsect(gp->x, gp->y, &sect);
-           if ((sect.sct_type == SCT_HEADQ) && (sect.sct_effic >= 60))
-               plus++;
-
-           if (item.land.lnd_rad_max == 0)
-               plus = 0;
-           else
-               plus += item.land.lnd_rad_max;
+           pr("  %4d", radius);
+           break;
+       case MI_RESERVE:
+           radius = item.land.lnd_rad_max;
+
+           if (radius) {
+               radius += 2;
+               getsect(gp->x, gp->y, &sect);
+               if ((sect.sct_type == SCT_HEADQ) && (sect.sct_effic >= 60))
+                   radius++;
+           }
            prxy(" %3d,%-3d", gp->x, gp->y, player->cnum);
-           pr("  %4d", plus);
-       } else if (gp->mission == MI_ESCORT) {
+           pr("  %4d", radius);
+           break;
+       case MI_ESCORT:
            pr("        ");
            pr("  %4d", item.plane.pln_range / 2);
-       } else
+           break;
+       default:
+           CANT_REACH();
+           /* fall through */
+       case MI_NONE:
            pr("              ");
+       }
        if (gp->mission)
            pr(" is on %s mission\n", mission_name(gp->mission));
        else