]> git.pond.sub.org Git - empserver/commitdiff
edit: Fix integer argument range checking
authorMarkus Armbruster <armbru@pond.sub.org>
Wed, 16 Jan 2013 19:53:56 +0000 (20:53 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 6 Jun 2013 17:52:26 +0000 (19:52 +0200)
Upper bounds corrected:

    cmd  key  struct member   wrong   correct   notes
    -------------------------------------------------
    edit l m  sct_mobil         255       127      1
           t  sct_ptime         255     32767
    edit c b  nat_btu          1024  max_btus
    edit p m  pln_mobil         255       127      1
    edit u F  lnd_harden        255       127    1

Missing bounds supplied, arguments out of bounds are silently clipped
unless noted otherwise:

    cmd  key     struct member   bounds           notes
    ---------------------------------------------------
    edit c t     nat_tgms        0   USHRT_MAX       2
           m     nat_reserve     0   INT_MAX
           T...  nat_level[]     0   infinity
    edit s a     shp_pstage      0   PLG_EXPOSED     3
           b     shp_ptime       0   32767
           M     shp_mobil    -127   127
           c...  shp_item[]      0   load limit      4
    edit u Y     lnd_land       -1   size of table   5
           M     lnd_mobil    -127   127
           S     lnd_ship       -1   size of table   5
           Z     lnd_retreat     0   100
           c...  lnd_item[]      0   load limit      4
    edit p r     pln_range       0   max range
           s     pln_ship       -1   size of table   5
           y     pln_land       -1   size of table   5

Notes:

1. Values between SCHAR_MAX and 255 were cast to signed char, changing
the sign.

2. The real upper bound is the number of telegrams in the mailbox, but
counting them isn't worth it.

3. This check is particularly important, because values out of bounds
make the server refuse to start without -F, and empdump -x warn
"export has errors, not importable as is".

4. Values outside 0..ITEM_MAX got caught and clipped by
item_prewrite().  This check avoids the oops, and tightens the upper
bound for units.

5. Argument out-of-bounds are rejected.  This check is particularly
important, because unit numbers beyond the size of the table trigger
oopses.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
src/lib/commands/edit.c
tests/actofgod/actofgod.xdump
tests/actofgod/journal.log
tests/actofgod/server.log

index 200c1eaaf34f3bebc2108390768767f7299776a1..c8b494f414c8b8e778f883c3ed944a74370f0fdb 100644 (file)
@@ -468,7 +468,7 @@ edit_sect(struct sctstr *sect, char op, int arg, char *p)
        sect->sct_effic = new;
        break;
     case 'm':
-       new = LIMIT_TO(arg, -127, 255);
+       new = LIMIT_TO(arg, -127, 127);
        noise(sect, "Mobility", sect->sct_mobil, new);
        sect->sct_mobil = new;
        break;
@@ -534,7 +534,7 @@ edit_sect(struct sctstr *sect, char op, int arg, char *p)
        sect->sct_pstage = new;
        break;
     case 't':
-       new = LIMIT_TO(arg, 0, 255);
+       new = LIMIT_TO(arg, 0, 32767);
        pr("Plague time of %s changed from %d to %d\n",
           xyas(sect->sct_x, sect->sct_y, player->cnum),
           sect->sct_ptime, new);
@@ -635,14 +635,16 @@ edit_nat(struct natstr *np, char op, int arg, char *p)
        strncpy(np->nat_pnam, p, sizeof(np->nat_pnam) - 1);
        break;
     case 't':
+       arg = LIMIT_TO(arg, 0, USHRT_MAX);
        np->nat_tgms = arg;
        break;
     case 'b':
-       arg = LIMIT_TO(arg, 0, 1024);
+       arg = LIMIT_TO(arg, 0, max_btus);
        pr("BTU's changed from %d to %d\n", np->nat_btu, arg);
        np->nat_btu = arg;
        break;
     case 'm':
+       arg = LIMIT_TO(arg, 0, INT_MAX);
        benefit(nat, np->nat_reserve < arg);
        pr("Military reserves changed from %d to %d\n",
           np->nat_reserve, arg);
@@ -686,21 +688,25 @@ edit_nat(struct natstr *np, char op, int arg, char *p)
        np->nat_money = arg;
        break;
     case 'T':
+       farg = MAX(0.0, farg);
        pr("Tech changed from %.2f to %.2f.\n",
           np->nat_level[NAT_TLEV], farg);
        np->nat_level[NAT_TLEV] = farg;
        break;
     case 'R':
+       farg = MAX(0.0, farg);
        pr("Research changed from %.2f to %.2f.\n",
           np->nat_level[NAT_RLEV], farg);
        np->nat_level[NAT_RLEV] = farg;
        break;
     case 'E':
+       farg = MAX(0.0, farg);
        pr("Education changed from %.2f to %.2f.\n",
           np->nat_level[NAT_ELEV], farg);
        np->nat_level[NAT_ELEV] = farg;
        break;
     case 'H':
+       farg = MAX(0.0, farg);
        pr("Happiness changed from %.2f to %.2f.\n",
           np->nat_level[NAT_HLEV], farg);
        np->nat_level[NAT_HLEV] = farg;
@@ -716,14 +722,17 @@ edit_nat(struct natstr *np, char op, int arg, char *p)
 static int
 edit_ship(struct shpstr *ship, char op, int arg, char *p)
 {
+    struct mchrstr *mcp = &mchr[ship->shp_type];
     coord newx, newy;
 
     newx = newy = 0;
     switch (op) {
     case 'a':
+       arg = LIMIT_TO(arg, 0, PLG_EXPOSED);
        ship->shp_pstage = arg;
        break;
     case 'b':
+       arg = LIMIT_TO(arg, 0, 32767);
        ship->shp_ptime = arg;
        break;
     case 'R':
@@ -753,13 +762,14 @@ edit_ship(struct shpstr *ship, char op, int arg, char *p)
        ship->shp_y = newy;
        break;
     case 'T':
-       arg = LIMIT_TO(arg, mchr[(int)ship->shp_type].m_tech, SHRT_MAX);
+       arg = LIMIT_TO(arg, mcp->m_tech, SHRT_MAX);
        shp_set_tech(ship, arg);
        break;
     case 'E':
        ship->shp_effic = LIMIT_TO(arg, SHIP_MINEFF, 100);
        break;
     case 'M':
+       arg = LIMIT_TO(arg, -127, 127);
        ship->shp_mobil = arg;
        break;
     case 'F':
@@ -773,42 +783,55 @@ edit_ship(struct shpstr *ship, char op, int arg, char *p)
        }
        break;
     case 'c':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_CIVIL]);
        ship->shp_item[I_CIVIL] = arg;
        break;
     case 'm':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_MILIT]);
        ship->shp_item[I_MILIT] = arg;
        break;
     case 'u':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_UW]);
        ship->shp_item[I_UW] = arg;
        break;
     case 'f':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_FOOD]);
        ship->shp_item[I_FOOD] = arg;
        break;
     case 's':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_SHELL]);
        ship->shp_item[I_SHELL] = arg;
        break;
     case 'g':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_GUN]);
        ship->shp_item[I_GUN] = arg;
        break;
     case 'p':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_PETROL]);
        ship->shp_item[I_PETROL] = arg;
        break;
     case 'i':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_IRON]);
        ship->shp_item[I_IRON] = arg;
        break;
     case 'd':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_DUST]);
        ship->shp_item[I_DUST] = arg;
        break;
     case 'o':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_OIL]);
        ship->shp_item[I_OIL] = arg;
        break;
     case 'l':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_LCM]);
        ship->shp_item[I_LCM] = arg;
        break;
     case 'h':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_HCM]);
        ship->shp_item[I_HCM] = arg;
        break;
     case 'r':
+       arg = LIMIT_TO(arg, 0, mcp->m_item[I_RAD]);
        ship->shp_item[I_RAD] = arg;
        break;
     default:
@@ -821,11 +844,14 @@ edit_ship(struct shpstr *ship, char op, int arg, char *p)
 static int
 edit_land(struct lndstr *land, char op, int arg, char *p)
 {
+    struct lchrstr *lcp = &lchr[land->lnd_type];
     coord newx, newy;
 
     newx = newy = 0;
     switch (op) {
     case 'Y':
+       if (arg < -1 || arg >= ef_nelem(EF_LAND))
+           return RET_SYN;
        land->lnd_land = arg;
        break;
     case 'U':
@@ -852,10 +878,11 @@ edit_land(struct lndstr *land, char op, int arg, char *p)
        land->lnd_effic = LIMIT_TO(arg, LAND_MINEFF, 100);
        break;
     case 'M':
+       arg = LIMIT_TO(arg, -127, 127);
        land->lnd_mobil = arg;
        break;
     case 't':
-       arg = LIMIT_TO(arg, lchr[(int)land->lnd_type].l_tech, SHRT_MAX);
+       arg = LIMIT_TO(arg, lcp->l_tech, SHRT_MAX);
        lnd_set_tech(land, arg);
        break;
     case 'a':
@@ -869,12 +896,15 @@ edit_land(struct lndstr *land, char op, int arg, char *p)
        }
        break;
     case 'F':
-       land->lnd_harden = LIMIT_TO(arg, 0, 255);
+       land->lnd_harden = LIMIT_TO(arg, 0, 127);
        break;
     case 'S':
+       if (arg < -1 || arg >= ef_nelem(EF_SHIP))
+           return RET_SYN;
        land->lnd_ship = arg;
        break;
     case 'Z':
+       arg = LIMIT_TO(arg, 0, 100);
        land->lnd_retreat = arg;
        break;
     case 'R':
@@ -884,42 +914,55 @@ edit_land(struct lndstr *land, char op, int arg, char *p)
        land->lnd_rflags = arg;
        break;
     case 'c':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_CIVIL]);
        land->lnd_item[I_CIVIL] = arg;
        break;
     case 'm':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_MILIT]);
        land->lnd_item[I_MILIT] = arg;
        break;
     case 'u':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_UW]);
        land->lnd_item[I_UW] = arg;
        break;
     case 'f':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_FOOD]);
        land->lnd_item[I_FOOD] = arg;
        break;
     case 's':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_SHELL]);
        land->lnd_item[I_SHELL] = arg;
        break;
     case 'g':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_GUN]);
        land->lnd_item[I_GUN] = arg;
        break;
     case 'p':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_PETROL]);
        land->lnd_item[I_PETROL] = arg;
        break;
     case 'i':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_IRON]);
        land->lnd_item[I_IRON] = arg;
        break;
     case 'd':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_DUST]);
        land->lnd_item[I_DUST] = arg;
        break;
     case 'o':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_OIL]);
        land->lnd_item[I_OIL] = arg;
        break;
     case 'l':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_LCM]);
        land->lnd_item[I_LCM] = arg;
        break;
     case 'h':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_HCM]);
        land->lnd_item[I_HCM] = arg;
        break;
     case 'r':
+       arg = LIMIT_TO(arg, 0, lcp->l_item[I_RAD]);
        land->lnd_item[I_RAD] = arg;
        break;
     default:
@@ -932,6 +975,7 @@ edit_land(struct lndstr *land, char op, int arg, char *p)
 static int
 edit_plane(struct plnstr *plane, char op, int arg, char *p)
 {
+    struct plchrstr *pcp = &plchr[plane->pln_type];
     coord newx, newy;
 
     switch (op) {
@@ -960,10 +1004,10 @@ edit_plane(struct plnstr *plane, char op, int arg, char *p)
        plane->pln_effic = LIMIT_TO(arg, PLANE_MINEFF, 100);
        break;
     case 'm':
-       plane->pln_mobil = LIMIT_TO(arg, -127, 255);
+       plane->pln_mobil = LIMIT_TO(arg, -127, 127);
        break;
     case 't':
-       arg = LIMIT_TO(arg, plchr[(int)plane->pln_type].pl_tech, SHRT_MAX);
+       arg = LIMIT_TO(arg, pcp->pl_tech, SHRT_MAX);
        pln_set_tech(plane, arg);
        break;
     case 'w':
@@ -977,12 +1021,17 @@ edit_plane(struct plnstr *plane, char op, int arg, char *p)
        }
        break;
     case 'r':
+       arg = LIMIT_TO(arg, 0, pl_range(pcp, plane->pln_tech));
        plane->pln_range = (unsigned char)arg;
        break;
     case 's':
+       if (arg < -1 || arg >= ef_nelem(EF_SHIP))
+           return RET_SYN;
        plane->pln_ship = arg;
        break;
     case 'y':
+       if (arg < -1 || arg >= ef_nelem(EF_LAND))
+           return RET_SYN;
        plane->pln_land = arg;
        break;
     case 'f':
index b01245ced52a91b90b72e8fc509b44c0f405fab4..df98f2db0806f64cd7f120b5b412203761cfd5b7 100644 (file)
@@ -14,8 +14,8 @@ owner xloc yloc des effic mobil off loyal terr0 terr1 terr2 terr3 dterr xdist yd
 0 -2 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0
 1 1 1 4 0 -127 0 0 0 0 0 0 0 1 1 0 0 0 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0
 1 3 1 4 0 -127 0 0 0 0 0 0 0 3 1 0 0 0 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0
-1 5 1 4 100 127 0 127 0 0 0 0 0 5 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 255 255 0 9999 0 100 100 100
-1 7 1 4 100 -128 0 127 0 0 0 0 0 7 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 255 255 0 9999 0 100 100 100
+1 5 1 4 100 127 0 127 0 0 0 0 0 5 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 32767 255 0 9999 0 100 100 100
+1 7 1 4 100 127 0 127 0 0 0 0 0 7 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 32767 255 0 9999 0 100 100 100
 1 9 1 4 0 0 0 0 0 0 0 0 0 9 1 0 0 100 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0
 1 11 1 4 0 0 0 0 0 0 0 0 0 11 1 0 0 100 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0
 2 -11 1 4 0 0 0 0 0 0 0 0 0 -11 1 0 0 100 1 4 0 0 0 0 0 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0
@@ -198,9 +198,9 @@ uid owner xloc yloc type effic mobil off tech opx opy mission radius fleet xstar
 0 0 1 -1 2 0 2 0 100 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 healthy 0 0 0 "" 0 "" 1 -1 3 () ""
 1 98 1 -1 2 20 0 0 100 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 1 "" 1 -1 3 () ""
 2 2 3 -1 2 20 -127 0 20 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 2 "" 1 -1 3 (group) ""
-3 3 1 -1 2 20 -128 0 20 0 0 none 0 "a" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 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 -1 0 0 "" 3 "" 1 -1 3 (injured) "jj"
+3 3 1 -1 2 20 -127 0 20 0 0 none 0 "a" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 3 "" 1 -1 3 (injured) "jj"
 4 3 1 -1 2 100 127 0 32767 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 exposed 32767 0 0 "" 4 "" 1 -1 3 () ""
-5 3 1 -1 2 100 -128 0 32767 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 0 0 0 0 0 0 0 0 0 0 0 0 5 -32768 0 0 "" 3 "" 1 -1 3 () ""
+5 3 1 -1 2 100 127 0 32767 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 exposed 32767 0 0 "" 3 "" 1 -1 3 () ""
 6 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 0 "" 0 0 0 () ""
 7 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 0 "" 0 0 0 () ""
 8 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 0 "" 0 0 0 () ""
@@ -250,10 +250,10 @@ config plane
 uid owner xloc yloc type effic mobil off tech opx opy mission radius wing range harden ship land flags access theta
 0 0 1 -1 0 0 2 0 100 0 0 none 0 "" 9 0 -1 -1 () 0 0.00000
 1 98 1 -1 0 10 0 0 100 0 0 none 0 "" 9 0 -1 -1 () 0 0.00000
-2 2 3 -1 0 10 -127 0 50 0 0 none 0 "" 0 0 9999 -1 (airburst) 0 0.00000
-3 3 1 -1 0 10 -127 0 50 0 0 none 0 "a" 4 0 3 -1 () 0 0.00000
+2 2 3 -1 0 10 -127 0 50 0 0 none 0 "" 0 0 -1 -1 (airburst) 0 0.00000
+3 3 1 -1 0 10 -127 0 50 0 0 none 0 "a" 0 0 3 -1 () 0 0.00000
 4 3 1 -1 0 100 127 0 32767 0 0 none 0 "" 18 0 4 -1 () 0 0.00000
-5 3 1 -1 0 100 -128 0 32767 0 0 none 0 "" 18 0 -1 -1 () 0 0.00000
+5 3 1 -1 0 100 127 0 32767 0 0 none 0 "" 18 0 -1 -1 () 0 0.00000
 6 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 -1 -1 () 0 0.00000
 7 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 -1 -1 () 0 0.00000
 8 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 -1 -1 () 0 0.00000
@@ -303,10 +303,10 @@ config land
 uid owner xloc yloc type effic mobil off tech opx opy mission radius army ship harden retreat rflags rpath civil milit shell gun petrol iron dust bar food oil lcm hcm uw rad pstage ptime land access
 0 0 1 -1 6 0 2 0 100 0 0 none 0 "" -1 0 42 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
 1 98 1 -1 6 10 0 0 100 0 0 none 0 "" -1 0 42 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
-2 2 3 -1 6 10 -127 0 50 0 0 none 0 "" 9999 0 0 (group) "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
-3 3 1 -1 6 10 -128 0 50 0 0 none 0 "a" 3 0 -1 (injured) "jj" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
+2 2 3 -1 6 10 -127 0 50 0 0 none 0 "" -1 0 0 (group) "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
+3 3 1 -1 6 10 -127 0 50 0 0 none 0 "a" 3 0 0 (injured) "jj" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
 4 3 1 -1 6 100 127 0 32767 0 0 none 0 "" 4 127 100 () "" 0 25 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
-5 3 1 -1 6 100 -128 0 32767 0 0 none 0 "" -1 -128 101 () "" 0 26 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
+5 3 1 -1 6 100 127 0 32767 0 0 none 0 "" -1 127 100 () "" 0 25 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
 6 0 0 0 0 0 0 0 0 0 0 none 0 "" -1 0 0 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
 7 0 0 0 0 0 0 0 0 0 0 none 0 "" -1 0 0 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
 8 0 0 0 0 0 0 0 0 0 0 none 0 "" -1 0 0 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0
@@ -379,12 +379,12 @@ 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 123455839 0 0 0 0 400.000 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" "" "" "" 0 0 0 0 0 1 0 255 0 0 0 -2147483648 0 0 0 0 3.14000 3.14000 3.14000 3.14000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 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" "0123456789012345678" "" "" "" 2 0 2 0 0 1 0 255 0 0 -1 0 0 0 0 0 100.000 100.000 100.000 100.000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 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) "drei" "3" "" "" "" 0 0 0 0 0 1 0 255 640 0 0 0 0 0 0 0 -1.00000 -1.00000 -1.00000 -1.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 deity (flash beep coastwatch sonar techlists) "4" "4" "" "" "" 0 0 0 0 0 0 0 255 641 0 0 0 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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
+2 active (flash beep coastwatch sonar techlists) "2" "0123456789012345678" "" "" "" 2 0 2 0 0 1 0 255 0 0 0 0 0 0 0 0 100.000 100.000 100.000 100.000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 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) "drei" "3" "" "" "" 0 0 0 0 0 1 0 255 640 0 0 0 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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
+4 deity (flash beep coastwatch sonar techlists) "4" "4" "" "" "" 0 0 0 0 0 0 0 255 640 0 0 0 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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 5 deity (flash beep coastwatch sonar techlists) "5" "5" "" "" "" 0 0 0 0 0 0 0 255 640 0 0 0 0 0 0 0 1.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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
-6 unused (flash beep coastwatch sonar techlists) "6" "6" "" "" "" 0 0 0 0 0 65535 0 255 0 0 0 0 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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
-7 unused (flash beep coastwatch sonar techlists) "7" "7" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
+6 unused (flash beep coastwatch sonar techlists) "6" "6" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
+7 unused (flash beep coastwatch sonar techlists) "7" "7" "" "" "" 0 0 0 0 0 65535 0 255 0 0 0 0 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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 8 unused () "" "" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 9 unused () "" "" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
 10 unused () "" "" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 5ca2388a1a1328161d8808e79bbd1a67237de413..b29b35e4dd10ffee4b7e353196fe0ca96f13ece3 100644 (file)
     Play#0 output Play#0 6 0 640
     Play#0 input edit l 7,1 m 128
     Play#0 command edit
-    Play#0 output Play#0 1 Mobility of 7,1 changed from 0 to 128
+    Play#0 output Play#0 1 Mobility of 7,1 changed from 0 to 127
     Play#0 output Play#0 6 0 640
     Play#0 input setsect mo 1,3 -2147483648
     Play#0 command setsector
     Play#0 output Play#0 6 0 640
     Play#0 input edit l 5,1 t 32767
     Play#0 command edit
-    Play#0 output Play#0 1 Plague time of 5,1 changed from 0 to 255
+    Play#0 output Play#0 1 Plague time of 5,1 changed from 0 to 32767
     Play#0 output Play#0 6 0 640
     Play#0 input edit l 7,1 t 32768
     Play#0 command edit
-    Play#0 output Play#0 1 Plague time of 7,1 changed from 0 to 255
+    Play#0 output Play#0 1 Plague time of 7,1 changed from 0 to 32767
     Play#0 output Play#0 6 0 640
     Play#0 input edit l 1,1 F 0
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit p 2 s -1 s 9999
     Play#0 command edit
+    Play#0 output Play#0 1 Usage: edit <country|land|ship|plane|unit> <NAT|SECT|SHIP|PLANE|LAND> [<KEY> <VALUE>]...
     Play#0 output Play#0 6 0 640
     Play#0 input edit p 3 s 3
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit u 2 S -1 S 9999
     Play#0 command edit
+    Play#0 output Play#0 1 Usage: edit <country|land|ship|plane|unit> <NAT|SECT|SHIP|PLANE|LAND> [<KEY> <VALUE>]...
     Play#0 output Play#0 6 0 640
     Play#0 input edit u 3 S 3
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 4 b 641
     Play#0 command edit
-    Play#0 output Play#0 1 BTU's changed from 0 to 641
+    Play#0 output Play#0 1 BTU's changed from 0 to 640
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 1 m 0
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 2 m -1
     Play#0 command edit
-    Play#0 output Play#0 1 Military reserves changed from 0 to -1
+    Play#0 output Play#0 1 Military reserves changed from 0 to 0
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 3 m 2147483647
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 3 T -1
     Play#0 command edit
-    Play#0 output Play#0 1 Tech changed from 0.00 to -1.00.
+    Play#0 output Play#0 1 Tech changed from 0.00 to 0.00.
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 1 R 3.14
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 3 R -1
     Play#0 command edit
-    Play#0 output Play#0 1 Research changed from 0.00 to -1.00.
+    Play#0 output Play#0 1 Research changed from 0.00 to 0.00.
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 1 E 3.14
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 3 E -1
     Play#0 command edit
-    Play#0 output Play#0 1 Education changed from 0.00 to -1.00.
+    Play#0 output Play#0 1 Education changed from 0.00 to 0.00.
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 1 H 3.14
     Play#0 command edit
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 3 H -1
     Play#0 command edit
-    Play#0 output Play#0 1 Happiness changed from 0.00 to -1.00.
+    Play#0 output Play#0 1 Happiness changed from 0.00 to 0.00.
     Play#0 output Play#0 6 0 640
     Play#0 input edit c 1 n POGO
     Play#0 command edit
     Play#0 output Play#0 1 Mobility in 1,1 was changed from 0 to -127 by an act of POGO
     Play#0 output Play#0 1 Mobility in 3,1 was changed from 0 to -127 by an act of POGO
     Play#0 output Play#0 1 Mobility in 5,1 was changed from 0 to 127 by an act of POGO
-    Play#0 output Play#0 1 Mobility in 7,1 was changed from 0 to 128 by an act of POGO
+    Play#0 output Play#0 1 Mobility in 7,1 was changed from 0 to 127 by an act of POGO
     Play#0 output Play#0 1 Iron ore content in 1,1 was changed from 0 to 0 by an act of POGO
     Play#0 output Play#0 1 Iron ore content in 3,1 was changed from 0 to 0 by an act of POGO
     Play#0 output Play#0 1 Iron ore content in 5,1 was changed from 0 to 127 by an act of POGO
     Play#0 output Play#0 1 cs   cargo ship (#2) given to you by deity intervention!
     Play#0 output Play#0 1 f1   Sopwith Camel #2 given to you by deity intervention!
     Play#0 output Play#0 1 sup  supply #2 given to you by deity intervention!
-    Play#0 output Play#0 1 Military reserves changed from 0 to -1 by divine intervention.
+    Play#0 output Play#0 1 Military reserves changed from 0 to 0 by divine intervention.
     Play#0 output Play#0 6 0 640
     Play#0 input read 3
     Play#0 command read
index f7ea409f6e1b7fd52cc695982f5c4c397617b401..ad2aae2fef5c9e665c2920c78bd6b7d3657e45ff 100644 (file)
@@ -10,11 +10,7 @@ tester@127.0.0.1 logged in as country #0
 Oops: id < 0 in ../src/lib/common/file.c:973
 Oops: id < 0 in ../src/lib/common/file.c:973
 Oops: id < 0 in ../src/lib/common/file.c:973
-Oops: item[i] < 0 in ../src/lib/subs/sect.c:98
-Oops: item[i] < 0 in ../src/lib/subs/sect.c:98
-Oops: new >= nclink[type] in ../src/lib/common/cargo.c:190
 Oops: ship >= 0 && land >= 0 in ../src/lib/subs/plane.c:77
-Oops: new >= nclink[type] in ../src/lib/common/cargo.c:190
 Oops: ship >= 0 && land >= 0 in ../src/lib/subs/land.c:78
 tester@127.0.0.1 logged out, country #0
 Shutdown commencing (cleaning up threads.)