]> git.pond.sub.org Git - empserver/commitdiff
update: Fix excessively fast contact aging
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 22 Oct 2016 15:24:14 +0000 (17:24 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 6 Aug 2017 18:09:20 +0000 (20:09 +0200)
When option LOSE_CONTACT is enabled, contact is lost after a few
updates.  The remaining number of updates is to be decremented by one
each update.  However, it's actually decremented every time an active
nation is updated.  This makes countries lose contact much too fast,
typically every update.  Broken in commit ac25058, v4.3.0.

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

index 73a2c4a12fea16b57306ca49f6598ccf0c40d7e0..dcec39ee26cc0ba3aff3ccf3e733cc54de3c296e 100644 (file)
@@ -134,8 +134,6 @@ prod_nat(int etu)
     double newvalue;
     struct budg_item *bm;
     natid n;
-    int cn;
-    struct natstr *cnp;
 
     for (n = 0; NULL != (np = getnatp(n)); n++) {
        grant_btus(np, game_reset_tick(&np->nat_access));
@@ -182,12 +180,14 @@ prod_nat(int etu)
        wu(0, n, "total pop was %d, yielding %4.2f hap, %4.2f edu\n",
           pop - 1, hap, edu);
     }
+
     if (ally_factor > 0.0)
        share_incr(res, tech);
     else {
        memset(res, 0, sizeof(res));
        memset(tech, 0, sizeof(tech));
     }
+
     for (n = 0; NULL != (np = getnatp(n)); n++) {
        if (np->nat_stat < STAT_ACTIVE)
            continue;
@@ -221,13 +221,11 @@ prod_nat(int etu)
        np->nat_money = roundavg(nat_budget[n].money);
        wu(0, n, "money delta was $%d for this update\n",
           np->nat_money - nat_budget[n].start_money);
+    }
 
-       if (opt_LOSE_CONTACT) {
-           for (cn = 1; cn < MAXNOC; cn++) {
-               if ((cnp = getnatp(cn)) != NULL)
-                   agecontact(cnp);
-           }
-       }
+    if (opt_LOSE_CONTACT) {
+       for (n = 0; NULL != (np = getnatp(n)); n++)
+           agecontact(np);
     }
 }