config: Make work to build sectors configurable

Traditionally, building up 100% takes 100 work.  Make the work to
build configurable, via new sect-chr selector bwork, backed by new
struct dchrstr member d_bwork.  Keep the required work exactly the
same for now.

Tearing down sectors remains four times easier than building.

Clients that hardcode sector build work need to be updated.  Easy,
since build work is now exposed in xdump.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2016-06-05 22:49:07 +02:00
parent bb9619c053
commit 2ffd7b948d
6 changed files with 143 additions and 142 deletions

View file

@ -114,6 +114,7 @@ struct dchrstr {
int d_value; /* resale ("collect") value */ int d_value; /* resale ("collect") value */
short d_mat[I_MAX+1]; /* materials to build 100% */ short d_mat[I_MAX+1]; /* materials to build 100% */
/* only I_LCM and I_HCM non-zero */ /* only I_LCM and I_HCM non-zero */
int d_bwork; /* work to build 100% */
int d_cost; /* cost to build 100% */ int d_cost; /* cost to build 100% */
int d_maint; /* maintenance cost per ETU */ int d_maint; /* maintenance cost per ETU */
int d_maxpop; /* maximum population */ int d_maxpop; /* maximum population */

View file

@ -241,6 +241,7 @@ struct castr dchr_ca[] = {
{"dstr", fldoff(d_dstr), NSC_FLOAT, 0, NULL, EF_BAD, 0, CA_DUMP}, {"dstr", fldoff(d_dstr), NSC_FLOAT, 0, NULL, EF_BAD, 0, CA_DUMP},
{"value", fldoff(d_value), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP}, {"value", fldoff(d_value), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP},
NSC_MVEC(fldoff(d_mat), CA_DUMP_ONLY, CA_DUMP_ONLY, CA_DUMP_ONLY), NSC_MVEC(fldoff(d_mat), CA_DUMP_ONLY, CA_DUMP_ONLY, CA_DUMP_ONLY),
{"bwork", fldoff(d_bwork), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP},
{"cost", fldoff(d_cost), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP}, {"cost", fldoff(d_cost), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP},
{"maint", fldoff(d_maint), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP}, {"maint", fldoff(d_maint), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP},
{"maxpop", fldoff(d_maxpop), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP}, {"maxpop", fldoff(d_maxpop), NSC_INT, 0, NULL, EF_BAD, 0, CA_DUMP},

View file

@ -64,43 +64,43 @@
# econfig key custom_tables. # econfig key custom_tables.
config sect-chr config sect-chr
uid mnem prd peff val l_b h_b cost maint name ... uid mnem prd peff val l_b h_b bwork cost maint name ...
0 "." -1 0 0 0 0 0 0 "sea" 0 "." -1 0 0 0 0 0 0 0 "sea"
1 "^" dust 75 5 0 0 100 0 "mountain" 1 "^" dust 75 5 0 0 100 100 0 "mountain"
2 "s" -1 0 127 0 0 0 0 "sanctuary" 2 "s" -1 0 127 0 0 100 0 0 "sanctuary"
3 "\134" -1 0 0 0 0 0 0 "wasteland" 3 "\134" -1 0 0 0 0 100 0 0 "wasteland"
4 "-" -1 0 1 0 0 0 0 "wilderness" 4 "-" -1 0 1 0 0 100 0 0 "wilderness"
# Uncomment one of the following two. The second one is for big cities. # Uncomment one of the following two. The second one is for big cities.
5 "c" -1 0 30 0 0 100 1 "capital" 5 "c" -1 0 30 0 0 100 100 1 "capital"
# 5 "c" -1 0 30 100 200 1000 1 "city" # 5 "c" -1 0 30 100 200 100 1000 1 "city"
6 "u" rad 100 15 0 0 100 0 "uranium mine" 6 "u" rad 100 15 0 0 100 100 0 "uranium mine"
7 "p" hap 100 5 0 0 100 0 "park" 7 "p" hap 100 5 0 0 100 100 0 "park"
8 "d" gun 100 7 0 0 100 0 "defense plant" 8 "d" gun 100 7 0 0 100 100 0 "defense plant"
9 "i" sh 100 6 0 0 100 0 "shell industry" 9 "i" sh 100 6 0 0 100 100 0 "shell industry"
10 "m" iron 100 5 0 0 100 0 "mine" 10 "m" iron 100 5 0 0 100 100 0 "mine"
11 "g" dust 100 8 0 0 100 0 "gold mine" 11 "g" dust 100 8 0 0 100 100 0 "gold mine"
12 "h" -1 0 12 0 0 100 0 "harbor" 12 "h" -1 0 12 0 0 100 100 0 "harbor"
13 "w" -1 0 7 0 0 100 0 "warehouse" 13 "w" -1 0 7 0 0 100 100 0 "warehouse"
14 "*" -1 0 12 0 0 100 0 "airfield" 14 "*" -1 0 12 0 0 100 100 0 "airfield"
15 "a" food 900 2 0 0 100 0 "agribusiness" 15 "a" food 900 2 0 0 100 100 0 "agribusiness"
16 "o" oil 100 5 0 0 100 0 "oil field" 16 "o" oil 100 5 0 0 100 100 0 "oil field"
17 "j" lcm 100 3 0 0 100 0 "light manufacturing" 17 "j" lcm 100 3 0 0 100 100 0 "light manufacturing"
18 "k" hcm 100 4 0 0 100 0 "heavy manufacturing" 18 "k" hcm 100 4 0 0 100 100 0 "heavy manufacturing"
19 "f" -1 0 10 0 100 500 0 "fortress" 19 "f" -1 0 10 0 100 100 500 0 "fortress"
20 "t" tech 100 10 0 0 100 0 "technical center" 20 "t" tech 100 10 0 0 100 100 0 "technical center"
21 "r" med 100 9 0 0 100 0 "research lab" 21 "r" med 100 9 0 0 100 100 0 "research lab"
22 "n" -1 0 10 0 0 100 0 "nuclear plant" 22 "n" -1 0 10 0 0 100 100 0 "nuclear plant"
23 "l" edu 100 4 0 0 100 0 "library/school" 23 "l" edu 100 4 0 0 100 100 0 "library/school"
24 "+" -1 0 3 0 0 100 0 "highway" 24 "+" -1 0 3 0 0 100 100 0 "highway"
25 ")" -1 0 4 0 0 100 0 "radar installation" 25 ")" -1 0 4 0 0 100 100 0 "radar installation"
26 "!" -1 0 12 0 0 100 0 "headquarters" 26 "!" -1 0 12 0 0 100 100 0 "headquarters"
27 "#" -1 0 3 0 0 100 0 "bridge head" 27 "#" -1 0 3 0 0 100 100 0 "bridge head"
28 "=" -1 0 5 0 0 100 0 "bridge span" 28 "=" -1 0 5 0 0 100 100 0 "bridge span"
29 "b" bars 100 10 0 0 100 0 "bank" 29 "b" bars 100 10 0 0 100 100 0 "bank"
30 "%" pet 1000 2 0 0 100 0 "refinery" 30 "%" pet 1000 2 0 0 100 100 0 "refinery"
31 "e" -1 0 7 0 0 100 0 "enlistment center" 31 "e" -1 0 7 0 0 100 100 0 "enlistment center"
32 "~" -1 0 1 0 0 100 0 "plains" 32 "~" -1 0 1 0 0 100 100 0 "plains"
33 "@" -1 0 4 0 0 100 0 "bridge tower" 33 "@" -1 0 4 0 0 100 100 0 "bridge tower"
# Deity-defined sector types go here # Deity-defined sector types go here
/config /config

View file

@ -402,8 +402,8 @@ show_sect_build(int foo)
{ {
int i, first; int i, first;
pr(" build 100%% eff maint\n" pr(" build 100%% efficiency maint\n"
"sector type lcm hcm $ $\n"); "sector type lcm hcm avail $ $\n");
for (i = 0; dchr[i].d_name; i++) { for (i = 0; dchr[i].d_name; i++) {
if (dchr[i].d_mnem == 0) if (dchr[i].d_mnem == 0)
continue; continue;
@ -413,12 +413,13 @@ show_sect_build(int foo)
&& !dchr[i].d_mat[I_LCM] && !dchr[i].d_mat[I_HCM] && !dchr[i].d_mat[I_LCM] && !dchr[i].d_mat[I_HCM]
&& dchr[i].d_maint == 0) && dchr[i].d_maint == 0)
continue; /* the usual, skip */ continue; /* the usual, skip */
pr("%c %-21.21s %5d%5d %5d %5d\n", pr("%c %-21.21s %4d %4d %5d %5d %5d\n",
dchr[i].d_mnem, dchr[i].d_name, dchr[i].d_mnem, dchr[i].d_name,
dchr[i].d_mat[I_LCM], dchr[i].d_mat[I_HCM], dchr[i].d_cost, dchr[i].d_mat[I_LCM], dchr[i].d_mat[I_HCM],
dchr[i].d_bwork, dchr[i].d_cost,
dchr[i].d_maint * etu_per_update); dchr[i].d_maint * etu_per_update);
} }
pr("any other 0 0 100 0\n"); pr("any other 0 0 100 100 0\n");
first = 1; first = 1;
for (i = 0; intrchr[i].in_name; i++) { for (i = 0; intrchr[i].in_name; i++) {

View file

@ -47,46 +47,43 @@
int int
buildeff(struct sctstr *sp) buildeff(struct sctstr *sp)
{ {
int work_cost = 0; int avail = sp->sct_avail / 2 * 100;
int avail = sp->sct_avail; int cost;
int buildeff_work = avail / 2; int delta, build;
int cost, n, neweff, desig; struct dchrstr *dcp;
cost = 0; cost = 0;
neweff = sp->sct_effic;
if (sp->sct_type != sp->sct_newtype) { if (sp->sct_type != sp->sct_newtype) {
/* /*
* Tear down existing sector. * Tear down existing sector.
* Easier to destroy than to build. * Easier to destroy than to build.
*/ */
work_cost = (sp->sct_effic + 3) / 4; dcp = &dchr[sp->sct_type];
if (work_cost > buildeff_work) build = 4 * avail / dcp->d_bwork;
work_cost = buildeff_work; if (build <= sp->sct_effic)
buildeff_work -= work_cost; sp->sct_effic -= build;
n = sp->sct_effic - work_cost * 4; else {
if (n <= 0) { build = sp->sct_effic;
n = 0; sp->sct_effic = 0;
sp->sct_type = sp->sct_newtype; sp->sct_type = sp->sct_newtype;
} }
neweff = n; avail -= (build + 3) / 4 * dcp->d_bwork;
cost += work_cost; cost += (build + 3) / 4;
} }
desig = sp->sct_type; if (sp->sct_type == sp->sct_newtype) {
if (desig == sp->sct_newtype) { dcp = &dchr[sp->sct_type];
work_cost = 100 - neweff; delta = avail / dcp->d_bwork;
if (work_cost > buildeff_work) if (delta > 100 - sp->sct_effic)
work_cost = buildeff_work; delta = 100 - sp->sct_effic;
work_cost = get_materials(sp, dchr[sp->sct_type].d_mat, work_cost); build = get_materials(sp, dcp->d_mat, delta);
sp->sct_effic += build;
neweff += work_cost; avail -= build * dcp->d_bwork;
cost += (work_cost * dchr[desig].d_cost + 99) / 100; cost += (build * dcp->d_cost + 99) / 100;
buildeff_work -= work_cost;
} }
sp->sct_effic = neweff; sp->sct_avail = (sp->sct_avail + 1) / 2 + avail / 100;
sp->sct_avail = (avail + 1) / 2 + buildeff_work;
return cost; return cost;
} }

View file

@ -109,12 +109,12 @@
Play#0 input show sect b Play#0 input show sect b
Play#0 command show Play#0 command show
Play#0 output Play#0 1 Printing for tech level '1000' Play#0 output Play#0 1 Printing for tech level '1000'
Play#0 output Play#0 1 build 100% eff maint Play#0 output Play#0 1 build 100% efficiency maint
Play#0 output Play#0 1 sector type lcm hcm $ $ Play#0 output Play#0 1 sector type lcm hcm avail $ $
Play#0 output Play#0 1 - wilderness 0 0 0 0 Play#0 output Play#0 1 - wilderness 0 0 100 0 0
Play#0 output Play#0 1 c capital 0 0 100 60 Play#0 output Play#0 1 c capital 0 0 100 100 60
Play#0 output Play#0 1 f fortress 0 100 500 0 Play#0 output Play#0 1 f fortress 0 100 100 500 0
Play#0 output Play#0 1 any other 0 0 100 0 Play#0 output Play#0 1 any other 0 0 100 100 0
Play#0 output Play#0 1 Play#0 output Play#0 1
Play#0 output Play#0 1 Infrastructure building - adding 1 point of efficiency costs: Play#0 output Play#0 1 Infrastructure building - adding 1 point of efficiency costs:
Play#0 output Play#0 1 type lcms hcms mobility $$$$ Play#0 output Play#0 1 type lcms hcms mobility $$$$
@ -1014,11 +1014,12 @@
Play#0 output Play#0 1 "h_build" 6 0 0 -1 Play#0 output Play#0 1 "h_build" 6 0 0 -1
Play#0 output Play#0 1 "u_build" 6 0 0 -1 Play#0 output Play#0 1 "u_build" 6 0 0 -1
Play#0 output Play#0 1 "r_build" 6 0 0 -1 Play#0 output Play#0 1 "r_build" 6 0 0 -1
Play#0 output Play#0 1 "bwork" 8 0 0 -1
Play#0 output Play#0 1 "cost" 8 0 0 -1 Play#0 output Play#0 1 "cost" 8 0 0 -1
Play#0 output Play#0 1 "maint" 8 0 0 -1 Play#0 output Play#0 1 "maint" 8 0 0 -1
Play#0 output Play#0 1 "maxpop" 8 0 0 -1 Play#0 output Play#0 1 "maxpop" 8 0 0 -1
Play#0 output Play#0 1 "flags" 8 8 0 48 Play#0 output Play#0 1 "flags" 8 8 0 48
Play#0 output Play#0 1 /31 Play#0 output Play#0 1 /32
Play#0 output Play#0 6 0 640 Play#0 output Play#0 6 0 640
Play#0 input xdump meta 19 Play#0 input xdump meta 19
Play#0 command xdump Play#0 command xdump
@ -1561,40 +1562,40 @@
Play#0 input xdump sect-chr * Play#0 input xdump sect-chr *
Play#0 command xdump Play#0 command xdump
Play#0 output Play#0 1 XDUMP sect-chr 0 Play#0 output Play#0 1 XDUMP sect-chr 0
Play#0 output Play#0 1 0 "sea" "." 0 -1 0 -1.00000 -1.00000 1 1 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Play#0 output Play#0 1 0 "sea" "." 0 -1 0 -1.00000 -1.00000 1 1 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Play#0 output Play#0 1 1 "mountain" "^" 1 1 75 2.40000 1.20000 0 1 1.00000 4.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#0 output Play#0 1 1 "mountain" "^" 1 1 75 2.40000 1.20000 0 1 1.00000 4.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#0 output Play#0 1 2 "sanctuary" "s" 4 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 1 Play#0 output Play#0 1 2 "sanctuary" "s" 4 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 1000 1
Play#0 output Play#0 1 3 "wasteland" "\\134" 3 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Play#0 output Play#0 1 3 "wasteland" "\\134" 3 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 0 1
Play#0 output Play#0 1 4 "wilderness" "-" 4 -1 0 0.400000 0.400000 0 1 1.00000 2.00000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 Play#0 output Play#0 1 4 "wilderness" "-" 4 -1 0 0.400000 0.400000 0 1 1.00000 2.00000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 1000 0
Play#0 output Play#0 1 5 "capital" "c" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 1 1000 0 Play#0 output Play#0 1 5 "capital" "c" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 1 1000 0
Play#0 output Play#0 1 6 "uranium\\040mine" "u" 4 4 100 0.400000 0.200000 0 1 1.00000 2.00000 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 6 "uranium\\040mine" "u" 4 4 100 0.400000 0.200000 0 1 1.00000 2.00000 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 7 "park" "p" 4 14 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 7 "park" "p" 4 14 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 8 "defense\\040plant" "d" 4 6 100 0.400000 0.200000 0 1 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 8 "defense\\040plant" "d" 4 6 100 0.400000 0.200000 0 1 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 9 "shell\\040industry" "i" 4 5 100 0.400000 0.200000 0 1 1.00000 1.50000 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 9 "shell\\040industry" "i" 4 5 100 0.400000 0.200000 0 1 1.00000 1.50000 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 10 "mine" "m" 4 0 100 0.400000 0.200000 0 1 1.00000 2.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 10 "mine" "m" 4 0 100 0.400000 0.200000 0 1 1.00000 2.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 11 "gold\\040mine" "g" 4 1 100 0.400000 0.200000 0 1 1.00000 2.00000 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 11 "gold\\040mine" "g" 4 1 100 0.400000 0.200000 0 1 1.00000 2.00000 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 12 "harbor" "h" 4 -1 0 0.400000 0.200000 2 2 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 12 "harbor" "h" 4 -1 0 0.400000 0.200000 2 2 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 13 "warehouse" "w" 4 -1 0 0.400000 0.200000 0 2 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 13 "warehouse" "w" 4 -1 0 0.400000 0.200000 0 2 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 14 "airfield" "*" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.25000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 14 "airfield" "*" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.25000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 15 "agribusiness" "a" 4 2 900 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 15 "agribusiness" "a" 4 2 900 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 16 "oil\\040field" "o" 4 3 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 16 "oil\\040field" "o" 4 3 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 17 "light\\040manufacturing" "j" 4 9 100 0.400000 0.200000 0 1 1.00000 1.50000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 17 "light\\040manufacturing" "j" 4 9 100 0.400000 0.200000 0 1 1.00000 1.50000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 18 "heavy\\040manufacturing" "k" 4 10 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 18 "heavy\\040manufacturing" "k" 4 10 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 19 "fortress" "f" 4 -1 0 0.400000 0.200000 0 1 2.00000 4.00000 10 0 0 0 0 0 0 0 0 0 0 0 100 0 0 500 0 1000 0 Play#0 output Play#0 1 19 "fortress" "f" 4 -1 0 0.400000 0.200000 0 1 2.00000 4.00000 10 0 0 0 0 0 0 0 0 0 0 0 100 0 0 100 500 0 1000 0
Play#0 output Play#0 1 20 "technical\\040center" "t" 4 11 100 0.400000 0.200000 0 1 1.00000 1.50000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 20 "technical\\040center" "t" 4 11 100 0.400000 0.200000 0 1 1.00000 1.50000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 21 "research\\040lab" "r" 4 12 100 0.400000 0.200000 0 1 1.00000 1.50000 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 21 "research\\040lab" "r" 4 12 100 0.400000 0.200000 0 1 1.00000 1.50000 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 22 "nuclear\\040plant" "n" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 22 "nuclear\\040plant" "n" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 23 "library/school" "l" 4 13 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 23 "library/school" "l" 4 13 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 24 "highway" "+" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 24 "highway" "+" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 25 "radar\\040installation" ")" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 25 "radar\\040installation" ")" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 26 "headquarters" "!" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 26 "headquarters" "!" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 27 "bridge\\040head" "#" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 27 "bridge\\040head" "#" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 28 "bridge\\040span" "=" 0 -1 0 0.400000 0.00000 4 1 1.00000 1.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#0 output Play#0 1 28 "bridge\\040span" "=" 0 -1 0 0.400000 0.00000 4 1 1.00000 1.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#0 output Play#0 1 29 "bank" "b" 4 8 100 0.400000 0.200000 0 4 1.00000 2.25000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 29 "bank" "b" 4 8 100 0.400000 0.200000 0 4 1.00000 2.25000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 30 "refinery" "%" 4 7 1000 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 30 "refinery" "%" 4 7 1000 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 31 "enlistment\\040center" "e" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#0 output Play#0 1 31 "enlistment\\040center" "e" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#0 output Play#0 1 32 "plains" "~" 32 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#0 output Play#0 1 32 "plains" "~" 32 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#0 output Play#0 1 33 "bridge\\040tower" "@" 0 -1 0 0.400000 0.00000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#0 output Play#0 1 33 "bridge\\040tower" "@" 0 -1 0 0.400000 0.00000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#0 output Play#0 1 /34 Play#0 output Play#0 1 /34
Play#0 output Play#0 6 0 640 Play#0 output Play#0 6 0 640
Play#0 input xdump ship-chr * Play#0 input xdump ship-chr *
@ -2287,40 +2288,40 @@
Play#1 input xdump sect-chr * Play#1 input xdump sect-chr *
Play#1 command xdump Play#1 command xdump
Play#1 output Play#1 1 XDUMP sect-chr 0 Play#1 output Play#1 1 XDUMP sect-chr 0
Play#1 output Play#1 1 0 "sea" "." 0 -1 0 -1.00000 -1.00000 1 1 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Play#1 output Play#1 1 0 "sea" "." 0 -1 0 -1.00000 -1.00000 1 1 0.00000 0.00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Play#1 output Play#1 1 1 "mountain" "^" 1 1 75 2.40000 1.20000 0 1 1.00000 4.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#1 output Play#1 1 1 "mountain" "^" 1 1 75 2.40000 1.20000 0 1 1.00000 4.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#1 output Play#1 1 2 "sanctuary" "s" 4 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 1 Play#1 output Play#1 1 2 "sanctuary" "s" 4 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 1000 1
Play#1 output Play#1 1 3 "wasteland" "\\134" 3 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Play#1 output Play#1 1 3 "wasteland" "\\134" 3 -1 0 -1.00000 -1.00000 0 1 0.00000 99.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 0 1
Play#1 output Play#1 1 4 "wilderness" "-" 4 -1 0 0.400000 0.400000 0 1 1.00000 2.00000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 Play#1 output Play#1 1 4 "wilderness" "-" 4 -1 0 0.400000 0.400000 0 1 1.00000 2.00000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 1000 0
Play#1 output Play#1 1 5 "capital" "c" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 1 1000 0 Play#1 output Play#1 1 5 "capital" "c" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 1 1000 0
Play#1 output Play#1 1 6 "uranium\\040mine" "u" 4 4 100 0.400000 0.200000 0 1 1.00000 2.00000 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 6 "uranium\\040mine" "u" 4 4 100 0.400000 0.200000 0 1 1.00000 2.00000 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 7 "park" "p" 4 14 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 7 "park" "p" 4 14 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 8 "defense\\040plant" "d" 4 6 100 0.400000 0.200000 0 1 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 8 "defense\\040plant" "d" 4 6 100 0.400000 0.200000 0 1 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 9 "shell\\040industry" "i" 4 5 100 0.400000 0.200000 0 1 1.00000 1.50000 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 9 "shell\\040industry" "i" 4 5 100 0.400000 0.200000 0 1 1.00000 1.50000 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 10 "mine" "m" 4 0 100 0.400000 0.200000 0 1 1.00000 2.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 10 "mine" "m" 4 0 100 0.400000 0.200000 0 1 1.00000 2.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 11 "gold\\040mine" "g" 4 1 100 0.400000 0.200000 0 1 1.00000 2.00000 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 11 "gold\\040mine" "g" 4 1 100 0.400000 0.200000 0 1 1.00000 2.00000 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 12 "harbor" "h" 4 -1 0 0.400000 0.200000 2 2 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 12 "harbor" "h" 4 -1 0 0.400000 0.200000 2 2 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 13 "warehouse" "w" 4 -1 0 0.400000 0.200000 0 2 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 13 "warehouse" "w" 4 -1 0 0.400000 0.200000 0 2 1.00000 1.50000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 14 "airfield" "*" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.25000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 14 "airfield" "*" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.25000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 15 "agribusiness" "a" 4 2 900 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 15 "agribusiness" "a" 4 2 900 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 16 "oil\\040field" "o" 4 3 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 16 "oil\\040field" "o" 4 3 100 0.400000 0.200000 0 1 1.00000 1.50000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 17 "light\\040manufacturing" "j" 4 9 100 0.400000 0.200000 0 1 1.00000 1.50000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 17 "light\\040manufacturing" "j" 4 9 100 0.400000 0.200000 0 1 1.00000 1.50000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 18 "heavy\\040manufacturing" "k" 4 10 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 18 "heavy\\040manufacturing" "k" 4 10 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 19 "fortress" "f" 4 -1 0 0.400000 0.200000 0 1 2.00000 4.00000 10 0 0 0 0 0 0 0 0 0 0 0 100 0 0 500 0 1000 0 Play#1 output Play#1 1 19 "fortress" "f" 4 -1 0 0.400000 0.200000 0 1 2.00000 4.00000 10 0 0 0 0 0 0 0 0 0 0 0 100 0 0 100 500 0 1000 0
Play#1 output Play#1 1 20 "technical\\040center" "t" 4 11 100 0.400000 0.200000 0 1 1.00000 1.50000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 20 "technical\\040center" "t" 4 11 100 0.400000 0.200000 0 1 1.00000 1.50000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 21 "research\\040lab" "r" 4 12 100 0.400000 0.200000 0 1 1.00000 1.50000 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 21 "research\\040lab" "r" 4 12 100 0.400000 0.200000 0 1 1.00000 1.50000 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 22 "nuclear\\040plant" "n" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 22 "nuclear\\040plant" "n" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 23 "library/school" "l" 4 13 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 23 "library/school" "l" 4 13 100 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 24 "highway" "+" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 24 "highway" "+" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 25 "radar\\040installation" ")" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 25 "radar\\040installation" ")" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 26 "headquarters" "!" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 26 "headquarters" "!" 4 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 27 "bridge\\040head" "#" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 27 "bridge\\040head" "#" 4 -1 0 0.400000 0.00000 0 1 1.00000 1.00000 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 28 "bridge\\040span" "=" 0 -1 0 0.400000 0.00000 4 1 1.00000 1.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#1 output Play#1 1 28 "bridge\\040span" "=" 0 -1 0 0.400000 0.00000 4 1 1.00000 1.00000 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#1 output Play#1 1 29 "bank" "b" 4 8 100 0.400000 0.200000 0 4 1.00000 2.25000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 29 "bank" "b" 4 8 100 0.400000 0.200000 0 4 1.00000 2.25000 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 30 "refinery" "%" 4 7 1000 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 30 "refinery" "%" 4 7 1000 0.400000 0.200000 0 1 1.00000 1.50000 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 31 "enlistment\\040center" "e" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 1000 0 Play#1 output Play#1 1 31 "enlistment\\040center" "e" 4 -1 0 0.400000 0.200000 0 1 1.00000 2.00000 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 1000 0
Play#1 output Play#1 1 32 "plains" "~" 32 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#1 output Play#1 1 32 "plains" "~" 32 -1 0 0.400000 0.200000 0 1 1.00000 1.50000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#1 output Play#1 1 33 "bridge\\040tower" "@" 0 -1 0 0.400000 0.00000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 100 1 Play#1 output Play#1 1 33 "bridge\\040tower" "@" 0 -1 0 0.400000 0.00000 0 1 1.00000 1.50000 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 0 100 1
Play#1 output Play#1 1 /34 Play#1 output Play#1 1 /34
Play#1 output Play#1 6 0 0 Play#1 output Play#1 6 0 0
Play#1 input xdump ship-chr * Play#1 input xdump ship-chr *