]> git.pond.sub.org Git - empserver/commitdiff
update: Reorder ship, plane, land repair code for consistency
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 5 Jun 2016 13:00:42 +0000 (15:00 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 6 Aug 2017 17:59:58 +0000 (19:59 +0200)
No functional change.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
src/lib/update/land.c
src/lib/update/plane.c
src/lib/update/ship.c

index 9c25137fbed6f6af73335c1d2f3e8382ba186504..0d9bd9b18bc08f41998699dcd64f965503eb312d 100644 (file)
@@ -194,28 +194,27 @@ upd_land(struct lndstr *lp, int etus,
 static void
 landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus)
 {
+    struct lchrstr *lp = &lchr[(int)land->lnd_type];
     int delta;
     struct sctstr *sp;
-    struct lchrstr *lp;
     int build;
     int avail;
     int mult;
 
-    lp = &lchr[(int)land->lnd_type];
+    if (land->lnd_effic == 100)
+       return;
+
     sp = getsectp(land->lnd_x, land->lnd_y);
     if (sp->sct_off)
        return;
-    mult = 1;
-    if (np->nat_level[NAT_TLEV] < land->lnd_tech * 0.85)
-       mult = 2;
 
-    if (land->lnd_effic == 100) {
-       /* land is ok; no repairs needed */
-       return;
-    }
     if (relations_with(sp->sct_own, land->lnd_own) != ALLIED)
        return;
 
+    mult = 1;
+    if (np->nat_level[NAT_TLEV] < land->lnd_tech * 0.85)
+       mult = 2;
+
     if (!player->simulation)
        avail = sp->sct_avail * 100;
     else
index 74ad33e2cd357aded848e5a9ed7281ac223c154a..713676df5d7f8f47783a581746b5f197e13ce793 100644 (file)
@@ -123,15 +123,22 @@ upd_plane(struct plnstr *pp, int etus,
 static void
 planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus)
 {
+    struct plchrstr *pcp = &plchr[(int)pp->pln_type];
     int build;
     struct shpstr *carrier;
-    struct plchrstr *pcp = &plchr[(int)pp->pln_type];
-    struct sctstr *sp = getsectp(pp->pln_x, pp->pln_y);
+    struct sctstr *sp;
     int delta;
     int mult;
     int avail;
     int used;
 
+    if (pp->pln_effic == 100)
+       return;
+
+    sp = getsectp(pp->pln_x, pp->pln_y);
+    if (sp->sct_off)
+       return;
+
     carrier = NULL;
     if (pp->pln_ship >= 0) {
        if (pp->pln_effic >= 80)
@@ -148,15 +155,10 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus)
            return;
     }
 
-    if (sp->sct_off)
-       return;
     mult = 1;
     if (np->nat_level[NAT_TLEV] < pp->pln_tech * 0.85)
        mult = 2;
 
-    if (pp->pln_effic == 100)
-       return;
-
     if (!player->simulation)
        avail = sp->sct_avail * 100;
     else
index 0768deccb4ad6477309ae7e8eaab02c89a21cf00..132d0161a90190f579954683abd5d9eb3796e1e7 100644 (file)
@@ -241,21 +241,29 @@ upd_ship(struct shpstr *sp, int etus,
 static void
 shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus)
 {
+    struct mchrstr *mp = &mchr[(int)ship->shp_type];
     int delta;
     struct sctstr *sp;
-    struct mchrstr *mp;
     int build;
     int wf;
     int avail;
     int mult;
 
-    mp = &mchr[(int)ship->shp_type];
+    if (ship->shp_effic == 100)
+       return;
+
     sp = getsectp(ship->shp_x, ship->shp_y);
+    if ((sp->sct_off) && (sp->sct_own == ship->shp_own))
+       return;
 
     if (sp->sct_own != 0
        && relations_with(sp->sct_own, ship->shp_own) < FRIENDLY)
        return;
 
+    mult = 1;
+    if (np->nat_level[NAT_TLEV] < ship->shp_tech * 0.85)
+       mult = 2;
+
     /* only military can work on a military boat */
     if (mp->m_glim != 0)
        wf = etus * ship->shp_item[I_MILIT] / 2;
@@ -265,24 +273,10 @@ shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus)
     if (sp->sct_type != SCT_HARBR) {
        wf /= 3;
        avail = wf;
-    } else {
-       if (!player->simulation)
-           avail = wf + sp->sct_avail * 100;
-       else
-           avail = wf + bp_get_avail(bp, sp) * 100;
-    }
-
-    if ((sp->sct_off) && (sp->sct_own == ship->shp_own))
-       return;
-
-    mult = 1;
-    if (np->nat_level[NAT_TLEV] < ship->shp_tech * 0.85)
-       mult = 2;
-
-    if (ship->shp_effic == 100) {
-       /* ship is ok; no repairs needed */
-       return;
-    }
+    } else if (!player->simulation)
+       avail = wf + sp->sct_avail * 100;
+    else
+       avail = wf + bp_get_avail(bp, sp) * 100;
 
     delta = roundavg((double)avail / mp->m_bwork);
     if (delta <= 0)