From f3cb215e1f09840bb9e955693edec819be28f0a0 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 29 Mar 2013 19:34:12 +0100 Subject: [PATCH] edit: Generalize edit to multiple objects Accept general argument instead of just . edit with ... arguments applies the arguments to all selected objects. Without such arguments, edit lets you edit the selected objects interactively one after the other. Signed-off-by: Markus Armbruster --- info/edit.t | 12 ++- src/lib/commands/edit.c | 181 ++++++++++++++++------------------ src/lib/player/empmod.c | 2 +- tests/actofgod/actofgod.xdump | 6 +- tests/actofgod/geninput.pl | 4 +- tests/actofgod/init_script | 6 +- tests/actofgod/journal.log | 87 ++++++++++------ 7 files changed, 155 insertions(+), 143 deletions(-) diff --git a/info/edit.t b/info/edit.t index ec2784e50..51b427e6f 100644 --- a/info/edit.t +++ b/info/edit.t @@ -1,9 +1,13 @@ .TH Command EDIT -.NA edit "Edit country, sector, ship, plane or land unit" +.NA edit "Edit sectors, ships, planes, land units or countries" .LV Expert -.SY "edit [ ]..." -The \*Qedit\*U command allows deities to edit properties of a country, -sector (confusingly called here), ship, plane or land unit. +.SY "edit land [ ]..." +.SY "edit ship [ ]..." +.SY "edit plane [ ]..." +.SY "edit unit [ ]..." +.SY "edit country [ ]..." +The \*Qedit\*U command allows deities to edit properties of a sector +(confusingly called here), ship, plane, land unit, or country. .s1 If you don't specify any pair, \*Qedit\*U enters interactive mode. Editable properties are shown together with their diff --git a/src/lib/commands/edit.c b/src/lib/commands/edit.c index 7258bd0ca..dacf508fc 100644 --- a/src/lib/commands/edit.c +++ b/src/lib/commands/edit.c @@ -65,134 +65,123 @@ edit(void) { union empobj_storage item; char *what; + struct nstr_item ni; char *key, *ptr; - int num; - int ret; - int arg_index = 3; - coord x, y; struct natstr *np; + int type, arg_index, ret; char buf[1024]; - char ewhat; what = getstarg(player->argp[1], "Edit what (country, land, ship, plane, nuke, unit)? ", buf); if (!what) return RET_SYN; - ewhat = what[0]; - switch (ewhat) { + switch (what[0]) { case 'l': - if (!(ptr = getstarg(player->argp[2], "Sector : ", buf))) - return RET_FAIL; - if (!sarg_xy(ptr, &x, &y)) - return RET_FAIL; - if (!getsect(x, y, &item.sect)) - return RET_FAIL; - break; - case 'c': - np = natargp(player->argp[2], "Country? "); - if (!np) - return RET_SYN; - item.nat = *np; + type = EF_SECTOR; break; case 'p': - if ((num = onearg(player->argp[2], "Plane number? ")) < 0) - return RET_SYN; - if (!getplane(num, &item.plane)) - return RET_SYN; + type = EF_PLANE; break; case 's': - if ((num = onearg(player->argp[2], "Ship number? ")) < 0) - return RET_SYN; - if (!getship(num, &item.ship)) - return RET_SYN; + type = EF_SHIP; break; case 'u': - if ((num = onearg(player->argp[2], "Unit number? ")) < 0) - return RET_SYN; - if (!getland(num, &item.land)) - return RET_SYN; + type = EF_LAND; break; case 'n': pr("Not implemented yet.\n"); return RET_FAIL; + case 'c': + type = EF_NATION; + break; default: pr("huh?\n"); return RET_SYN; } - if (!player->argp[3]) { - switch (ewhat) { - case 'l': - print_sect(&item.sect); - break; - case 'c': - print_nat(np); - break; - case 'p': - print_plane(&item.plane); - break; - case 's': - print_ship(&item.ship); - break; - case 'u': - print_land(&item.land); - break; - default: - CANT_REACH(); + + if (!snxtitem(&ni, type, player->argp[2], NULL)) + return RET_SYN; + while (nxtitem(&ni, &item)) { + if (!player->argp[3]) { + switch (type) { + case EF_SECTOR: + print_sect(&item.sect); + break; + case EF_SHIP: + print_ship(&item.ship); + break; + case EF_PLANE: + print_plane(&item.plane); + break; + case EF_LAND: + print_land(&item.land); + break; + case EF_NATION: + print_nat(&item.nat); + break; + default: + CANT_REACH(); + } } - } - for (;;) { - if (player->argp[arg_index]) { - if (player->argp[arg_index+1]) { - key = player->argp[arg_index++]; - ptr = player->argp[arg_index++]; + + arg_index = 3; + for (;;) { + if (player->argp[arg_index]) { + if (player->argp[arg_index+1]) { + key = player->argp[arg_index++]; + ptr = player->argp[arg_index++]; + } else + return RET_SYN; + } else if (arg_index == 3) { + key = getin(buf, &ptr); + if (!key) + return RET_SYN; + if (!*key) + break; } else - return RET_SYN; - } else if (arg_index == 3) { - key = getin(buf, &ptr); - if (!key) - return RET_SYN; - if (!*key) - return RET_OK; - } else - return RET_OK; + break; - if (!check_obj_ok(&item.gen)) - return RET_FAIL; - switch (ewhat) { - case 'c': - /* - * edit_nat() may update the edited country by sending it - * bulletins. Writing back item.nat would trigger a seqno - * mismatch oops. Workaround: edit in-place. - */ - ret = edit_nat(np, key, ptr); + if (!check_obj_ok(&item.gen)) + return RET_FAIL; + switch (type) { + case EF_NATION: + /* + * edit_nat() may update the edited country by sending + * it bulletins. Writing back item.nat would trigger + * a seqno mismatch oops. Workaround: edit in-place. + */ + np = getnatp(item.nat.nat_cnum); + ret = edit_nat(np, key, ptr); + if (ret != RET_OK) + return ret; + if (!putnat(np)) + return RET_FAIL; + item.nat = *np; + continue; + case EF_SECTOR: + ret = edit_sect(&item.sect, key, ptr); + break; + case EF_SHIP: + ret = edit_ship(&item.ship, key, ptr); + break; + case EF_LAND: + ret = edit_land(&item.land, key, ptr); + break; + case EF_PLANE: + ret = edit_plane(&item.plane, key, ptr); + break; + default: + CANT_REACH(); + } if (ret != RET_OK) return ret; - if (!putnat(np)) + if (!put_empobj(type, item.gen.uid, &item.gen)) return RET_FAIL; - item.nat = *np; - continue; - case 'l': - ret = edit_sect(&item.sect, key, ptr); - break; - case 's': - ret = edit_ship(&item.ship, key, ptr); - break; - case 'u': - ret = edit_land(&item.land, key, ptr); - break; - case 'p': - ret = edit_plane(&item.plane, key, ptr); - break; - default: - CANT_REACH(); } - if (ret != RET_OK) - return ret; - if (!put_empobj(item.gen.ef_type, item.gen.uid, &item.gen)) - return RET_FAIL; } + + return RET_OK; } static void diff --git a/src/lib/player/empmod.c b/src/lib/player/empmod.c index 4f17df558..a01b34aad 100644 --- a/src/lib/player/empmod.c +++ b/src/lib/player/empmod.c @@ -99,7 +99,7 @@ struct cmndstr player_coms[] = { 1, drop, C_MOD, NORM + MONEY + CAP}, {"dump []", 0, dump, 0, NORM}, {"echo []", 0, echo, 0, 0}, - {"edit [ ]...", + {"edit [ ]...", 0, edit, C_MOD, GOD}, {"enable", 0, enab, C_MOD, GOD}, {"enlist ", 2, enli, C_MOD, NORM + MONEY + CAP}, diff --git a/tests/actofgod/actofgod.xdump b/tests/actofgod/actofgod.xdump index 93d90c2df..24d8d48db 100644 --- a/tests/actofgod/actofgod.xdump +++ b/tests/actofgod/actofgod.xdump @@ -63,8 +63,8 @@ owner xloc yloc des effic mobil off loyal terr0 terr1 terr2 terr3 dterr xdist yd 1 1 5 4 0 1 0 0 0 0 0 0 0 1 5 1 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 3 5 4 0 2 0 0 0 0 0 0 0 3 5 1 0 100 0 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 5 4 0 0 0 0 0 0 0 0 0 5 5 0 0 100 0 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 7 5 4 0 0 0 0 0 0 0 0 0 7 5 0 0 100 0 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 9 5 4 0 0 0 0 0 0 0 0 0 9 5 0 0 100 0 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 7 5 4 1 0 0 0 0 0 0 0 0 7 5 0 0 100 0 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 9 5 4 2 0 0 0 0 0 0 0 0 9 5 0 0 100 0 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 5 4 0 0 0 0 0 0 0 0 0 11 5 0 0 100 0 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 5 4 0 0 0 0 0 0 0 0 0 -11 5 0 0 100 0 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 2 -9 5 4 0 0 0 0 0 0 0 0 0 -9 5 0 0 100 0 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 @@ -367,7 +367,7 @@ actor action victim times duration time 0 44 1 32 0 0 0 43 2 5 0 0 0 44 3 19 0 0 -0 43 1 71 0 0 +0 43 1 73 0 0 0 42 1 4 0 0 1 45 0 1 0 0 0 43 3 30 0 0 diff --git a/tests/actofgod/geninput.pl b/tests/actofgod/geninput.pl index 05755f243..2620c0fbd 100755 --- a/tests/actofgod/geninput.pl +++ b/tests/actofgod/geninput.pl @@ -205,9 +205,8 @@ edit('sect', '4,4', 'D', '4,4'); # des newdes for my $key ('s', 'S') { + edit('sect', '6:8,4', $key, '+'); edit('sect', '6,4', $key, '+'); - edit('sect', '6,4', $key, '+'); - edit('sect', '8,4', $key, '+'); edit('sect', '8,4', $key, ','); } @@ -217,6 +216,7 @@ edit('sect', '1,5', 'm', 1, 'a', 1); # interactive edit iedit('sect', '3,5', 'm 2', 'a 1'); iedit('sect', '5,5', ' '); +iedit('sect', '7:9,5', 'e 1', '', 'e 2'); # give give('2,6', 'l', $INT_MIN); diff --git a/tests/actofgod/init_script b/tests/actofgod/init_script index fa5ba82ff..8b4ed96a5 100644 --- a/tests/actofgod/init_script +++ b/tests/actofgod/init_script @@ -29,8 +29,4 @@ buil p 1,-1 f1 5 100 des 1,-1 ! buil l 1,-1 sup 5 100 edit l 3,-1 L 1,-1 -edit c 1 t 0 s 4 -edit c 2 t 0 s 4 -edit c 3 t 0 s 4 -edit c 4 t 0 s 4 -edit c 5 t 0 s 4 +edit c 1/2/3/4/5 t 0 s 4 diff --git a/tests/actofgod/journal.log b/tests/actofgod/journal.log index f6de73097..15f848d8f 100644 --- a/tests/actofgod/journal.log +++ b/tests/actofgod/journal.log @@ -20,7 +20,7 @@ Play#0 input edit l 0,0 @ 0 Play#0 command edit Play#0 output Play#0 1 huh? (@) - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input setres @ 0,0 0 Play#0 command setresource @@ -43,7 +43,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 1,7 o -1 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 3,7 o 98 Play#0 command edit @@ -51,7 +51,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 3,7 o 99 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 1,7 O 0 Play#0 command edit @@ -59,7 +59,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 1,7 O -1 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 3,7 O 98 Play#0 command edit @@ -67,7 +67,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 3,7 O 99 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 1,7 X 0 Play#0 command edit @@ -75,7 +75,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 1,7 X -1 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 3,7 X 98 Play#0 command edit @@ -83,7 +83,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 3,7 X 99 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 5,7 o 2 Play#0 command edit @@ -132,7 +132,7 @@ Play#0 input edit l 3,-7 L 3,-7 L 1,0 Play#0 command edit Play#0 output Play#0 1 Sector 3,-7 unchanged - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 1,1 e 0 Play#0 command edit @@ -715,37 +715,31 @@ Play#0 command edit Play#0 output Play#0 1 Distribution sector of 4,4 unchanged Play#0 output Play#0 6 0 640 - Play#0 input edit l 6,4 s + + Play#0 input edit l 6:8,4 s + Play#0 command edit Play#0 output Play#0 1 Designation of 6,4 changed from - to + + Play#0 output Play#0 1 Designation of 8,4 changed from - to + Play#0 output Play#0 6 0 640 Play#0 input edit l 6,4 s + Play#0 command edit Play#0 output Play#0 1 Designation of 6,4 unchanged Play#0 output Play#0 6 0 640 - Play#0 input edit l 8,4 s + - Play#0 command edit - Play#0 output Play#0 1 Designation of 8,4 changed from - to + - Play#0 output Play#0 6 0 640 Play#0 input edit l 8,4 s , Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 - Play#0 input edit l 6,4 S + + Play#0 input edit l 6:8,4 S + Play#0 command edit Play#0 output Play#0 1 New designation of 6,4 changed from - to + + Play#0 output Play#0 1 New designation of 8,4 changed from - to + Play#0 output Play#0 6 0 640 Play#0 input edit l 6,4 S + Play#0 command edit Play#0 output Play#0 1 New designation of 6,4 unchanged Play#0 output Play#0 6 0 640 - Play#0 input edit l 8,4 S + - Play#0 command edit - Play#0 output Play#0 1 New designation of 8,4 changed from - to + - Play#0 output Play#0 6 0 640 Play#0 input edit l 8,4 S , Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit l 1,5 m 1 a 1 Play#0 command edit @@ -784,6 +778,33 @@ Play#0 output Play#0 6 0 640 Play#0 input Play#0 output Play#0 6 0 640 + Play#0 input edit l 7:9,5 + Play#0 command edit + Play#0 output Play#0 1 Location : 7,5 Distribution sector : 7,5 + Play#0 output Play#0 1 Designation : - New designation : - + Play#0 output Play#0 1 own oo eff mob min gld frt oil urn wrk lty che ctg plg ptime fall avail + Play#0 output Play#0 1 o O e m i g f c u w l x X p t F a + Play#0 output Play#0 1 1 1 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 + Play#0 output Play#0 1 Mines : 0 + Play#0 output Play#0 1 Road % : 0 Rail % : 0 Defense % : 0 + Play#0 output Play#0 4 %c xxxxx -- thing value : + Play#0 input e 1 + Play#0 output Play#0 1 Efficiency of 7,5 changed from 0 to 1 + Play#0 output Play#0 4 %c xxxxx -- thing value : + Play#0 input + Play#0 output Play#0 1 Location : 9,5 Distribution sector : 9,5 + Play#0 output Play#0 1 Designation : - New designation : - + Play#0 output Play#0 1 own oo eff mob min gld frt oil urn wrk lty che ctg plg ptime fall avail + Play#0 output Play#0 1 o O e m i g f c u w l x X p t F a + Play#0 output Play#0 1 1 1 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 + Play#0 output Play#0 1 Mines : 0 + Play#0 output Play#0 1 Road % : 0 Rail % : 0 Defense % : 0 + Play#0 output Play#0 4 %c xxxxx -- thing value : + Play#0 input e 2 + Play#0 output Play#0 1 Efficiency of 9,5 changed from 0 to 2 + Play#0 output Play#0 4 %c xxxxx -- thing value : + Play#0 input + Play#0 output Play#0 6 0 640 Play#0 input give l 2,6 -2147483648 Play#0 command give Play#0 output Play#0 1 Only 0 given in 2,6 @@ -825,7 +846,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit s 0 O -1 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit s 1 O 98 Play#0 command edit @@ -833,7 +854,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit s 1 O 99 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit s 2 O 2 Play#0 command edit @@ -848,7 +869,7 @@ Play#0 input edit s 0 U 0 U -1 Play#0 command edit Play#0 output Play#0 1 cs cargo ship (#0) unchanged - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit s 2 L 3,-1 Play#0 command edit @@ -869,7 +890,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit p 0 O -1 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit p 1 O 98 Play#0 command edit @@ -877,7 +898,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit p 1 O 99 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit p 2 O 2 Play#0 command edit @@ -892,7 +913,7 @@ Play#0 input edit p 0 U 0 U -1 Play#0 command edit Play#0 output Play#0 1 f1 Sopwith Camel #0 unchanged - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit p 2 l 3,-1 Play#0 command edit @@ -913,7 +934,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit u 0 O -1 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit u 1 O 98 Play#0 command edit @@ -921,7 +942,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit u 1 O 99 Play#0 command edit - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit u 2 O 2 Play#0 command edit @@ -936,7 +957,7 @@ Play#0 input edit u 0 U 0 U -1 Play#0 command edit Play#0 output Play#0 1 sup supply #0 unchanged - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit u 2 L 3,-1 Play#0 command edit @@ -1271,7 +1292,7 @@ Play#0 input edit p 2 s -1 s 9999 Play#0 command edit Play#0 output Play#0 1 Ship of f1 Sopwith Camel #2 unchanged - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit p 3 s 3 Play#0 command edit @@ -1286,7 +1307,7 @@ Play#0 input edit u 2 S -1 S 9999 Play#0 command edit Play#0 output Play#0 1 Ship of sup supply #2 unchanged - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit u 3 S 3 Play#0 command edit @@ -1509,7 +1530,7 @@ Play#0 input edit c 1 n POGO Play#0 command edit Play#0 output Play#0 1 Country #0 is already called `POGO' - Play#0 output Play#0 1 Usage: edit [ ]... + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit c 2 n 2 Play#0 command edit @@ -1691,6 +1712,8 @@ Play#0 output Play#0 1 Available workforce of 1,5 changed from 0 to 1 by an act of POGO Play#0 output Play#0 1 Mobility of 3,5 changed from 0 to 2 by an act of POGO Play#0 output Play#0 1 Available workforce of 3,5 changed from 0 to 1 by an act of POGO + Play#0 output Play#0 1 Efficiency of 7,5 changed from 0 to 1 by an act of POGO + Play#0 output Play#0 1 Efficiency of 9,5 changed from 0 to 2 by an act of POGO Play#0 output Play#0 1 POGO gave you 1 civilians in 4,6 Play#0 output Play#0 1 POGO gave you 1 civilians in 6,6 Play#0 output Play#0 1 POGO gave you 1 civilians in 8,6 -- 2.43.0