]> git.pond.sub.org Git - empserver/commitdiff
Simplify how plane cargo is tracked
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 3 Oct 2009 20:25:50 +0000 (16:25 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 12 Dec 2009 15:28:52 +0000 (16:28 +0100)
Fold struct plist members bombs (used for bombing runs) and misc (used
for everything else) into a single member load.

include/plane.h
src/lib/commands/bomb.c
src/lib/commands/para.c
src/lib/subs/aircombat.c
src/lib/subs/mission.c
src/lib/subs/mslsub.c
src/lib/subs/plnsub.c

index 8e37d0d2b784840ee25c3672b0127ccc4d1c35b1..63fabceb817580db3e73c2ff8b056ea0c02846d6 100644 (file)
@@ -124,8 +124,7 @@ struct plchrstr {
 
 struct plist {
     struct emp_qelem queue;    /* list of planes */
-    int bombs;                 /* bombs carried for bombing mission */
-    int misc;                  /* amount of random item being transported */
+    int load;                  /* number of bombs or items carried */
     struct plchrstr *pcp;      /* pointer to desc of plane */
     struct plnstr plane;       /* struct plane */
 };
index f3a2c44f476e9e02a66b14e12cc328928d31f84a..c5021232c7ecb7697e85daa68bb0b5ba499f919e 100644 (file)
@@ -344,7 +344,7 @@ eff_bomb(struct emp_qelem *list, struct sctstr *target)
        plp = (struct plist *)qp;
        if (changed_plane_aborts(plp))
            continue;
-       if (plp->bombs || nuk_on_plane(&plp->plane) >= 0)
+       if (plp->load || nuk_on_plane(&plp->plane) >= 0)
            dam += pln_damage(&plp->plane, target->sct_x, target->sct_y,
                              'p', &nukedam, 1);
     }
@@ -422,7 +422,7 @@ comm_bomb(struct emp_qelem *list, struct sctstr *target)
        plp = (struct plist *)qp;
        if (changed_plane_aborts(plp))
            continue;
-       if (plp->bombs || nuk_on_plane(&plp->plane) >= 0)
+       if (plp->load || nuk_on_plane(&plp->plane) >= 0)
            dam += pln_damage(&plp->plane, target->sct_x, target->sct_y,
                              'p', &nukedam, 1);
     }
@@ -484,7 +484,7 @@ ship_bomb(struct emp_qelem *list, struct sctstr *target)
            continue;
        }
        (void)sprintf(prompt, "%s, %d bombs.  Target ('~' to skip)? ",
-                     prplane(&plp->plane), plp->bombs);
+                     prplane(&plp->plane), plp->load);
        shipno = -1;
        while (shipno < 0) {
            if (!(q = getstring(prompt, buf)))
@@ -605,7 +605,7 @@ plane_bomb(struct emp_qelem *list, struct sctstr *target)
            continue;
        }
        (void)sprintf(prompt, "%s, %d bombs.  Target ('~' to skip)? ",
-                     prplane(&plp->plane), plp->bombs);
+                     prplane(&plp->plane), plp->load);
        planeno = -1;
        while (planeno < 0) {
            if (!(q = getstring(prompt, buf)))
@@ -709,7 +709,7 @@ land_bomb(struct emp_qelem *list, struct sctstr *target)
            continue;
        }
        (void)sprintf(prompt, "%s, %d bombs.  Target ('~' to skip)? ",
-                     prplane(&plp->plane), plp->bombs);
+                     prplane(&plp->plane), plp->load);
        unitno = -1;
        while (unitno < 0) {
            if (!(q = getstring(prompt, buf)))
@@ -796,7 +796,7 @@ strat_bomb(struct emp_qelem *list, struct sctstr *target)
 
     for (qp = list->q_forw; qp != list; qp = qp->q_forw) {
        plp = (struct plist *)qp;
-       if (plp->bombs || nuk_on_plane(&plp->plane) >= 0)
+       if (plp->load || nuk_on_plane(&plp->plane) >= 0)
            dam += pln_damage(&plp->plane, target->sct_x, target->sct_y,
                              's', &nukedam, 1);
     }
index 33faa339085a87f541ea7d1579990af4384b0bc6..3fd38f37eb9ac30e6dbdf1124eff86fb1ea7507c 100644 (file)
@@ -144,7 +144,7 @@ paradrop(struct emp_qelem *list, coord x, coord y)
     att_combat_init(off, EF_PLANE);
     for (qp = list->q_forw; qp != list; qp = qp->q_forw) {
        plp = (struct plist *)qp;
-       off->troops += plp->misc;
+       off->troops += plp->load;
     }
     off->mil = off->troops;
     if (att_abort(A_PARA, off, def)) {
index 434546842a7d9f327f715321ae9f88802c2841cc..56b73889877cb40d1cb1f99ceadce20fe0934a83 100644 (file)
@@ -492,9 +492,9 @@ ac_dog(struct plist *ap, struct plist *dp)
     def = pln_def(&dp->plane) * dp->plane.pln_effic / 100;
     def = MAX(def, dp->pcp->pl_def / 2);
 
-    if ((ap->pcp->pl_flags & P_F) && ap->bombs + ap->misc != 0)
+    if ((ap->pcp->pl_flags & P_F) && ap->load != 0)
        att -= 2;
-    if ((dp->pcp->pl_flags & P_F) && dp->bombs + ap->misc != 0)
+    if ((dp->pcp->pl_flags & P_F) && dp->load != 0)
        def -= 2;
     att += ap->pcp->pl_stealth / 25.0;
     def += dp->pcp->pl_stealth / 25.0;
@@ -837,8 +837,7 @@ getilists(struct emp_qelem *list, unsigned char *rel, natid intruder)
            continue;
        /* got one! */
        ip = malloc(sizeof(*ip));
-       ip->bombs = 0;
-       ip->misc = 0;
+       ip->load = 0;
        ip->pcp = &plchr[(int)plane.pln_type];
        ip->plane = plane;
        emp_insque(&ip->queue, &list[plane.pln_own]);
index f28ed6fcacfbc6fbb1f8771f50518f876dc12229..a256d82765220fe5c75ee98652a17942d82e6d99 100644 (file)
@@ -956,10 +956,7 @@ mission_pln_equip(struct plist *plp, struct ichrstr *ip, char mission)
        if (item[itype] < needed)
            return -1;
        item[itype] -= needed;
-       if (itype == I_SHELL && (mission == 's' || mission == 'p'))
-           plp->bombs = needed;
-       else
-           plp->misc = needed;
+       plp->load = needed;
     }
 
     if (pp->pln_ship >= 0)
@@ -1048,7 +1045,7 @@ air_damage(struct emp_qelem *bombers, coord x, coord y, int mission,
        if ((mission == MI_SINTERDICT) && !(plp->pcp->pl_flags & P_A))
            continue;
 
-       if (!plp->bombs)
+       if (!plp->load)
            continue;
 
        newdam = 0;
index b982d12e11e56b122e8d15d1970d1677308ad445..872d72cae721dee03aa2b05c08c580eab78561cd 100644 (file)
@@ -210,8 +210,7 @@ msl_sel(struct emp_qelem *list, coord x, coord y, natid victim,
            continue;
        /* got a valid interceptor */
        irv = malloc(sizeof(*irv));
-       irv->bombs = 0;
-       irv->misc = 0;
+       irv->load = 0;
        irv->pcp = &plchr[(int)plane.pln_type];
        irv->plane = plane;
        emp_insque(&irv->queue, list);
index 71e09f37c066d57f24776e9b7448c598dfa643aa..2149375c5cee53a2f0fda4b03d426763b97beb77 100644 (file)
@@ -275,7 +275,7 @@ pln_dropoff(struct emp_qelem *list, struct ichrstr *ip, coord tx, coord ty,
     amt = 0;
     for (qp = list->q_forw; qp != list; qp = qp->q_forw) {
        plp = (struct plist *)qp;
-       amt += plp->misc;
+       amt += plp->load;
     }
     if (cno < 0) {
        getsect(tx, ty, &sect);
@@ -340,7 +340,7 @@ pln_mine(struct emp_qelem *list, coord tx, coord ty)
     amt = 0;
     for (qp = list->q_forw; qp != list; qp = qp->q_forw) {
        plp = (struct plist *)qp;
-       amt += plp->misc;
+       amt += plp->load;
 
     }
     if (amt > 0) {
@@ -580,8 +580,7 @@ pln_sel(struct nstr_item *ni, struct emp_qelem *list, struct sctstr *ap,
        plane.pln_mission = 0;
        putplane(plane.pln_uid, &plane);
        plp = malloc(sizeof(struct plist));
-       plp->misc = 0;
-       plp->bombs = 0;
+       plp->load = 0;
        plp->pcp = pcp;
        plp->plane = plane;
        emp_insque(&plp->queue, list);
@@ -716,10 +715,7 @@ pln_equip(struct plist *plp, struct ichrstr *ip, char mission)
            return -1;
        }
        item[itype] -= needed;
-       if (itype == I_SHELL && (mission == 's' || mission == 'p'))
-           plp->bombs = needed;
-       else
-           plp->misc = needed;
+       plp->load = needed;
     }
 
     if (pp->pln_ship >= 0) {