]> git.pond.sub.org Git - empserver/commitdiff
budget: Track ship, plane, land unit expenses in nat_budget[]
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 18 Jun 2016 15:00:16 +0000 (17:00 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 6 Aug 2017 18:00:00 +0000 (20:00 +0200)
Extend struct budget member bm[] to cover ships, planes and land
units, too.

Plane maintenance changes because pilot pay is now consistently
rounded down.  Before it was rounded down for broke countries, else
up.  The stock game's pilots earn a little less than $25, and solvent
countries save $1 per plane.  The rounding doesn't make much sense
either way.  To be be addressed in a later commit.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
include/update.h
src/lib/commands/budg.c
src/lib/update/land.c
src/lib/update/main.c
src/lib/update/plane.c
src/lib/update/ship.c
tests/smoke/final.xdump
tests/smoke/journal.log
tests/update/final.xdump
tests/update/journal.log

index 8a2c2a4adc94cefd35b57f01569d880c35e7d735..3a20f4b09351c7a6808c5478a722dae27867c96f 100644 (file)
 #define EXPORT 1
 
 enum {
+    BUDG_SHP_BUILD,
+    BUDG_SHP_MAINT,
+    BUDG_PLN_BUILD,
+    BUDG_PLN_MAINT,
+    BUDG_LND_BUILD,
+    BUDG_LND_MAINT,
     BUDG_SCT_BUILD,
     BUDG_SCT_MAINT,
     BUDG_BLD_MAX = BUDG_SCT_MAINT
@@ -92,7 +98,7 @@ extern int feed_people(short *, int);
 extern double food_needed(short *, int);
 extern int famine_victims(short *, int);
 /* land.c */
-extern int prod_land(int, int, struct bp *, int);
+extern void prod_land(int, int, struct bp *, int);
 /* main.c */
 /* in server.h */
 /* material.c */
@@ -116,7 +122,7 @@ extern void prod_nat(int);
 extern void do_plague(struct sctstr *, int);
 extern int plague_people(struct natstr *, short *, int *, int *, int);
 /* plane.c */
-extern int prod_plane(int, int, struct bp *, int);
+extern void prod_plane(int, int, struct bp *, int);
 /* populace.c */
 extern void populace(struct sctstr *, int);
 extern int total_work(int, int, int, int, int, int);
@@ -143,6 +149,6 @@ extern void spread_fallout(struct sctstr *, int);
 extern void decay_fallout(struct sctstr *, int);
 extern void produce_sect(struct natstr *, int, struct bp *);
 /* ship.c */
-extern int prod_ship(int, int, struct bp *, int);
+extern void prod_ship(int, int, struct bp *, int);
 
 #endif
index ddb1bd1bf720ca437cc554f1fcb18edf0a04a01d..bd993392ec6f3fd6e32b8cb56cf70ad79aed9c63 100644 (file)
 #include "update.h"
 
 static struct budget *calc_all(int *taxes, int *Ncivs,
-                    int *Nuws, int *bars, int *Nbars,
-                    int *ships, int *sbuild, int *nsbuild, int *smaint,
-                    int *units, int *lbuild, int *nlbuild, int *lmaint,
-                    int *planes, int *pbuild, int *npbuild, int *pmaint);
+                              int *Nuws, int *bars, int *Nbars);
 static char *dotsprintf(char *buf, char *format, int data);
 
 int
@@ -54,9 +51,6 @@ budg(void)
 {
     int i;
     int taxes, Ncivs, Nuws, bars, Nbars;
-    int ships, sbuild, nsbuild, smaint;
-    int units, lbuild, nlbuild, lmaint;
-    int planes, pbuild, npbuild, pmaint;
     struct budget *budget;
     int income, expenses;
     struct natstr *np;
@@ -66,10 +60,7 @@ budg(void)
     np = getnatp(player->cnum);
 
     player->simulation = 1;
-    budget = calc_all(&taxes, &Ncivs, &Nuws, &bars, &Nbars,
-                     &ships, &sbuild, &nsbuild, &smaint,
-                     &units, &lbuild, &nlbuild, &lmaint,
-                     &planes, &pbuild, &npbuild, &pmaint);
+    budget = calc_all(&taxes, &Ncivs, &Nuws, &bars, &Nbars);
     player->simulation = 0;
 
     income = taxes + bars;
@@ -90,39 +81,57 @@ budg(void)
        expenses -= budget->prod[i].money;
     }
 
-    if (sbuild) {
-       sprintf(buf, "%d ship%s", nsbuild, splur(nsbuild));
-       pr("Ship building\t\t\t%-16s\t\t%8d\n", buf, -sbuild);
-       expenses += -sbuild;
+    if (budget->bm[BUDG_SHP_BUILD].money) {
+       snprintf(buf, sizeof(buf), "%d ship%s",
+                budget->bm[BUDG_SHP_BUILD].count,
+                splur(budget->bm[BUDG_SHP_BUILD].count));
+       pr("Ship building\t\t\t%-16s\t\t%8d\n",
+          buf, -budget->bm[BUDG_SHP_BUILD].money);
+       expenses -= budget->bm[BUDG_SHP_BUILD].money;
     }
 
-    if (smaint) {
-       sprintf(buf, "%d ship%s", ships, splur(ships));
-       pr("Ship maintenance\t\t%-16s\t\t%8d\n", buf, -smaint);
-       expenses += -smaint;
+    if (budget->bm[BUDG_SHP_MAINT].money) {
+       snprintf(buf, sizeof(buf), "%d ship%s",
+                budget->bm[BUDG_SHP_MAINT].count,
+                splur(budget->bm[BUDG_SHP_MAINT].count));
+       pr("Ship maintenance\t\t%-16s\t\t%8d\n",
+          buf, -budget->bm[BUDG_SHP_MAINT].money);
+       expenses -= budget->bm[BUDG_SHP_MAINT].money;
     }
 
-    if (pbuild) {
-       sprintf(buf, "%d plane%s", npbuild, splur(npbuild));
-       pr("Plane building\t\t\t%-16s\t\t%8d\n", buf, -pbuild);
-       expenses += -pbuild;
+    if (budget->bm[BUDG_PLN_BUILD].money) {
+       snprintf(buf, sizeof(buf), "%d plane%s",
+                budget->bm[BUDG_PLN_BUILD].count,
+                splur(budget->bm[BUDG_PLN_BUILD].count));
+       pr("Plane building\t\t\t%-16s\t\t%8d\n",
+          buf, -budget->bm[BUDG_PLN_BUILD].money);
+       expenses -= budget->bm[BUDG_PLN_BUILD].money;
     }
 
-    if (pmaint) {
-       sprintf(buf, "%d plane%s", planes, splur(planes));
-       pr("Plane maintenance\t\t%-16s\t\t%8d\n", buf, -pmaint);
-       expenses += -pmaint;
+    if (budget->bm[BUDG_PLN_MAINT].money) {
+       snprintf(buf, sizeof(buf), "%d plane%s",
+                budget->bm[BUDG_PLN_MAINT].count,
+                splur(budget->bm[BUDG_PLN_MAINT].count));
+       pr("Plane maintenance\t\t%-16s\t\t%8d\n",
+          buf, -budget->bm[BUDG_PLN_MAINT].money);
+       expenses -= budget->bm[BUDG_PLN_MAINT].money;
     }
-    if (lbuild) {
-       sprintf(buf, "%d unit%s", nlbuild, splur(nlbuild));
-       pr("Unit building\t\t\t%-16s\t\t%8d\n", buf, -lbuild);
-       expenses += -lbuild;
+    if (budget->bm[BUDG_LND_BUILD].money) {
+       snprintf(buf, sizeof(buf), "%d unit%s",
+                budget->bm[BUDG_LND_BUILD].count,
+                splur(budget->bm[BUDG_LND_BUILD].count));
+       pr("Unit building\t\t\t%-16s\t\t%8d\n",
+          buf, -budget->bm[BUDG_LND_BUILD].money);
+       expenses -= budget->bm[BUDG_LND_BUILD].money;
     }
 
-    if (lmaint) {
-       sprintf(buf, "%d unit%s", units, splur(units));
-       pr("Unit maintenance\t\t%-16s\t\t%8d\n", buf, -lmaint);
-       expenses += -lmaint;
+    if (budget->bm[BUDG_LND_MAINT].money) {
+       snprintf(buf, sizeof(buf), "%d unit%s",
+                budget->bm[BUDG_LND_MAINT].count,
+                splur(budget->bm[BUDG_LND_MAINT].count));
+       pr("Unit maintenance\t\t%-16s\t\t%8d\n",
+          buf, -budget->bm[BUDG_LND_MAINT].money);
+       expenses -= budget->bm[BUDG_LND_MAINT].money;
     }
 
     if (budget->bm[BUDG_SCT_BUILD].money) {
@@ -173,10 +182,7 @@ budg(void)
 }
 
 static struct budget *
-calc_all(int *taxes, int *Ncivs, int *Nuws, int *bars, int *Nbars,
-        int *ships, int *sbuild, int *nsbuild, int *smaint,
-        int *units, int *lbuild, int *nlbuild, int *lmaint,
-        int *planes, int *pbuild, int *npbuild, int *pmaint)
+calc_all(int *taxes, int *Ncivs, int *Nuws, int *bars, int *Nbars)
 {
     struct budget *budget = &nat_budget[player->cnum];
     struct natstr *np;
@@ -188,9 +194,6 @@ calc_all(int *taxes, int *Ncivs, int *Nuws, int *bars, int *Nbars,
 
     memset(nat_budget, 0, sizeof(nat_budget));
     *taxes = *Ncivs = *Nuws = *bars = *Nbars = 0;
-    *ships = *sbuild = *nsbuild = *smaint = 0;
-    *units = *lbuild = *nlbuild = *lmaint = 0;
-    *planes = *pbuild = *npbuild = *pmaint = 0;
 
     np = getnatp(player->cnum);
     bp = bp_alloc();
@@ -212,41 +215,18 @@ calc_all(int *taxes, int *Ncivs, int *Nuws, int *bars, int *Nbars,
     upd_slmilcosts(etu, player->cnum);
     pay_reserve(np, etu);
 
-    /* Maintain ships */
-    sea_money[player->cnum] = 0;
-    *ships = prod_ship(etu, player->cnum, bp, 0);
-    *smaint = sea_money[player->cnum];
-
-    /* Maintain planes */
-    air_money[player->cnum] = 0;
-    *planes = prod_plane(etu, player->cnum, bp, 0);
-    *pmaint = air_money[player->cnum];
-
-    /* Maintain land units */
-    lnd_money[player->cnum] = 0;
-    *units = prod_land(etu, player->cnum, bp, 0);
-    *lmaint = lnd_money[player->cnum];
+    /* Maintain ships, planes and land units */
+    prod_ship(etu, player->cnum, bp, 0);
+    prod_plane(etu, player->cnum, bp, 0);
+    prod_land(etu, player->cnum, bp, 0);
 
     /* Produce */
     produce_sect(np, etu, bp);
 
-    /* Build ships */
-    sea_money[player->cnum] = 0;
-    *nsbuild = prod_ship(etu, player->cnum, bp, 1);
-    *sbuild = sea_money[player->cnum];
-    sea_money[player->cnum] = 0;
-
-    /* Build planes */
-    air_money[player->cnum] = 0;
-    *npbuild = prod_plane(etu, player->cnum, bp, 1);
-    *pbuild = air_money[player->cnum];
-    air_money[player->cnum] = 0;
-
-    /* Build land units */
-    lnd_money[player->cnum] = 0;
-    *nlbuild = prod_land(etu, player->cnum, bp, 1);
-    *lbuild = lnd_money[player->cnum];
-    lnd_money[player->cnum] = 0;
+    /* Build ships, planes and land units */
+    prod_ship(etu, player->cnum, bp, 1);
+    prod_plane(etu, player->cnum, bp, 1);
+    prod_land(etu, player->cnum, bp, 1);
 
     free(bp);
     return budget;
index c2eaaad1c5d35157fad81c0b753e82bc5872a2d4..cbb818ce128dd2630e958ebb8a74c2996d1fb5fa 100644 (file)
 #include "prototypes.h"
 #include "update.h"
 
-static void landrepair(struct lndstr *, struct natstr *, struct bp *, int);
 static void upd_land(struct lndstr *, int, struct natstr *, struct bp *, int);
+static void landrepair(struct lndstr *, struct natstr *, struct bp *,
+                      int, struct budget *);
 static int feed_land(struct lndstr *, int);
 
-int
+void
 prod_land(int etus, int natnum, struct bp *bp, int build)
                /* build = 1, maintain = 0 */
 {
     struct lndstr *lp;
     struct sctstr *sp;
     struct natstr *np;
-    int n, k = 0;
+    int i;
     int start_money;
 
-    for (n = 0; NULL != (lp = getlandp(n)); n++) {
+    for (i = 0; (lp = getlandp(i)); i++) {
        if (lp->lnd_own == 0)
            continue;
        if (lp->lnd_own != natnum)
@@ -80,14 +81,9 @@ prod_land(int etus, int natnum, struct bp *bp, int build)
        np = getnatp(lp->lnd_own);
        start_money = np->nat_money;
        upd_land(lp, etus, np, bp, build);
-       lnd_money[lp->lnd_own] += np->nat_money - start_money;
-       if (!build || np->nat_money != start_money)
-           k++;
        if (player->simulation)
            np->nat_money = start_money;
     }
-
-    return k;
 }
 
 static void
@@ -95,6 +91,7 @@ upd_land(struct lndstr *lp, int etus,
         struct natstr *np, struct bp *bp, int build)
               /* build = 1, maintain = 0 */
 {
+    struct budget *budget = &nat_budget[lp->lnd_own];
     struct lchrstr *lcp;
     int pstage, ptime;
     int min = morale_base - (int)np->nat_level[NAT_HLEV];
@@ -107,7 +104,7 @@ upd_land(struct lndstr *lp, int etus,
     lcp = &lchr[(int)lp->lnd_type];
     if (build == 1) {
        if (!lp->lnd_off && np->nat_money >= 0)
-           landrepair(lp, np, bp, etus);
+           landrepair(lp, np, bp, etus, budget);
        if (!player->simulation)
            lp->lnd_off = 0;
     } else {
@@ -116,6 +113,7 @@ upd_land(struct lndstr *lp, int etus,
            mult = 2;
        if (lcp->l_flags & L_ENGINEER)
            mult *= 3;
+       budget->bm[BUDG_LND_MAINT].count++;
        cost = -(mult * etus * MIN(0.0, money_land * lcp->l_cost));
        if (np->nat_money < cost && !player->simulation) {
            eff_lost = etus / 5;
@@ -127,6 +125,7 @@ upd_land(struct lndstr *lp, int etus,
                lp->lnd_effic -= eff_lost;
            }
        } else {
+           budget->bm[BUDG_LND_MAINT].money -= cost;
            np->nat_money -= cost;
        }
 
@@ -195,7 +194,8 @@ upd_land(struct lndstr *lp, int etus,
 }
 
 static void
-landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus)
+landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus,
+          struct budget *budget)
 {
     struct lchrstr *lp = &lchr[(int)land->lnd_type];
     int delta;
@@ -203,6 +203,7 @@ landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus)
     int build;
     int avail;
     int mult;
+    int cost;
 
     if (land->lnd_effic == 100)
        return;
@@ -245,10 +246,12 @@ landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus)
     sp->sct_avail = avail;
 
     bp_set_from_sect(bp, sp);
-    np->nat_money -= roundavg(mult * lp->l_cost * build / 100.0);
-    if (!player->simulation) {
+    cost = roundavg(mult * lp->l_cost * build / 100.0);
+    budget->bm[BUDG_LND_BUILD].count += !!build;
+    budget->bm[BUDG_LND_BUILD].money -= cost;
+    np->nat_money -= cost;
+    if (!player->simulation)
        land->lnd_effic += (signed char)build;
-    }
 }
 
 /*
index 5975f1da183b75a1be7236eed84ddd3f0a0195ef..92a309266be2e4161b0556cf0fabf4f90edc23c4 100644 (file)
@@ -123,6 +123,12 @@ update_main(void)
        prod_ship(etu, i, NULL, 1);
        prod_plane(etu, i, NULL, 1);
        prod_land(etu, i, NULL, 1);
+       sea_money[i] += nat_budget[i].bm[BUDG_SHP_MAINT].money
+           + nat_budget[i].bm[BUDG_SHP_BUILD].money;
+       air_money[i] += nat_budget[i].bm[BUDG_PLN_MAINT].money
+           + nat_budget[i].bm[BUDG_PLN_BUILD].money;
+       lnd_money[i] += nat_budget[i].bm[BUDG_LND_MAINT].money
+           + nat_budget[i].bm[BUDG_LND_BUILD].money;
     }
     logerror("done producing for countries.");
 
index 2832c24cd0e9aa1ad8f0174fa056defbe66e8a65..c7d14e75d809cd753e18e82a961f57781969b0d1 100644 (file)
 #include "ship.h"
 #include "update.h"
 
-static void planerepair(struct plnstr *, struct natstr *, struct bp *, int);
 static void upd_plane(struct plnstr *, int, struct natstr *, struct bp *, int);
+static void planerepair(struct plnstr *, struct natstr *, struct bp *,
+                       int, struct budget *);
 
-int
+void
 prod_plane(int etus, int natnum, struct bp *bp, int buildem)
                 /* Build = 1, maintain =0 */
 {
     struct plnstr *pp;
     struct natstr *np;
-    int n, k = 0;
+    int i;
     int start_money;
 
-    for (n = 0; NULL != (pp = getplanep(n)); n++) {
+    for (i = 0; (pp = getplanep(i)); i++) {
        if (pp->pln_own == 0)
            continue;
        if (pp->pln_own != natnum)
@@ -79,32 +80,29 @@ prod_plane(int etus, int natnum, struct bp *bp, int buildem)
        np = getnatp(pp->pln_own);
        start_money = np->nat_money;
        upd_plane(pp, etus, np, bp, buildem);
-       air_money[pp->pln_own] += np->nat_money - start_money;
-       if (buildem == 0 || np->nat_money != start_money)
-           k++;
        if (player->simulation)
            np->nat_money = start_money;
     }
-
-    return k;
 }
 
 static void
 upd_plane(struct plnstr *pp, int etus,
          struct natstr *np, struct bp *bp, int build)
 {
+    struct budget *budget = &nat_budget[pp->pln_own];
     struct plchrstr *pcp = &plchr[(int)pp->pln_type];
     int mult, cost, eff_lost;
 
     if (build == 1) {
        if (!pp->pln_off && np->nat_money >= 0)
-           planerepair(pp, np, bp, etus);
+           planerepair(pp, np, bp, etus, budget);
        if (!player->simulation)
            pp->pln_off = 0;
     } else {
        mult = 1;
        if (np->nat_level[NAT_TLEV] < pp->pln_tech * 0.85)
            mult = 2;
+       budget->bm[BUDG_PLN_MAINT].count++;
        cost = -(mult * etus * MIN(0.0, pcp->pl_cost * money_plane));
        if (np->nat_money < cost && !player->simulation) {
            eff_lost = etus / 5;
@@ -116,15 +114,19 @@ upd_plane(struct plnstr *pp, int etus,
                pp->pln_effic -= eff_lost;
            }
        } else {
+           budget->bm[BUDG_PLN_MAINT].money -= cost;
            np->nat_money -= cost;
        }
        /* flight pay is 5x the pay received by other military */
-       np->nat_money += etus * pcp->pl_mat[I_MILIT] * money_mil * 5;
+       cost = etus * pcp->pl_mat[I_MILIT] * -money_mil * 5;
+       budget->bm[BUDG_PLN_MAINT].money -= cost;
+       np->nat_money -= cost;
     }
 }
 
 static void
-planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus)
+planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus,
+           struct budget *budget)
 {
     struct plchrstr *pcp = &plchr[(int)pp->pln_type];
     int build;
@@ -134,6 +136,7 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus)
     int mult;
     int avail;
     int used;
+    int cost;
 
     if (pp->pln_effic == 100)
        return;
@@ -199,8 +202,11 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus)
     }
 
     bp_set_from_sect(bp, sp);
-    np->nat_money -= roundavg(mult * build * pcp->pl_cost / 100.0);
-
-    if (!player->simulation)
+    cost = roundavg(mult * build * pcp->pl_cost / 100.0);
+    budget->bm[BUDG_PLN_BUILD].count += !!build;
+    budget->bm[BUDG_PLN_BUILD].money -= cost;
+    np->nat_money -= cost;
+    if (!player->simulation) {
        pp->pln_effic += (signed char)build;
+    }
 }
index 01fb8c9f19820c4f5779795986148e0edff9e8ad..9391ab404da0f33ef7f0ecdf34fb92b71bddbbbd 100644 (file)
 #include "ship.h"
 #include "update.h"
 
-static void shiprepair(struct shpstr *, struct natstr *, struct bp *, int);
 static void upd_ship(struct shpstr *, int, struct natstr *, struct bp *, int);
+static void shiprepair(struct shpstr *, struct natstr *, struct bp *,
+                      int, struct budget *);
 static int feed_ship(struct shpstr *, int);
 
-int
+void
 prod_ship(int etus, int natnum, struct bp *bp, int build)
                /* build = 1, maintain = 0 */
 {
     struct shpstr *sp;
     struct natstr *np;
-    int n, k = 0;
+    int i;
     int start_money;
 
-    for (n = 0; NULL != (sp = getshipp(n)); n++) {
+    for (i = 0; (sp = getshipp(i)); i++) {
        if (sp->shp_own == 0)
            continue;
        if (sp->shp_own != natnum)
@@ -78,14 +79,9 @@ prod_ship(int etus, int natnum, struct bp *bp, int build)
        np = getnatp(sp->shp_own);
        start_money = np->nat_money;
        upd_ship(sp, etus, np, bp, build);
-       sea_money[sp->shp_own] += np->nat_money - start_money;
-       if (!build || np->nat_money != start_money)
-           k++;
        if (player->simulation)
            np->nat_money = start_money;
     }
-
-    return k;
 }
 
 static void
@@ -93,6 +89,7 @@ upd_ship(struct shpstr *sp, int etus,
         struct natstr *np, struct bp *bp, int build)
               /* build = 1, maintain = 0 */
 {
+    struct budget *budget = &nat_budget[sp->shp_own];
     struct sctstr *sectp;
     struct mchrstr *mp;
     int pstage, ptime;
@@ -107,13 +104,14 @@ upd_ship(struct shpstr *sp, int etus,
     mp = &mchr[(int)sp->shp_type];
     if (build == 1) {
        if (!sp->shp_off && np->nat_money >= 0)
-           shiprepair(sp, np, bp, etus);
+           shiprepair(sp, np, bp, etus, budget);
        if (!player->simulation)
            sp->shp_off = 0;
     } else {
        mult = 1;
        if (np->nat_level[NAT_TLEV] < sp->shp_tech * 0.85)
            mult = 2;
+       budget->bm[BUDG_SHP_MAINT].count++;
        cost = -(mult * etus * MIN(0.0, money_ship * mp->m_cost));
        if (np->nat_money < cost && !player->simulation) {
            eff_lost = etus / 5;
@@ -125,6 +123,7 @@ upd_ship(struct shpstr *sp, int etus,
                sp->shp_effic -= eff_lost;
            }
        } else {
+           budget->bm[BUDG_SHP_MAINT].money -= cost;
            np->nat_money -= cost;
        }
 
@@ -242,7 +241,8 @@ upd_ship(struct shpstr *sp, int etus,
  * 8 * 8 * $40 = $2560!
  */
 static void
-shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus)
+shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus,
+          struct budget *budget)
 {
     struct mchrstr *mp = &mchr[(int)ship->shp_type];
     int delta;
@@ -251,6 +251,7 @@ shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus)
     int wf;
     int avail;
     int mult;
+    int cost;
 
     if (ship->shp_effic == 100)
        return;
@@ -313,7 +314,10 @@ shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus)
        }
 
     bp_set_from_sect(bp, sp);
-    np->nat_money -= roundavg(mult * mp->m_cost * build / 100.0);
+    cost = roundavg(mult * mp->m_cost * build / 100.0);
+    budget->bm[BUDG_SHP_BUILD].count += !!build;
+    budget->bm[BUDG_SHP_BUILD].money -= cost;
+    np->nat_money -= cost;
     if (!player->simulation)
        ship->shp_effic += (signed char)build;
 }
index b430d10646ad3c0eef6cba8af285028ad4ddc0f2..6190da3ed93c9816cfd9b3b5535d5efbf5d12350 100644 (file)
@@ -1088,7 +1088,7 @@ uid owner type unitid price maxbidder markettime xloc yloc
 config nat
 cnum stat flags cname passwd ip hostname userid xcap ycap xorg yorg update tgms ann timeused btu access milreserve money login logout newstim annotim tech research education happiness relations(0) relations(1) relations(2) relations(3) relations(4) relations(5) relations(6) relations(7) relations(8) relations(9) relations(10) relations(11) relations(12) relations(13) relations(14) relations(15) relations(16) relations(17) relations(18) relations(19) relations(20) relations(21) relations(22) relations(23) relations(24) relations(25) relations(26) relations(27) relations(28) relations(29) relations(30) relations(31) relations(32) relations(33) relations(34) relations(35) relations(36) relations(37) relations(38) relations(39) relations(40) relations(41) relations(42) relations(43) relations(44) relations(45) relations(46) relations(47) relations(48) relations(49) relations(50) relations(51) relations(52) relations(53) relations(54) relations(55) relations(56) relations(57) relations(58) relations(59) relations(60) relations(61) relations(62) relations(63) relations(64) relations(65) relations(66) relations(67) relations(68) relations(69) relations(70) relations(71) relations(72) relations(73) relations(74) relations(75) relations(76) relations(77) relations(78) relations(79) relations(80) relations(81) relations(82) relations(83) relations(84) relations(85) relations(86) relations(87) relations(88) relations(89) relations(90) relations(91) relations(92) relations(93) relations(94) relations(95) relations(96) relations(97) relations(98) contacts(0) contacts(1) contacts(2) contacts(3) contacts(4) contacts(5) contacts(6) contacts(7) contacts(8) contacts(9) contacts(10) contacts(11) contacts(12) contacts(13) contacts(14) contacts(15) contacts(16) contacts(17) contacts(18) contacts(19) contacts(20) contacts(21) contacts(22) contacts(23) contacts(24) contacts(25) contacts(26) contacts(27) contacts(28) contacts(29) contacts(30) contacts(31) contacts(32) contacts(33) contacts(34) contacts(35) contacts(36) contacts(37) contacts(38) contacts(39) contacts(40) contacts(41) contacts(42) contacts(43) contacts(44) contacts(45) contacts(46) contacts(47) contacts(48) contacts(49) contacts(50) contacts(51) contacts(52) contacts(53) contacts(54) contacts(55) contacts(56) contacts(57) contacts(58) contacts(59) contacts(60) contacts(61) contacts(62) contacts(63) contacts(64) contacts(65) contacts(66) contacts(67) contacts(68) contacts(69) contacts(70) contacts(71) contacts(72) contacts(73) contacts(74) contacts(75) contacts(76) contacts(77) contacts(78) contacts(79) contacts(80) contacts(81) contacts(82) contacts(83) contacts(84) contacts(85) contacts(86) contacts(87) contacts(88) contacts(89) contacts(90) contacts(91) contacts(92) contacts(93) contacts(94) contacts(95) contacts(96) contacts(97) contacts(98) rejects(0) rejects(1) rejects(2) rejects(3) rejects(4) rejects(5) rejects(6) rejects(7) rejects(8) rejects(9) rejects(10) rejects(11) rejects(12) rejects(13) rejects(14) rejects(15) rejects(16) rejects(17) rejects(18) rejects(19) rejects(20) rejects(21) rejects(22) rejects(23) rejects(24) rejects(25) rejects(26) rejects(27) rejects(28) rejects(29) rejects(30) rejects(31) rejects(32) rejects(33) rejects(34) rejects(35) rejects(36) rejects(37) rejects(38) rejects(39) rejects(40) rejects(41) rejects(42) rejects(43) rejects(44) rejects(45) rejects(46) rejects(47) rejects(48) rejects(49) rejects(50) rejects(51) rejects(52) rejects(53) rejects(54) rejects(55) rejects(56) rejects(57) rejects(58) rejects(59) rejects(60) rejects(61) rejects(62) rejects(63) rejects(64) rejects(65) rejects(66) rejects(67) rejects(68) rejects(69) rejects(70) rejects(71) rejects(72) rejects(73) rejects(74) rejects(75) rejects(76) rejects(77) rejects(78) rejects(79) rejects(80) rejects(81) rejects(82) rejects(83) rejects(84) rejects(85) rejects(86) rejects(87) rejects(88) rejects(89) rejects(90) rejects(91) rejects(92) rejects(93) rejects(94) rejects(95) rejects(96) rejects(97) rejects(98)
 0 deity (flash beep coastwatch sonar techlists) "POGO" "peter" "127.0.0.1" "" "tester" 0 0 0 0 0 0 0 255 640 0 0 123456789 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
-1 active (flash beep coastwatch sonar techlists) "1" "1" "127.0.0.1" "" "tester" 5 -15 5 -13 0 0 0 255 640 0 28 59100 0 0 0 0 65.6014 21.7134 38.6907 12.0115 neutral neutral allied neutral neutral neutral neutral neutral at-war neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
+1 active (flash beep coastwatch sonar techlists) "1" "1" "127.0.0.1" "" "tester" 5 -15 5 -13 0 0 0 255 640 0 28 59106 0 0 0 0 65.6014 21.7134 38.6907 12.0115 neutral neutral allied neutral neutral neutral neutral neutral at-war neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 2 active (flash beep coastwatch sonar techlists) "2" "2" "127.0.0.1" "" "tester" 18 8 16 10 0 1 0 255 640 0 98 37785 0 0 0 0 27.2975 10.8567 11.7679 0.00000 neutral allied neutral neutral neutral neutral neutral neutral hostile neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 3 active (flash beep coastwatch sonar techlists) "3" "3" "127.0.0.1" "" "tester" -4 10 -4 10 0 17 1 255 640 0 0 38175 0 0 0 0 27.2975 10.8567 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 4 active (flash beep coastwatch sonar techlists) "4" "4" "127.0.0.1" "" "tester" -15 1 -15 1 0 17 1 255 640 0 0 38170 0 0 0 0 27.2975 10.8567 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
index c4ee4abbb14c15316f3b5f711b00bfd4cc4b8c0d..b97aa61516b9d3f43c854fb6c1bb221d13a7337f 100644 (file)
     Play#1 output Play#1 1  75 happiness, 450 education produced
     Play#1 output Play#1 1 total pop was 31448, yielding 12.08 hap, 43.62 edu
     Play#1 output Play#1 1 7.2656 technology (4.4923 + 2.7733), 3.7046 research (3.7046 + 0.0000) produced
-    Play#1 output Play#1 1 Army delta $-138, Navy delta $-1650, Air force delta $-1227
-    Play#1 output Play#1 1 money delta was $5103 for this update
+    Play#1 output Play#1 1 Army delta $-138, Navy delta $-1650, Air force delta $-1224
+    Play#1 output Play#1 1 money delta was $5106 for this update
     Play#1 output Play#1 1
     Play#1 output Play#1 1 > BULLETIN from POGO, (#0)  dated Thu Jan  1 00:00:00 1970
     Play#1 output Play#1 1 Flying a support mission from 11,-1 to 12,-2
     Play#0 output Play#0 1
     Play#0 output Play#0 1          sects  eff civ  mil  shell gun pet  iron dust oil  pln ship unit money
     Play#0 output Play#0 1         1  33   98%  31K 231  658   34  994   10K 525  1.0K   3    5    4   51K
-    Play#0 output Play#0 1    683.76
+    Play#0 output Play#0 1    683.77
     Play#0 output Play#0 1         8  29  100%  29K 105  214    6    0   16K 2.5K 547    0    0    0   23K
     Play#0 output Play#0 1    486.73
     Play#0 output Play#0 1         2  30   34% 6.3K   0    0    0    0  3.2K 1.3K 529    0    0    0   36K
     Play#0 command xdump
     Play#0 output Play#0 1 XDUMP nat 0
     Play#0 output Play#0 1 0 5 62 "POGO" "peter" "127.0.0.1" "" "tester" 0 0 0 0 0 0 0 255 640 0 0 123456789 0 0 0 0 0.00000 0.00000 0.00000 0.00000 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-    Play#0 output Play#0 1 1 4 62 "1" "1" "127.0.0.1" "" "tester" 5 -15 5 -13 0 1 0 255 640 0 28 59100 0 0 0 0 65.6014 21.7134 38.6907 12.0115 2 2 4 2 2 2 2 2 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+    Play#0 output Play#0 1 1 4 62 "1" "1" "127.0.0.1" "" "tester" 5 -15 5 -13 0 1 0 255 640 0 28 59106 0 0 0 0 65.6014 21.7134 38.6907 12.0115 2 2 4 2 2 2 2 2 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     Play#0 output Play#0 1 2 4 62 "2" "2" "127.0.0.1" "" "tester" 18 8 16 10 0 1 0 255 640 0 98 37785 0 0 0 0 27.2975 10.8567 11.7679 0.00000 2 4 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     Play#0 output Play#0 1 3 4 62 "3" "3" "127.0.0.1" "" "tester" -4 10 -4 10 0 17 1 255 640 0 0 38175 0 0 0 0 27.2975 10.8567 0.00000 0.00000 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     Play#0 output Play#0 1 4 4 62 "4" "4" "127.0.0.1" "" "tester" -15 1 -15 1 0 17 1 255 640 0 0 38170 0 0 0 0 27.2975 10.8567 0.00000 0.00000 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     Play#1 input xdump country *
     Play#1 command xdump
     Play#1 output Play#1 1 XDUMP country 0
-    Play#1 output Play#1 1 1 62 "127.0.0.1" "" "tester" 0 -2 0 0 0 255 640 0 28 59100 0 0 0 0 65.6014 21.7134 38.6907 12.0115
+    Play#1 output Play#1 1 1 62 "127.0.0.1" "" "tester" 0 -2 0 0 0 255 640 0 28 59106 0 0 0 0 65.6014 21.7134 38.6907 12.0115
     Play#1 output Play#1 1 /1
     Play#1 output Play#1 6 0 640
     Play#1 input ctld
index 0d7877491b7061e5d9ce818a9d9acf5a7b7980b3..2f846fda9767cc5d85064e74015d83bdb3e67df7 100644 (file)
@@ -411,12 +411,12 @@ uid owner type unitid price maxbidder markettime xloc yloc
 config nat
 cnum stat flags cname passwd ip hostname userid xcap ycap xorg yorg update tgms ann timeused btu access milreserve money login logout newstim annotim tech research education happiness relations(0) relations(1) relations(2) relations(3) relations(4) relations(5) relations(6) relations(7) relations(8) relations(9) relations(10) relations(11) relations(12) relations(13) relations(14) relations(15) relations(16) relations(17) relations(18) relations(19) relations(20) relations(21) relations(22) relations(23) relations(24) relations(25) relations(26) relations(27) relations(28) relations(29) relations(30) relations(31) relations(32) relations(33) relations(34) relations(35) relations(36) relations(37) relations(38) relations(39) relations(40) relations(41) relations(42) relations(43) relations(44) relations(45) relations(46) relations(47) relations(48) relations(49) relations(50) relations(51) relations(52) relations(53) relations(54) relations(55) relations(56) relations(57) relations(58) relations(59) relations(60) relations(61) relations(62) relations(63) relations(64) relations(65) relations(66) relations(67) relations(68) relations(69) relations(70) relations(71) relations(72) relations(73) relations(74) relations(75) relations(76) relations(77) relations(78) relations(79) relations(80) relations(81) relations(82) relations(83) relations(84) relations(85) relations(86) relations(87) relations(88) relations(89) relations(90) relations(91) relations(92) relations(93) relations(94) relations(95) relations(96) relations(97) relations(98) contacts(0) contacts(1) contacts(2) contacts(3) contacts(4) contacts(5) contacts(6) contacts(7) contacts(8) contacts(9) contacts(10) contacts(11) contacts(12) contacts(13) contacts(14) contacts(15) contacts(16) contacts(17) contacts(18) contacts(19) contacts(20) contacts(21) contacts(22) contacts(23) contacts(24) contacts(25) contacts(26) contacts(27) contacts(28) contacts(29) contacts(30) contacts(31) contacts(32) contacts(33) contacts(34) contacts(35) contacts(36) contacts(37) contacts(38) contacts(39) contacts(40) contacts(41) contacts(42) contacts(43) contacts(44) contacts(45) contacts(46) contacts(47) contacts(48) contacts(49) contacts(50) contacts(51) contacts(52) contacts(53) contacts(54) contacts(55) contacts(56) contacts(57) contacts(58) contacts(59) contacts(60) contacts(61) contacts(62) contacts(63) contacts(64) contacts(65) contacts(66) contacts(67) contacts(68) contacts(69) contacts(70) contacts(71) contacts(72) contacts(73) contacts(74) contacts(75) contacts(76) contacts(77) contacts(78) contacts(79) contacts(80) contacts(81) contacts(82) contacts(83) contacts(84) contacts(85) contacts(86) contacts(87) contacts(88) contacts(89) contacts(90) contacts(91) contacts(92) contacts(93) contacts(94) contacts(95) contacts(96) contacts(97) contacts(98) rejects(0) rejects(1) rejects(2) rejects(3) rejects(4) rejects(5) rejects(6) rejects(7) rejects(8) rejects(9) rejects(10) rejects(11) rejects(12) rejects(13) rejects(14) rejects(15) rejects(16) rejects(17) rejects(18) rejects(19) rejects(20) rejects(21) rejects(22) rejects(23) rejects(24) rejects(25) rejects(26) rejects(27) rejects(28) rejects(29) rejects(30) rejects(31) rejects(32) rejects(33) rejects(34) rejects(35) rejects(36) rejects(37) rejects(38) rejects(39) rejects(40) rejects(41) rejects(42) rejects(43) rejects(44) rejects(45) rejects(46) rejects(47) rejects(48) rejects(49) rejects(50) rejects(51) rejects(52) rejects(53) rejects(54) rejects(55) rejects(56) rejects(57) rejects(58) rejects(59) rejects(60) rejects(61) rejects(62) rejects(63) rejects(64) rejects(65) rejects(66) rejects(67) rejects(68) rejects(69) rejects(70) rejects(71) rejects(72) rejects(73) rejects(74) rejects(75) rejects(76) rejects(77) rejects(78) rejects(79) rejects(80) rejects(81) rejects(82) rejects(83) rejects(84) rejects(85) rejects(86) rejects(87) rejects(88) rejects(89) rejects(90) rejects(91) rejects(92) rejects(93) rejects(94) rejects(95) rejects(96) rejects(97) rejects(98)
 0 deity (flash beep coastwatch sonar techlists) "POGO" "peter" "127.0.0.1" "" "tester" 0 0 0 0 0 0 0 255 640 0 0 123456789 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
-1 active (flash beep coastwatch sonar techlists) "1" "1" "127.0.0.1" "" "tester" 0 0 0 0 0 1 0 255 640 0 0 13338 0 0 0 0 102.787 3.37264 21.0875 12.3287 neutral neutral neutral neutral neutral neutral allied friendly neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
+1 active (flash beep coastwatch sonar techlists) "1" "1" "127.0.0.1" "" "tester" 0 0 0 0 0 1 0 255 640 0 0 13358 0 0 0 0 102.787 3.37264 21.0875 12.3287 neutral neutral neutral neutral neutral neutral allied friendly neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 2 active (flash beep coastwatch sonar techlists) "2" "2" "127.0.0.1" "" "tester" -2 0 0 0 0 1 0 255 193 0 975 -5912 0 0 0 0 101.081 1.68632 15.2381 2.74222 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 3 active (flash beep coastwatch sonar techlists) "3" "3" "127.0.0.1" "" "tester" 1 -1 0 0 0 1 0 255 640 0 0 4337 0 0 0 0 101.081 1.68632 15.2381 4.44444 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 4 active (flash beep coastwatch sonar techlists) "4" "4" "127.0.0.1" "" "tester" -1 -1 0 0 0 1 0 255 640 0 0 18752 0 0 0 0 31.5183 1.68632 3.04762 4.44444 neutral allied neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 5 active (flash beep coastwatch sonar techlists) "5" "5" "127.0.0.1" "" "tester" -16 -8 0 0 0 1 0 255 99 0 0 26499 0 0 0 0 101.081 1.68632 15.2381 4.44444 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
-6 active (flash beep coastwatch sonar techlists) "6" "6" "127.0.0.1" "" "tester" 0 8 0 0 0 1 0 255 640 0 0 24812 0 0 0 0 101.081 1.68632 15.2381 4.44444 allied allied allied allied allied allied neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
+6 active (flash beep coastwatch sonar techlists) "6" "6" "127.0.0.1" "" "tester" 0 8 0 0 0 1 0 255 640 0 0 24815 0 0 0 0 101.081 1.68632 15.2381 4.44444 allied allied allied allied allied allied neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 7 active (flash beep coastwatch sonar techlists) "7" "7" "127.0.0.1" "" "tester" -2 8 0 0 0 1 0 255 640 0 0 25828 0 0 0 0 101.081 1.68632 15.2381 4.44444 friendly friendly friendly friendly friendly friendly friendly neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 /config
 config loan
index 782dfc757ef0e191e9ae684c0dac313617a252b1..68c2a063e96aefc596a95b5bc79c7c1597e479b2 100644 (file)
     Play#1 output Play#1 1 Ship building                       10 ships                            1519
     Play#1 output Play#1 1 Ship maintenance            32 ships                            2202
     Play#1 output Play#1 1 Plane building                      13 planes                           1924
-    Play#1 output Play#1 1 Plane maintenance           20 planes                           1004
+    Play#1 output Play#1 1 Plane maintenance           20 planes                            984
     Play#1 output Play#1 1 Unit building                       6 units                             2300
     Play#1 output Play#1 1 Unit maintenance            16 units                             510
     Play#1 output Play#1 1 Sector building                     40 sectors                           774
     Play#1 output Play#1 1 Sector maintenance          2 sectors                            120
     Play#1 output Play#1 1 Military payroll            1164 mil, 0 res                     5777
-    Play#1 output Play#1 1 Total expenses.....................................................24647
+    Play#1 output Play#1 1 Total expenses.....................................................24627
     Play#1 output Play#1 1 Income from taxes           26911 civs, 9007 uws              +12625
     Play#1 output Play#1 1 Total income......................................................+12625
     Play#1 output Play#1 1 Balance forward                                                        25000
-    Play#1 output Play#1 1 Estimated delta                                                       -12022
-    Play#1 output Play#1 1 Estimated new treasury.............................................12978
+    Play#1 output Play#1 1 Estimated delta                                                       -12002
+    Play#1 output Play#1 1 Estimated new treasury.............................................12998
     Play#1 output Play#1 6 0 99
     Play#1 input neweff * ?newd#-
     Play#1 command neweff
     Play#2 output Play#2 1 Ship building                       2 ships                              450
     Play#2 output Play#2 1 Ship maintenance            3 ships                               90
     Play#2 output Play#2 1 Plane building                      1 plane                              360
-    Play#2 output Play#2 1 Plane maintenance           3 planes                             147
+    Play#2 output Play#2 1 Plane maintenance           3 planes                             144
     Play#2 output Play#2 1 Unit building                       1 unit                               450
     Play#2 output Play#2 1 Unit maintenance            3 units                               90
     Play#2 output Play#2 1 Sector building                     26 sectors                           209
     Play#2 output Play#2 1 Sector maintenance          5 sectors                            300
     Play#2 output Play#2 1 Military payroll            1900 mil, 1000 res                  9994
-    Play#2 output Play#2 1 Total expenses.....................................................12390
+    Play#2 output Play#2 1 Total expenses.....................................................12387
     Play#2 output Play#2 1 Income from taxes           6800 civs, 4000 uws                +1076
     Play#2 output Play#2 1 Income from bars            400 bars                           +2865
     Play#2 output Play#2 1 Total income.......................................................+3941
     Play#2 output Play#2 1 Balance forward                                                          100
-    Play#2 output Play#2 1 Estimated delta                                                        -8449
-    Play#2 output Play#2 1 Estimated new treasury.............................................-8349
+    Play#2 output Play#2 1 Estimated delta                                                        -8446
+    Play#2 output Play#2 1 Estimated new treasury.............................................-8346
     Play#2 output Play#2 1 After processsing sectors, you will be broke!
     Play#2 output Play#2 1 Sectors will not produce, distribute, or deliver!
     Play#2 output Play#2 1
     Play#6 command budget
     Play#6 output Play#6 1 Sector Type                 Production                          Cost
     Play#6 output Play#6 1 Ship maintenance            1 ship                               540
-    Play#6 output Play#6 1 Plane maintenance           3 planes                             147
+    Play#6 output Play#6 1 Plane maintenance           3 planes                             144
     Play#6 output Play#6 1 Unit maintenance            3 units                               90
     Play#6 output Play#6 1 Sector maintenance          1 sector                              60
     Play#6 output Play#6 1 Military payroll            168 mil, 0 res                       831
-    Play#6 output Play#6 1 Total expenses......................................................1668
+    Play#6 output Play#6 1 Total expenses......................................................1665
     Play#6 output Play#6 1 Income from taxes           4000 civs, 0 uws                   +1750
     Play#6 output Play#6 1 Total income.......................................................+1750
     Play#6 output Play#6 1 Balance forward                                                        25000
-    Play#6 output Play#6 1 Estimated delta                                                          +82
-    Play#6 output Play#6 1 Estimated new treasury.............................................25082
+    Play#6 output Play#6 1 Estimated delta                                                          +85
+    Play#6 output Play#6 1 Estimated new treasury.............................................25085
     Play#6 output Play#6 6 0 99
     Play#6 input ctld
     Play#6 output Play#6 1 Bye-bye
     Play#0 output Play#0 1  78 happiness, 178 education produced
     Play#0 output Play#0 1 total pop was 28106, yielding 14.19 hap, 24.57 edu
     Play#0 output Play#0 1 3.4330 tech, 3.3939 research produced
-    Play#0 output Play#0 1 Army delta $-2810, Navy delta $-3721, Air force delta $-2568
-    Play#0 output Play#0 1 money delta was $-11662 for this update
+    Play#0 output Play#0 1 Army delta $-2810, Navy delta $-3721, Air force delta $-2548
+    Play#0 output Play#0 1 money delta was $-11642 for this update
     Play#0 output Play#0 6 0 640
     Play#0 input nation 1
     Play#0 command nation
     Play#0 output Play#0 1 (#1) 1 Nation Report        Thu Jan  1 00:00:00 1970
     Play#0 output Play#0 1 Nation status is ACTIVE     Bureaucratic Time Units: 640
     Play#0 output Play#0 1 100% eff capital at 0,0 has 650 civilians & 2 military
-    Play#0 output Play#0 1  The treasury has $13338.00     Military reserves: 0
+    Play#0 output Play#0 1  The treasury has $13358.00     Military reserves: 0
     Play#0 output Play#0 1 Education.......... 21.09       Happiness....... 12.33
     Play#0 output Play#0 1 Technology.........102.79       Research........  3.37
     Play#0 output Play#0 1 Technology factor : 50.46%     Plague factor :   1.96%
     Play#0 output Play#0 1   0 happiness,   0 education produced
     Play#0 output Play#0 1 total pop was 4000, yielding 0.00 hap, 0.00 edu
     Play#0 output Play#0 1 1.7165 technology (0.0000 + 1.7165), 1.6969 research (0.0000 + 1.6969) produced
-    Play#0 output Play#0 1 Army delta $-240, Navy delta $-540, Air force delta $-267
-    Play#0 output Play#0 1 money delta was $-188 for this update
+    Play#0 output Play#0 1 Army delta $-240, Navy delta $-540, Air force delta $-264
+    Play#0 output Play#0 1 money delta was $-185 for this update
     Play#0 output Play#0 6 0 640
     Play#0 input nation 6
     Play#0 command nation
     Play#0 output Play#0 1 (#6) 6 Nation Report        Thu Jan  1 00:00:00 1970
     Play#0 output Play#0 1 Nation status is ACTIVE     Bureaucratic Time Units: 640
     Play#0 output Play#0 1 100% eff capital at 0,8 has 650 civilians & 20 military
-    Play#0 output Play#0 1  The treasury has $24812.00     Military reserves: 0
+    Play#0 output Play#0 1  The treasury has $24815.00     Military reserves: 0
     Play#0 output Play#0 1 Education.......... 15.24       Happiness.......  4.44
     Play#0 output Play#0 1 Technology.........101.08       Research........  1.69
     Play#0 output Play#0 1 Technology factor : 50.18%     Plague factor :   1.98%