From 68c7c08a5890a75476d014f3b782c1a165a4c940 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 27 May 2016 13:39:11 +0200 Subject: [PATCH] config: Make work to build units independently configurable The work required for build and repairs is traditionally a function of build materials: 20 + lcm + 2*hcm for ships, planes and land units, and (lcm + 2*hcm + oil + rad)/5 for nukes. Make it independently configurable instead, via new ship-chr, plane-chr, land-chr, nuke-chr selector bwork, backed by new struct mchrstr member m_bwork, struct plchrstr member pl_bwork, struct lchrstr member l_bwork, struct nchrstr member n_bwork. Keep the required work exactly the same for now. Clients that compute work from materials need to be updated. Easy, since build work is now exposed in xdump. Signed-off-by: Markus Armbruster --- include/land.h | 6 +- include/nuke.h | 8 +- include/plane.h | 8 +- include/ship.h | 6 +- info/build.t | 17 -- src/lib/commands/buil.c | 26 +- src/lib/commands/upgr.c | 7 +- src/lib/common/nsc.c | 10 +- src/lib/global/land.config | 48 ++-- src/lib/global/nuke.config | 30 +-- src/lib/global/plane.config | 74 +++--- src/lib/global/ship.config | 78 +++--- src/lib/subs/show.c | 12 +- src/lib/update/land.c | 8 +- src/lib/update/plane.c | 8 +- src/lib/update/ship.c | 9 +- tests/empdump/errors.err | 3 +- tests/empdump/xundump-errors/fld-ambsym | 2 +- tests/version/journal.log | 310 ++++++++++++------------ 19 files changed, 319 insertions(+), 351 deletions(-) diff --git a/include/land.h b/include/land.h index a75df6162..2f9d3e953 100644 --- a/include/land.h +++ b/include/land.h @@ -30,7 +30,7 @@ * Thomas Ruschak, 1992 * Ken Stevens, 1995 * Steve McClure, 1998 - * Markus Armbruster, 2004-2015 + * Markus Armbruster, 2004-2016 */ #ifndef LAND_H @@ -86,6 +86,7 @@ struct lchrstr { int l_mil; /* how many mil it takes to build (unused) */ int l_gun; /* how many guns it takes to build (unused) */ int l_shell; /* #shells it takes to build (unused) */ + int l_bwork; /* work to build 100% */ int l_tech; /* tech required to build */ int l_cost; /* how much it costs to build */ float l_att; /* attack multiplier */ @@ -120,9 +121,6 @@ struct lchrstr { #define L_TRAIN bit(11) /* train unit - neato */ #define L_HEAVY bit(12) /* heavy unit - can't go on trains */ -/* Work required for building 100% */ -#define LND_BLD_WORK(lcm, hcm) (20 + (lcm) + 2 * (hcm)) - /* Chance to detect L_SPY unit (percent) */ #define LND_SPY_DETECT_CHANCE(eff) ((110-(eff))/100.0) diff --git a/include/nuke.h b/include/nuke.h index 84eff0b72..51c1a0501 100644 --- a/include/nuke.h +++ b/include/nuke.h @@ -28,6 +28,7 @@ * * Known contributors to this file: * Dave Pare, 1986 + * Markus Armbruster, 2004-2016 */ #ifndef NUKE_H @@ -69,8 +70,9 @@ struct nchrstr { int n_rad; int n_blast; /* blast radius */ int n_dam; /* damage at center */ - int n_cost; + int n_bwork; /* work to build 100% */ int n_tech; /* tech needed to build */ + int n_cost; /* how much it costs to build */ int n_weight; int n_flags; /* description of capability */ signed char n_type; /* index in nchr[] */ @@ -82,10 +84,6 @@ struct nchrstr { #define putnuke(n, p) ef_write(EF_NUKE, (n), (p)) #define getnukep(n) ((struct nukstr *)ef_ptr(EF_NUKE, (n))) -/* Work required for building */ -#define NUK_BLD_WORK(lcm, hcm, oil, rad) \ - (((lcm) + 2 * (hcm) + (oil) + (rad) + 4) / 5) - extern struct nchrstr nchr[N_MAXNUKE + 1]; /* src/lib/common/cargo.c */ diff --git a/include/plane.h b/include/plane.h index 02027c755..2a66decbb 100644 --- a/include/plane.h +++ b/include/plane.h @@ -30,7 +30,7 @@ * Dave Pare, 1986 * Ken Stevens, 1995 * Steve McClure, 1998 - * Markus Armbruster, 2004-2013 + * Markus Armbruster, 2004-2016 */ #ifndef PLANE_H @@ -81,8 +81,9 @@ struct plchrstr { char *pl_name; /* full name of type of plane */ int pl_lcm; /* costs to build */ int pl_hcm; - int pl_cost; + int pl_bwork; /* work to build 100% */ int pl_tech; /* tech needed to build */ + int pl_cost; /* how much it costs to build */ int pl_acc; /* bombing accuracy (higher the better) */ int pl_load; /* bomb load, also for carrying cargo */ int pl_att; /* air-air attack/defense strengths */ @@ -141,9 +142,6 @@ struct shiplist { struct shiplist *next; }; -/* Work required for building 100% */ -#define PLN_BLD_WORK(lcm, hcm) (20 + (lcm) + 2 * (hcm)) - extern int pl_att(struct plchrstr *, int); extern int pl_def(struct plchrstr *, int); extern int pl_acc(struct plchrstr *, int); diff --git a/include/ship.h b/include/ship.h index 5a6aa32e0..f6c9d3929 100644 --- a/include/ship.h +++ b/include/ship.h @@ -31,7 +31,7 @@ * Thomas Ruschak, 1992 * Ken Stevens, 1995 * Steve McClure, 1998 - * Markus Armbruster, 2004-2015 + * Markus Armbruster, 2004-2016 */ #ifndef SHIP_H @@ -93,6 +93,7 @@ struct mchrstr { unsigned char m_nxlight; /* maximum number of xlight planes */ unsigned char m_nchoppers; /* maximum number of choppers */ char *m_name; /* full name of type of ship */ + int m_bwork; /* work to build 100% */ int m_tech; /* tech required to build */ int m_cost; /* how much it costs to build */ int m_flags; /* what special things can this ship do */ @@ -131,9 +132,6 @@ struct mchrstr { extern struct mchrstr mchr[SHP_TYPE_MAX + 2]; -/* Work required for building 100% */ -#define SHP_BLD_WORK(lcm, hcm) (20 + (lcm) + 2 * (hcm)) - enum { SHP_AIROPS_EFF = 50, /* min. efficiency for air ops */ SHP_TORP_SHELLS = 3 /* number of shells used by a torpedo */ diff --git a/info/build.t b/info/build.t index 12bef2b20..992b96db6 100644 --- a/info/build.t +++ b/info/build.t @@ -56,12 +56,6 @@ military crew. So, for maximum efficiency growth, put full crews on your newly built ships and leave them in harbor until they reach 100%. .s1 -The work required to add a point of efficiency to a ship is -.s1 -.NF -(20 + (lcm_to_build + 2 * hcm_to_build))/100 -.FI -.s1 Ships at sea have only their crews to make repairs. A small crew on a large ship may not be able to make any repairs at all. @@ -80,11 +74,6 @@ A plane is not capable of leaving the ground until it has reached 40% efficiency. Planes below 10% efficiency are destroyed. .s1 -The work required to add a point of efficiency to a plane is -.s1 -.NF -(20 + (lcm_to_build + 2 * hcm_to_build))/100 -.FI .s1 Planes will also gain efficiency in non-airport sectors, but at only 1/3rd the normal rate. @@ -105,12 +94,6 @@ dead). Then, each update, the unit will grow in efficiency, and use up more of the required goods until it reaches 100%. .s1 -The work required to add a point of efficiency to a land unit is -.s1 -.NF -(20 + (lcm_to_build + 2 * hcm_to_build))/100 -.FI -.s1 Land units can also gain efficiency in fortress sectors, but cannot be built there. Land units can gain efficiency in any other sector type (assuming diff --git a/src/lib/commands/buil.c b/src/lib/commands/buil.c index c1268c318..d6fa4d4fc 100644 --- a/src/lib/commands/buil.c +++ b/src/lib/commands/buil.c @@ -28,7 +28,7 @@ * * Known contributors to this file: * Steve McClure, 1998-2000 - * Markus Armbruster, 2004-2015 + * Markus Armbruster, 2004-2016 */ #include @@ -211,23 +211,21 @@ build_ship(struct sctstr *sp, int type, int tlev) { struct mchrstr *mp = &mchr[type]; short mat[I_MAX+1]; - int work; struct shpstr ship; memset(mat, 0, sizeof(mat)); mat[I_LCM] = mp->m_lcm; mat[I_HCM] = mp->m_hcm; - work = SHP_BLD_WORK(mp->m_lcm, mp->m_hcm); if (sp->sct_type != SCT_HARBR && !player->god) { pr("Ships must be built in harbours.\n"); return 0; } - if (!sector_can_build(sp, mat, work, SHIP_MINEFF, mp->m_name)) + if (!sector_can_build(sp, mat, mp->m_bwork, SHIP_MINEFF, mp->m_name)) return 0; if (!build_can_afford(mp->m_cost, SHIP_MINEFF, mp->m_name)) return 0; - build_charge(sp, mat, work, mp->m_cost, SHIP_MINEFF); + build_charge(sp, mat, mp->m_bwork, mp->m_cost, SHIP_MINEFF); ef_blank(EF_SHIP, pick_unused_unit_uid(EF_SHIP), &ship); ship.shp_x = sp->sct_x; @@ -264,23 +262,21 @@ build_land(struct sctstr *sp, int type, int tlev) { struct lchrstr *lp = &lchr[type]; short mat[I_MAX+1]; - int work; struct lndstr land; memset(mat, 0, sizeof(mat)); mat[I_LCM] = lp->l_lcm; mat[I_HCM] = lp->l_hcm; - work = LND_BLD_WORK(lp->l_lcm, lp->l_hcm); if (sp->sct_type != SCT_HEADQ && !player->god) { pr("Land units must be built in headquarters.\n"); return 0; } - if (!sector_can_build(sp, mat, work, LAND_MINEFF, lp->l_name)) + if (!sector_can_build(sp, mat, lp->l_bwork, LAND_MINEFF, lp->l_name)) return 0; if (!build_can_afford(lp->l_cost, LAND_MINEFF, lp->l_name)) return 0; - build_charge(sp, mat, work, lp->l_cost, LAND_MINEFF); + build_charge(sp, mat, lp->l_bwork, lp->l_cost, LAND_MINEFF); ef_blank(EF_LAND, pick_unused_unit_uid(EF_LAND), &land); land.lnd_x = sp->sct_x; @@ -316,7 +312,6 @@ build_nuke(struct sctstr *sp, int type, int tlev) { struct nchrstr *np = &nchr[type]; short mat[I_MAX+1]; - int work; struct nukstr nuke; if (sp->sct_type != SCT_NUKE && !player->god) { @@ -333,13 +328,12 @@ build_nuke(struct sctstr *sp, int type, int tlev) mat[I_HCM] = np->n_hcm; mat[I_OIL] = np->n_oil; mat[I_RAD] = np->n_rad; - work = NUK_BLD_WORK(np->n_lcm, np->n_hcm, np->n_oil, np->n_rad); - if (!sector_can_build(sp, mat, work, 100, np->n_name)) + if (!sector_can_build(sp, mat, np->n_bwork, 100, np->n_name)) return 0; if (!build_can_afford(np->n_cost, 100, np->n_name)) return 0; - build_charge(sp, mat, work, np->n_cost, 100); + build_charge(sp, mat, np->n_bwork, np->n_cost, 100); ef_blank(EF_NUKE, pick_unused_unit_uid(EF_NUKE), &nuke); nuke.nuk_x = sp->sct_x; @@ -362,24 +356,22 @@ build_plane(struct sctstr *sp, int type, int tlev) { struct plchrstr *pp = &plchr[type]; short mat[I_MAX+1]; - int work; struct plnstr plane; memset(mat, 0, sizeof(mat)); mat[I_MILIT] = pp->pl_crew; mat[I_LCM] = pp->pl_lcm; mat[I_HCM] = pp->pl_hcm; - work = PLN_BLD_WORK(pp->pl_lcm, pp->pl_hcm); if (sp->sct_type != SCT_AIRPT && !player->god) { pr("Planes must be built in airports.\n"); return 0; } - if (!sector_can_build(sp, mat, work, PLANE_MINEFF, pp->pl_name)) + if (!sector_can_build(sp, mat, pp->pl_bwork, PLANE_MINEFF, pp->pl_name)) return 0; if (!build_can_afford(pp->pl_cost, PLANE_MINEFF, pp->pl_name)) return 0; - build_charge(sp, mat, work, pp->pl_cost, PLANE_MINEFF); + build_charge(sp, mat, pp->pl_bwork, pp->pl_cost, PLANE_MINEFF); ef_blank(EF_PLANE, pick_unused_unit_uid(EF_PLANE), &plane); plane.pln_x = sp->sct_x; diff --git a/src/lib/commands/upgr.c b/src/lib/commands/upgr.c index f86e55af6..7a6a04896 100644 --- a/src/lib/commands/upgr.c +++ b/src/lib/commands/upgr.c @@ -29,6 +29,7 @@ * Known contributors to this file: * Dave Pare, 1986 * Steve McClure, 1996-2000 + * Markus Armbruster, 2004-2016 */ #include @@ -106,7 +107,7 @@ lupgr(void) } n++; lp = &lchr[(int)land.lnd_type]; - avail = (LND_BLD_WORK(lp->l_lcm, lp->l_hcm) * UPGR_COST + 99) / 100; + avail = (lp->l_bwork * UPGR_COST + 99) / 100; if (sect.sct_avail < avail) { pr("Not enough available work in %s to upgrade a %s\n", xyas(sect.sct_x, sect.sct_y, player->cnum), lp->l_name); @@ -186,7 +187,7 @@ supgr(void) } n++; mp = &mchr[(int)ship.shp_type]; - avail = (SHP_BLD_WORK(mp->m_lcm, mp->m_hcm) * UPGR_COST + 99) / 100; + avail = (mp->m_bwork * UPGR_COST + 99) / 100; if (sect.sct_avail < avail) { pr("Not enough available work in %s to upgrade a %s\n", xyas(sect.sct_x, sect.sct_y, player->cnum), mp->m_name); @@ -271,7 +272,7 @@ pupgr(void) continue; n++; pp = &plchr[(int)plane.pln_type]; - avail = (PLN_BLD_WORK(pp->pl_lcm, pp->pl_hcm) * UPGR_COST + 99) / 100; + avail = (pp->pl_bwork * UPGR_COST + 99) / 100; if (sect.sct_avail < avail) { pr("Not enough available work in %s to upgrade a %s\n", xyas(sect.sct_x, sect.sct_y, player->cnum), pp->pl_name); diff --git a/src/lib/common/nsc.c b/src/lib/common/nsc.c index 82bd86c0c..3758b110e 100644 --- a/src/lib/common/nsc.c +++ b/src/lib/common/nsc.c @@ -27,7 +27,7 @@ * nsc.c: Empire selection global structures * * Known contributors to this file: - * Markus Armbruster, 2004-2014 + * Markus Armbruster, 2004-2016 */ /* @@ -271,6 +271,7 @@ struct castr mchr_ca[] = { {"glim", fldoff(m_glim), NSC_INT, 0, NULL, EF_BAD, 0}, {"nxlight", fldoff(m_nxlight), NSC_UCHAR, 0, NULL, EF_BAD, 0}, {"nchoppers", fldoff(m_nchoppers), NSC_UCHAR, 0, NULL, EF_BAD, 0}, + {"bwork", fldoff(m_bwork), NSC_INT, 0, NULL, EF_BAD, 0}, {"tech", fldoff(m_tech), NSC_INT, 0, NULL, EF_BAD, 0}, {"cost", fldoff(m_cost), NSC_INT, 0, NULL, EF_BAD, 0}, {"flags", fldoff(m_flags), NSC_INT, 0, NULL, @@ -306,8 +307,9 @@ struct castr plchr_ca[] = { {"name", fldoff(pl_name), NSC_STRING, 0, NULL, EF_BAD, 0}, {"l_build", fldoff(pl_lcm), NSC_INT, 0, NULL, EF_BAD, 0}, {"h_build", fldoff(pl_hcm), NSC_INT, 0, NULL, EF_BAD, 0}, - {"cost", fldoff(pl_cost), NSC_INT, 0, NULL, EF_BAD, 0}, + {"bwork", fldoff(pl_bwork), NSC_INT, 0, NULL, EF_BAD, 0}, {"tech", fldoff(pl_tech), NSC_INT, 0, NULL, EF_BAD, 0}, + {"cost", fldoff(pl_cost), NSC_INT, 0, NULL, EF_BAD, 0}, {"acc", fldoff(pl_acc), NSC_INT, 0, NULL, EF_BAD, 0}, {"load", fldoff(pl_load), NSC_INT, 0, NULL, EF_BAD, 0}, {"att", fldoff(pl_att), NSC_INT, 0, NULL, EF_BAD, 0}, @@ -367,6 +369,7 @@ struct castr lchr_ca[] = { NSC_IVEC(fldoff(l_item), ""), {"l_build", fldoff(l_lcm), NSC_INT, 0, NULL, EF_BAD, 0}, {"h_build", fldoff(l_hcm), NSC_INT, 0, NULL, EF_BAD, 0}, + {"bwork", fldoff(l_bwork), NSC_INT, 0, NULL, EF_BAD, 0}, {"tech", fldoff(l_tech), NSC_INT, 0, NULL, EF_BAD, 0}, {"cost", fldoff(l_cost), NSC_INT, 0, NULL, EF_BAD, 0}, {"att", fldoff(l_att), NSC_FLOAT, 0, NULL, EF_BAD, 0}, @@ -408,8 +411,9 @@ struct castr nchr_ca[] = { {"r_build", fldoff(n_rad), NSC_INT, 0, NULL, EF_BAD, 0}, {"blast", fldoff(n_blast), NSC_INT, 0, NULL, EF_BAD, 0}, {"dam", fldoff(n_dam), NSC_INT, 0, NULL, EF_BAD, 0}, - {"cost", fldoff(n_cost), NSC_INT, 0, NULL, EF_BAD, 0}, + {"bwork", fldoff(n_bwork), NSC_INT, 0, NULL, EF_BAD, 0}, {"tech", fldoff(n_tech), NSC_INT, 0, NULL, EF_BAD, 0}, + {"cost", fldoff(n_cost), NSC_INT, 0, NULL, EF_BAD, 0}, {"weight", fldoff(n_weight), NSC_INT, 0, NULL, EF_BAD, 0}, {"flags", fldoff(n_flags), NSC_INT, 0, NULL, EF_NUKE_CHR_FLAGS, NSC_BITS}, diff --git a/src/lib/global/land.config b/src/lib/global/land.config index 74b8862d4..832d86444 100644 --- a/src/lib/global/land.config +++ b/src/lib/global/land.config @@ -27,7 +27,7 @@ # land.config: Land unit characteristics # # Known contributors to this file: -# Markus Armbruster, 2006-2011 +# Markus Armbruster, 2006-2016 # # Derived from land.c; known contributors: # Thomas Ruschak, 1992 @@ -43,29 +43,29 @@ # econfig key custom_tables. config land-chr -type name l_b h_b tech cost ... - 0 "cav cavalry" 10 5 30 500 - 1 "linf light infantry" 8 4 40 300 - 2 "inf infantry" 10 5 50 500 - 3 "mtif motor inf" 15 10 190 400 - 4 "mif mech inf" 15 10 190 800 - 5 "mar marines" 10 5 140 1000 - 6 "sup supply" 10 5 50 500 - 7 "tra train" 100 50 40 3500 - 8 "spy infiltrator" 10 5 40 750 - 9 "com commando" 10 5 55 1500 -10 "aau aa unit" 20 10 70 500 -11 "art artillery" 20 10 35 800 -12 "lat lt artillery" 20 10 70 500 -13 "hat hvy artillery" 40 20 100 800 -14 "mat mech artillery" 20 10 200 1000 -15 "eng engineer" 10 5 130 3000 -16 "meng mech engineer" 10 5 260 4500 -17 "lar lt armor" 10 5 150 600 -18 "har hvy armor" 20 10 120 500 -19 "arm armor" 20 10 170 1000 -20 "sec security" 10 5 170 600 -21 "rad radar unit" 10 5 270 1000 +type name l_b h_b bwork tech cost ... + 0 "cav cavalry" 10 5 40 30 500 + 1 "linf light infantry" 8 4 36 40 300 + 2 "inf infantry" 10 5 40 50 500 + 3 "mtif motor inf" 15 10 55 190 400 + 4 "mif mech inf" 15 10 55 190 800 + 5 "mar marines" 10 5 40 140 1000 + 6 "sup supply" 10 5 40 50 500 + 7 "tra train" 100 50 220 40 3500 + 8 "spy infiltrator" 10 5 40 40 750 + 9 "com commando" 10 5 40 55 1500 +10 "aau aa unit" 20 10 60 70 500 +11 "art artillery" 20 10 60 35 800 +12 "lat lt artillery" 20 10 60 70 500 +13 "hat hvy artillery" 40 20 100 100 800 +14 "mat mech artillery" 20 10 60 200 1000 +15 "eng engineer" 10 5 40 130 3000 +16 "meng mech engineer" 10 5 40 260 4500 +17 "lar lt armor" 10 5 40 150 600 +18 "har hvy armor" 20 10 60 120 500 +19 "arm armor" 20 10 60 170 1000 +20 "sec security" 10 5 40 170 600 +21 "rad radar unit" 10 5 40 270 1000 /config config land-chr diff --git a/src/lib/global/nuke.config b/src/lib/global/nuke.config index 964f02aee..bec845ffe 100644 --- a/src/lib/global/nuke.config +++ b/src/lib/global/nuke.config @@ -27,7 +27,7 @@ # nuke.c: Nuke characteristics # # Known contributors to this file: -# Markus Armbruster, 2006-2011 +# Markus Armbruster, 2006-2016 # # Derived from nuke.c. # @@ -40,18 +40,18 @@ # econfig key custom_tables. config nuke-chr -type name l_b h_b o_b r_b bla dam cost tech wei flags - 0 "10kt fission" 50 50 25 70 3 70 10000 280 4 () - 1 "15kt fission" 50 50 25 80 3 90 15000 290 5 () - 2 "50kt fission" 60 60 30 90 3 100 25000 300 6 () - 3 "100kt fission" 75 75 40 120 4 125 30000 310 8 () - 4 "5kt fusion" 15 15 15 30 2 80 12500 315 1 () - 5 "75kt fusion" 40 40 35 50 3 90 20000 320 3 () - 6 "250kt fusion" 50 50 45 60 4 110 25000 330 4 () - 7 "500kt fusion" 60 60 50 80 5 120 35000 340 5 () - 8 "1mt fusion" 75 75 50 110 6 150 40000 350 5 () - 9 "60kt neutron" 60 60 30 100 3 30 30000 355 2 (neutron) -10 "3mt fusion" 100 100 75 130 7 170 45000 360 6 () -11 "5mt fusion" 120 120 100 150 8 190 50000 370 8 () -12 "120kt neutron" 75 75 40 120 5 50 36000 375 3 (neutron) +type name l_b h_b o_b r_b bwork bla dam cost tech wei flags + 0 "10kt fission" 50 50 25 70 49 3 70 10000 280 4 () + 1 "15kt fission" 50 50 25 80 51 3 90 15000 290 5 () + 2 "50kt fission" 60 60 30 90 60 3 100 25000 300 6 () + 3 "100kt fission" 75 75 40 120 77 4 125 30000 310 8 () + 4 "5kt fusion" 15 15 15 30 18 2 80 12500 315 1 () + 5 "75kt fusion" 40 40 35 50 41 3 90 20000 320 3 () + 6 "250kt fusion" 50 50 45 60 51 4 110 25000 330 4 () + 7 "500kt fusion" 60 60 50 80 62 5 120 35000 340 5 () + 8 "1mt fusion" 75 75 50 110 77 6 150 40000 350 5 () + 9 "60kt neutron" 60 60 30 100 62 3 30 30000 355 2 (neutron) +10 "3mt fusion" 100 100 75 130 101 7 170 45000 360 6 () +11 "5mt fusion" 120 120 100 150 122 8 190 50000 370 8 () +12 "120kt neutron" 75 75 40 120 77 5 50 36000 375 3 (neutron) /config diff --git a/src/lib/global/plane.config b/src/lib/global/plane.config index e03588fcb..5e6a052b7 100644 --- a/src/lib/global/plane.config +++ b/src/lib/global/plane.config @@ -27,7 +27,7 @@ # plane.config: Plane characteristics # # Known contributors to this file: -# Markus Armbruster, 2006-2011 +# Markus Armbruster, 2006-2016 # # Derived from plane.c; known contributors: # Dave Pare, 1986 @@ -45,42 +45,42 @@ # econfig key custom_tables. config plane-chr -type name l_b h_b cre tech cost ... - 0 "f1 Sopwith Camel" 8 2 1 50 400 - 1 "f2 P-51 Mustang" 8 2 1 80 400 - 2 "jf1 F-4 Phantom" 12 4 2 125 1000 - 3 "jf2 AV-8B Harrier" 12 4 2 195 1400 - 4 "sf F-117A Nighthawk" 15 5 2 325 3000 - 5 "es P-38 Lightning" 9 3 1 90 700 - 6 "jes F-14E jet escort" 14 8 2 160 1400 - 7 "lb TBD-1 Devastator" 10 3 1 60 550 - 8 "jl A-6 Intruder" 14 4 2 130 1000 - 9 "mb medium bomber" 14 5 3 80 1000 -10 "jfb FB-111 Aardvark f/b" 20 10 5 140 1800 -11 "hb B-26B Marauder" 20 6 2 90 1100 -12 "jhb B-52 Strato-Fortress" 26 13 5 150 3200 -13 "sb B-2 stealth bomber" 15 5 2 325 4000 -14 "as anti-sub plane" 10 3 2 100 550 -15 "np naval plane" 20 10 4 135 1800 -16 "nc AH-1 Cobra" 8 2 2 160 800 -17 "ac AH-64 Apache" 8 2 2 200 800 -18 "tc transport chopper" 8 2 2 135 800 -19 "tr C-56 Lodestar" 14 5 3 85 1000 -20 "jt C-141 Starlifter" 18 5 3 160 1500 -21 "zep Zeppelin" 6 2 3 70 1000 -22 "re recon" 12 4 2 130 800 -23 "sp E2-C Hawkeye" 15 5 2 190 2000 -24 "lst landsat" 20 20 0 245 2000 -25 "ss KH-7 spysat" 20 20 0 305 4000 -26 "mi Harpoon" 8 2 0 160 300 -27 "sam Sea Sparrow" 3 1 0 180 200 -28 "ssm V2" 15 15 0 145 800 -29 "srbm Atlas" 20 20 0 200 1000 -30 "irbm Titan" 20 20 0 260 1500 -31 "icbm Minuteman" 20 20 0 310 3000 -32 "slbm Trident" 20 20 0 280 2000 -33 "asat anti-sat" 20 20 0 305 2000 -34 "abm Patriot" 16 8 0 270 1500 +type name l_b h_b cre bwork tech cost ... + 0 "f1 Sopwith Camel" 8 2 1 32 50 400 + 1 "f2 P-51 Mustang" 8 2 1 32 80 400 + 2 "jf1 F-4 Phantom" 12 4 2 40 125 1000 + 3 "jf2 AV-8B Harrier" 12 4 2 40 195 1400 + 4 "sf F-117A Nighthawk" 15 5 2 45 325 3000 + 5 "es P-38 Lightning" 9 3 1 35 90 700 + 6 "jes F-14E jet escort" 14 8 2 50 160 1400 + 7 "lb TBD-1 Devastator" 10 3 1 36 60 550 + 8 "jl A-6 Intruder" 14 4 2 42 130 1000 + 9 "mb medium bomber" 14 5 3 44 80 1000 +10 "jfb FB-111 Aardvark f/b" 20 10 5 60 140 1800 +11 "hb B-26B Marauder" 20 6 2 52 90 1100 +12 "jhb B-52 Strato-Fortress" 26 13 5 72 150 3200 +13 "sb B-2 stealth bomber" 15 5 2 45 325 4000 +14 "as anti-sub plane" 10 3 2 36 100 550 +15 "np naval plane" 20 10 4 60 135 1800 +16 "nc AH-1 Cobra" 8 2 2 32 160 800 +17 "ac AH-64 Apache" 8 2 2 32 200 800 +18 "tc transport chopper" 8 2 2 32 135 800 +19 "tr C-56 Lodestar" 14 5 3 44 85 1000 +20 "jt C-141 Starlifter" 18 5 3 48 160 1500 +21 "zep Zeppelin" 6 2 3 30 70 1000 +22 "re recon" 12 4 2 40 130 800 +23 "sp E2-C Hawkeye" 15 5 2 45 190 2000 +24 "lst landsat" 20 20 0 80 245 2000 +25 "ss KH-7 spysat" 20 20 0 80 305 4000 +26 "mi Harpoon" 8 2 0 32 160 300 +27 "sam Sea Sparrow" 3 1 0 25 180 200 +28 "ssm V2" 15 15 0 65 145 800 +29 "srbm Atlas" 20 20 0 80 200 1000 +30 "irbm Titan" 20 20 0 80 260 1500 +31 "icbm Minuteman" 20 20 0 80 310 3000 +32 "slbm Trident" 20 20 0 80 280 2000 +33 "asat anti-sat" 20 20 0 80 305 2000 +34 "abm Patriot" 16 8 0 52 270 1500 /config config plane-chr diff --git a/src/lib/global/ship.config b/src/lib/global/ship.config index 1856eb474..9b8cd7b0b 100644 --- a/src/lib/global/ship.config +++ b/src/lib/global/ship.config @@ -27,7 +27,7 @@ # ship.config: Ship characteristics # # Known contributors to this file: -# Markus Armbruster, 2006-2015 +# Markus Armbruster, 2006-2016 # # Derived from ship.c; known contributors: # Dave Pare, 1986 @@ -45,45 +45,45 @@ # econfig key custom_tables. config ship-chr -type name l_b h_b tech cost ... - 0 "fb fishing boat" 25 15 0 180 - 1 "ft fishing trawler" 25 15 35 300 - 2 "cs cargo ship" 60 40 20 500 - 3 "os ore ship" 60 40 20 500 - 4 "ss slave ship" 60 40 0 300 +type name l_b h_b bwork tech cost ... + 0 "fb fishing boat" 25 15 75 0 180 + 1 "ft fishing trawler" 25 15 75 35 300 + 2 "cs cargo ship" 60 40 160 20 500 + 3 "os ore ship" 60 40 160 20 500 + 4 "ss slave ship" 60 40 160 0 300 # Uncomment to enable trade ships -# 5 "ts trade ship" 200 100 30 1750 - 6 "frg frigate" 30 30 0 600 - 7 "oe oil exploration boat" 25 15 40 800 - 8 "od oil derrick" 60 60 50 1500 - 9 "pt patrol boat" 20 10 40 300 -10 "lc light cruiser" 30 40 45 800 -11 "hc heavy cruiser" 40 50 50 1200 -12 "tt troop transport" 50 50 10 800 -13 "bb battleship" 50 70 45 1800 -14 "bbc battlecruiser" 50 60 75 1500 -15 "tk tanker" 60 40 35 600 -16 "ms minesweeper" 25 15 40 400 -17 "dd destroyer" 30 30 70 600 -18 "sb submarine" 30 30 60 650 -19 "sbc cargo submarine" 40 40 150 1200 -20 "cal light carrier" 50 60 80 2700 -21 "car aircraft carrier" 60 70 160 4500 -22 "can nuc carrier" 70 80 305 8000 -23 "ls landing ship" 60 40 145 1000 -24 "af asw frigate" 40 30 220 800 -25 "na nuc attack sub" 30 40 260 1200 -26 "ad asw destroyer" 40 40 240 1500 -27 "nm nuc miss sub" 30 40 270 1500 -28 "msb missile sub" 30 30 230 1200 -29 "mb missile boat" 20 20 180 500 -30 "mf missile frigate" 40 30 280 1000 -31 "mc missile cruiser" 50 50 290 1500 -32 "aac aa cruiser" 50 60 130 1500 -33 "agc aegis cruiser" 50 60 265 4000 -34 "ncr nuc cruiser" 50 50 325 1800 -35 "nas nuc asw cruiser" 50 50 330 1800 -36 "nsp nuc supply ship" 60 40 360 1500 +# 5 "ts trade ship" 200 100 420 30 1750 + 6 "frg frigate" 30 30 110 0 600 + 7 "oe oil exploration boat" 25 15 75 40 800 + 8 "od oil derrick" 60 60 200 50 1500 + 9 "pt patrol boat" 20 10 60 40 300 +10 "lc light cruiser" 30 40 130 45 800 +11 "hc heavy cruiser" 40 50 160 50 1200 +12 "tt troop transport" 50 50 170 10 800 +13 "bb battleship" 50 70 210 45 1800 +14 "bbc battlecruiser" 50 60 190 75 1500 +15 "tk tanker" 60 40 160 35 600 +16 "ms minesweeper" 25 15 75 40 400 +17 "dd destroyer" 30 30 110 70 600 +18 "sb submarine" 30 30 110 60 650 +19 "sbc cargo submarine" 40 40 140 150 1200 +20 "cal light carrier" 50 60 190 80 2700 +21 "car aircraft carrier" 60 70 220 160 4500 +22 "can nuc carrier" 70 80 250 305 8000 +23 "ls landing ship" 60 40 160 145 1000 +24 "af asw frigate" 40 30 120 220 800 +25 "na nuc attack sub" 30 40 130 260 1200 +26 "ad asw destroyer" 40 40 140 240 1500 +27 "nm nuc miss sub" 30 40 130 270 1500 +28 "msb missile sub" 30 30 110 230 1200 +29 "mb missile boat" 20 20 80 180 500 +30 "mf missile frigate" 40 30 120 280 1000 +31 "mc missile cruiser" 50 50 170 290 1500 +32 "aac aa cruiser" 50 60 190 130 1500 +33 "agc aegis cruiser" 50 60 190 265 4000 +34 "ncr nuc cruiser" 50 50 170 325 1800 +35 "nas nuc asw cruiser" 50 50 170 330 1800 +36 "nsp nuc supply ship" 60 40 160 360 1500 /config config ship-chr diff --git a/src/lib/subs/show.c b/src/lib/subs/show.c index c8975a0bf..29acdfa2a 100644 --- a/src/lib/subs/show.c +++ b/src/lib/subs/show.c @@ -31,7 +31,7 @@ * Jeff Bailey, 1990 * Steve McClure, 1996 * Ron Koenderink, 2005-2009 - * Markus Armbruster, 2006-2015 + * Markus Armbruster, 2006-2016 */ #include @@ -192,16 +192,14 @@ show_nuke_build(int tlev) int n = make_nchr_index(chridx, tlev); int i; struct nchrstr *np; - int avail; pr("%13s lcm hcm oil rad avail tech res $\n", ""); for (i = 0; i < n; i++) { np = &nchr[chridx[i].type]; - avail = NUK_BLD_WORK(np->n_lcm, np->n_hcm, np->n_oil, np->n_rad); pr("%-13.13s %3d %3d %4d %4d %5d %4d %3.0f $%6d\n", np->n_name, np->n_lcm, np->n_hcm, np->n_oil, - np->n_rad, avail, np->n_tech, + np->n_rad, np->n_bwork, np->n_tech, drnuke_const > MIN_DRNUKE_CONST ? ceil(np->n_tech * drnuke_const) : 0.0, np->n_cost); @@ -243,7 +241,7 @@ show_ship_build(int tlev) mp = &mchr[chridx[i].type]; pr("%-25.25s %3d %3d %5d %4d $%d\n", mp->m_name, mp->m_lcm, mp->m_hcm, - SHP_BLD_WORK(mp->m_lcm, mp->m_hcm), mp->m_tech, mp->m_cost); + mp->m_bwork, mp->m_tech, mp->m_cost); } } @@ -335,7 +333,7 @@ show_plane_build(int tlev) pr("%-25.25s %3d %3d %4d %5d %4d $%d\n", pp->pl_name, pp->pl_lcm, pp->pl_hcm, pp->pl_crew, - PLN_BLD_WORK(pp->pl_lcm, pp->pl_hcm), pp->pl_tech, pp->pl_cost); + pp->pl_bwork, pp->pl_tech, pp->pl_cost); } } @@ -354,7 +352,7 @@ show_land_build(int tlev) lp->l_name, lp->l_lcm, lp->l_hcm, lp->l_gun, - LND_BLD_WORK(lp->l_lcm, lp->l_hcm), lp->l_tech, lp->l_cost); + lp->l_bwork, lp->l_tech, lp->l_cost); } } diff --git a/src/lib/update/land.c b/src/lib/update/land.c index 14e76021d..63ccf5fe1 100644 --- a/src/lib/update/land.c +++ b/src/lib/update/land.c @@ -30,7 +30,7 @@ * Dave Pare, 1986 * Thomas Ruschak, 1992 * Steve McClure, 1996 - * Markus Armbruster, 2006-2011 + * Markus Armbruster, 2006-2016 */ #include @@ -199,7 +199,6 @@ landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus) struct lchrstr *lp; int build; int avail; - int w_p_eff; int mult; int mvec[I_MAX + 1]; @@ -223,8 +222,7 @@ landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus) else avail = bp_get_avail(bp, sp) * 100; - w_p_eff = LND_BLD_WORK(lp->l_lcm, lp->l_hcm); - delta = roundavg((double)avail / w_p_eff); + delta = roundavg((double)avail / lp->l_bwork); if (delta <= 0) return; if (delta > (int)((float)etus * land_grow_scale)) @@ -240,7 +238,7 @@ landrepair(struct lndstr *land, struct natstr *np, struct bp *bp, int etus) if ((sp->sct_type != SCT_HEADQ) && (sp->sct_type != SCT_FORTR)) build /= 3; - avail -= build * w_p_eff; + avail -= build * lp->l_bwork; if (avail < 0) avail = 0; if (!player->simulation) diff --git a/src/lib/update/plane.c b/src/lib/update/plane.c index 6c6e6a2fa..059a96107 100644 --- a/src/lib/update/plane.c +++ b/src/lib/update/plane.c @@ -29,7 +29,7 @@ * Known contributors to this file: * Dave Pare, 1986 * Steve McClure, 1998 - * Markus Armbruster, 2006-2011 + * Markus Armbruster, 2006-2016 */ #include @@ -131,7 +131,6 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus) int delta; int mult; int avail; - int w_p_eff; int used; carrier = NULL; @@ -166,8 +165,7 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus) if (carrier) avail += etus * carrier->shp_item[I_MILIT] / 2; - w_p_eff = PLN_BLD_WORK(pcp->pl_lcm, pcp->pl_hcm); - delta = roundavg((double)avail / w_p_eff); + delta = roundavg((double)avail / pcp->pl_bwork); if (delta <= 0) return; if (delta > (int)((float)etus * plane_grow_scale)) @@ -184,7 +182,7 @@ planerepair(struct plnstr *pp, struct natstr *np, struct bp *bp, int etus) if (carrier) build = delta; - used = build * w_p_eff; + used = build * pcp->pl_bwork; /* * I didn't use roundavg here, because I want to * penalize the player with a large number of planes. diff --git a/src/lib/update/ship.c b/src/lib/update/ship.c index 4cf079bf8..598a2e72e 100644 --- a/src/lib/update/ship.c +++ b/src/lib/update/ship.c @@ -30,7 +30,7 @@ * Dave Pare, 1986 * Steve McClure, 1996 * Ron Koenderink, 2004 - * Markus Armbruster, 2006-2011 + * Markus Armbruster, 2006-2016 */ #include @@ -247,7 +247,6 @@ shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus) int build; int wf; int avail; - int w_p_eff; int mult; int mvec[I_MAX + 1]; @@ -274,8 +273,6 @@ shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus) avail = wf + bp_get_avail(bp, sp) * 100; } - w_p_eff = SHP_BLD_WORK(mp->m_lcm, mp->m_hcm); - if ((sp->sct_off) && (sp->sct_own == ship->shp_own)) return; @@ -288,7 +285,7 @@ shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus) return; } - delta = roundavg((double)avail / w_p_eff); + delta = roundavg((double)avail / mp->m_bwork); if (delta <= 0) return; if (delta > (int)((float)etus * ship_grow_scale)) @@ -304,7 +301,7 @@ shiprepair(struct shpstr *ship, struct natstr *np, struct bp *bp, int etus) if (sp->sct_type != SCT_HARBR) build = delta; - wf -= build * w_p_eff; + wf -= build * mp->m_bwork; if (wf < 0) { /* * I didn't use roundavg here, because I want to penalize diff --git a/tests/empdump/errors.err b/tests/empdump/errors.err index e5439a1c7..1593ec4ba 100644 --- a/tests/empdump/errors.err +++ b/tests/empdump/errors.err @@ -33,7 +33,7 @@ tests/empdump/xundump-errors/colhdr-sep:2: bad field separator after field 1 tests/empdump/xundump-errors/colhdr-symidx:2: symbolic index in header field 1 not yet implemented tests/empdump/xundump-errors/colhdr-unexp2:2: expected header 'pkg(0)' in field 7 tests/empdump/xundump-errors/colhdr-unk:2: unknown header 'xxx' in field 1 -tests/empdump/xundump-errors/fld-ambsym:2: ambiguous flags symbol 's' in field 29 +tests/empdump/xundump-errors/fld-ambsym:2: ambiguous flags symbol 's' in field 30 tests/empdump/xundump-errors/fld-badnum:3: field 2 can't hold this value tests/empdump/xundump-errors/fld-constnum:3: value for field 1 must be 0 tests/empdump/xundump-errors/fld-conststr:3: value for field 1 must be "road network" @@ -63,6 +63,7 @@ tests/empdump/xundump-errors/fld-eof:2: field 'frnge' missing tests/empdump/xundump-errors/fld-eof:2: field 'glim' missing tests/empdump/xundump-errors/fld-eof:2: field 'nxlight' missing tests/empdump/xundump-errors/fld-eof:2: field 'nchoppers' missing +tests/empdump/xundump-errors/fld-eof:2: field 'bwork' missing tests/empdump/xundump-errors/fld-eof:2: field 'tech' missing tests/empdump/xundump-errors/fld-eof:2: field 'cost' missing tests/empdump/xundump-errors/fld-eof:2: field 'flags' missing diff --git a/tests/empdump/xundump-errors/fld-ambsym b/tests/empdump/xundump-errors/fld-ambsym index bd1ae3edb..dcd3c5f96 100644 --- a/tests/empdump/xundump-errors/fld-ambsym +++ b/tests/empdump/xundump-errors/fld-ambsym @@ -1,3 +1,3 @@ XDUMP ship-chr 1 -0 "ft\040\040\040fishing\040trawler" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 25 15 2 0 0 0 0 35 300 (sw s) 0 0 +0 "ft\040\040\040fishing\040trawler" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 25 15 2 0 0 0 0 35 300 75 (sw s) 0 0 # ambiguous flags symbol 's' in field 29 diff --git a/tests/version/journal.log b/tests/version/journal.log index d2765a391..027781be5 100644 --- a/tests/version/journal.log +++ b/tests/version/journal.log @@ -1030,12 +1030,13 @@ Play#0 output Play#0 1 "glim" 8 0 0 -1 Play#0 output Play#0 1 "nxlight" 5 0 0 -1 Play#0 output Play#0 1 "nchoppers" 5 0 0 -1 + Play#0 output Play#0 1 "bwork" 8 0 0 -1 Play#0 output Play#0 1 "tech" 8 0 0 -1 Play#0 output Play#0 1 "cost" 8 0 0 -1 Play#0 output Play#0 1 "flags" 8 8 0 48 Play#0 output Play#0 1 "nplanes" 5 0 0 -1 Play#0 output Play#0 1 "nland" 5 0 0 -1 - Play#0 output Play#0 1 /31 + Play#0 output Play#0 1 /32 Play#0 output Play#0 6 0 640 Play#0 input xdump meta 20 Play#0 command xdump @@ -1044,8 +1045,9 @@ Play#0 output Play#0 1 "name" 3 0 0 -1 Play#0 output Play#0 1 "l_build" 8 0 0 -1 Play#0 output Play#0 1 "h_build" 8 0 0 -1 - Play#0 output Play#0 1 "cost" 8 0 0 -1 + Play#0 output Play#0 1 "bwork" 8 0 0 -1 Play#0 output Play#0 1 "tech" 8 0 0 -1 + Play#0 output Play#0 1 "cost" 8 0 0 -1 Play#0 output Play#0 1 "acc" 8 0 0 -1 Play#0 output Play#0 1 "load" 8 0 0 -1 Play#0 output Play#0 1 "att" 8 0 0 -1 @@ -1055,7 +1057,7 @@ Play#0 output Play#0 1 "fuel" 8 0 0 -1 Play#0 output Play#0 1 "stealth" 8 0 0 -1 Play#0 output Play#0 1 "flags" 8 8 0 43 - Play#0 output Play#0 1 /15 + Play#0 output Play#0 1 /16 Play#0 output Play#0 6 0 640 Play#0 input xdump meta 21 Play#0 command xdump @@ -1078,6 +1080,7 @@ Play#0 output Play#0 1 "rad" 6 0 0 -1 Play#0 output Play#0 1 "l_build" 8 0 0 -1 Play#0 output Play#0 1 "h_build" 8 0 0 -1 + Play#0 output Play#0 1 "bwork" 8 0 0 -1 Play#0 output Play#0 1 "tech" 8 0 0 -1 Play#0 output Play#0 1 "cost" 8 0 0 -1 Play#0 output Play#0 1 "att" 12 0 0 -1 @@ -1095,7 +1098,7 @@ Play#0 output Play#0 1 "flags" 8 8 0 30 Play#0 output Play#0 1 "nxlight" 5 0 0 -1 Play#0 output Play#0 1 "nland" 5 0 0 -1 - Play#0 output Play#0 1 /35 + Play#0 output Play#0 1 /36 Play#0 output Play#0 6 0 640 Play#0 input xdump meta 22 Play#0 command xdump @@ -1108,11 +1111,12 @@ Play#0 output Play#0 1 "r_build" 8 0 0 -1 Play#0 output Play#0 1 "blast" 8 0 0 -1 Play#0 output Play#0 1 "dam" 8 0 0 -1 - Play#0 output Play#0 1 "cost" 8 0 0 -1 + Play#0 output Play#0 1 "bwork" 8 0 0 -1 Play#0 output Play#0 1 "tech" 8 0 0 -1 + Play#0 output Play#0 1 "cost" 8 0 0 -1 Play#0 output Play#0 1 "weight" 8 0 0 -1 Play#0 output Play#0 1 "flags" 8 8 0 39 - Play#0 output Play#0 1 /12 + Play#0 output Play#0 1 /13 Play#0 output Play#0 6 0 640 Play#0 input xdump meta 23 Play#0 command xdump @@ -1525,127 +1529,127 @@ Play#0 input xdump ship-chr * Play#0 command xdump Play#0 output Play#0 1 XDUMP ship-chr 0 - Play#0 output Play#0 1 0 "fb\\040\\040\\040fishing\\040boat" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 10 15 2 0 0 0 0 0 180 524289 0 0 - Play#0 output Play#0 1 1 "ft\\040\\040\\040fishing\\040trawler" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 25 15 2 0 0 0 0 35 300 524289 0 0 - Play#0 output Play#0 1 2 "cs\\040\\040\\040cargo\\040ship" 600 50 300 50 0 0 0 0 900 0 1400 900 250 0 60 40 20 25 35 3 0 0 1 0 20 500 262144 0 2 - Play#0 output Play#0 1 3 "os\\040\\040\\040ore\\040ship" 30 5 0 0 0 990 990 0 200 0 0 0 45 990 60 40 20 25 35 3 0 0 1 0 20 500 0 0 0 - Play#0 output Play#0 1 4 "ss\\040\\040\\040slave\\040ship" 20 80 0 0 0 0 0 0 200 0 0 0 1200 0 60 40 20 10 35 3 0 0 1 0 0 300 0 0 0 - Play#0 output Play#0 1 6 "frg\\040\\040frigate" 0 60 10 2 0 0 0 0 60 0 0 0 0 0 30 30 50 25 25 3 1 1 1 0 0 600 16384 0 2 - Play#0 output Play#0 1 7 "oe\\040\\040\\040oil\\040exploration\\040boat" 10 5 0 0 0 0 0 0 100 1 0 0 0 0 25 15 10 25 15 2 0 0 0 0 40 800 524320 0 0 - Play#0 output Play#0 1 8 "od\\040\\040\\040oil\\040derrick" 990 80 0 0 0 0 0 0 990 990 0 0 990 0 60 60 30 15 65 3 0 0 2 0 50 1500 32 0 0 - Play#0 output Play#0 1 9 "pt\\040\\040\\040patrol\\040boat" 0 2 12 2 0 0 0 0 5 0 0 0 0 0 20 10 10 38 10 2 1 1 0 0 40 300 524290 0 0 - Play#0 output Play#0 1 10 "lc\\040\\040\\040light\\040cruiser" 0 100 40 5 0 0 0 0 100 0 0 0 0 0 30 40 50 30 30 5 6 3 1 0 45 800 128 0 2 - Play#0 output Play#0 1 11 "hc\\040\\040\\040heavy\\040cruiser" 0 120 100 8 0 0 0 0 200 0 0 0 0 0 40 50 70 30 30 5 8 4 1 0 50 1200 0 0 4 - Play#0 output Play#0 1 12 "tt\\040\\040\\040troop\\040transport" 0 120 20 4 0 0 0 0 120 0 0 0 0 0 50 50 60 20 35 3 1 2 1 0 10 800 16384 0 2 - Play#0 output Play#0 1 13 "bb\\040\\040\\040battleship" 0 200 200 10 0 0 0 0 900 0 0 0 0 0 50 70 95 25 35 6 10 7 1 0 45 1800 0 0 2 - Play#0 output Play#0 1 14 "bbc\\040\\040battlecruiser" 0 180 100 10 0 0 0 0 400 0 0 0 0 0 50 60 55 30 35 6 10 6 1 0 75 1500 0 0 2 - Play#0 output Play#0 1 15 "tk\\040\\040\\040tanker" 30 5 0 0 990 0 0 0 200 990 0 0 25 0 60 40 75 25 45 3 0 0 1 0 35 600 262144 0 0 - Play#0 output Play#0 1 16 "ms\\040\\040\\040minesweeper" 0 10 100 1 0 0 0 0 90 0 0 0 0 0 25 15 10 25 15 2 0 0 0 0 40 400 524672 0 0 - Play#0 output Play#0 1 17 "dd\\040\\040\\040destroyer" 0 60 40 4 0 0 0 0 80 0 0 0 0 0 30 30 45 35 20 4 6 3 1 0 70 600 196 0 1 - Play#0 output Play#0 1 18 "sb\\040\\040\\040submarine" 0 25 36 5 0 0 0 0 80 0 0 0 0 0 30 30 25 20 5 4 3 3 0 0 60 650 706 0 0 - Play#0 output Play#0 1 19 "sbc\\040\\040cargo\\040submarine" 5 10 104 20 100 0 0 0 900 0 500 300 0 0 40 40 50 30 2 3 0 0 0 0 150 1200 262720 0 0 - Play#0 output Play#0 1 20 "cal\\040\\040light\\040carrier" 0 175 250 4 300 0 0 0 180 0 0 0 0 0 50 60 60 30 40 5 2 2 4 20 80 2700 8 20 0 - Play#0 output Play#0 1 21 "car\\040\\040aircraft\\040carrier" 0 350 500 4 500 0 0 0 900 0 0 0 0 0 60 70 80 35 40 7 2 2 10 40 160 4500 8 40 0 - Play#0 output Play#0 1 22 "can\\040\\040nuc\\040carrier" 0 350 999 4 999 0 0 0 900 0 0 0 0 0 70 80 100 45 40 9 2 2 20 4 305 8000 262152 60 0 - Play#0 output Play#0 1 23 "ls\\040\\040\\040landing\\040ship" 0 400 10 1 0 0 0 0 300 0 0 0 0 0 60 40 40 30 30 2 0 0 2 0 145 1000 2048 0 6 - Play#0 output Play#0 1 24 "af\\040\\040\\040asw\\040frigate" 0 60 60 4 0 0 0 0 120 0 0 0 0 0 40 30 50 35 30 5 2 2 4 0 220 800 4166 0 0 - Play#0 output Play#0 1 25 "na\\040\\040\\040nuc\\040attack\\040sub" 0 25 60 6 0 0 0 0 500 0 0 0 0 0 30 40 45 40 3 6 5 3 0 0 260 1200 4802 0 0 - Play#0 output Play#0 1 26 "ad\\040\\040\\040asw\\040destroyer" 0 100 80 6 40 0 0 0 500 0 0 0 0 0 40 40 60 40 35 6 8 3 10 2 240 1500 4166 0 0 - Play#0 output Play#0 1 27 "nm\\040\\040\\040nuc\\040miss\\040sub" 0 25 200 1 0 0 0 0 500 0 0 0 0 0 30 40 55 35 2 6 0 0 0 0 270 1500 592 20 0 - Play#0 output Play#0 1 28 "msb\\040\\040missile\\040sub" 0 25 100 1 0 0 0 0 500 0 0 0 0 0 30 30 35 30 3 3 0 0 0 0 230 1200 592 10 0 - Play#0 output Play#0 1 29 "mb\\040\\040\\040missile\\040boat" 0 5 100 3 0 0 0 0 500 0 0 0 0 0 20 20 15 40 15 3 2 2 0 0 180 500 16 10 0 - Play#0 output Play#0 1 30 "mf\\040\\040\\040missile\\040frigate" 0 60 220 4 0 0 0 0 120 0 0 0 0 0 40 30 50 35 30 5 2 2 2 0 280 1000 16 20 0 - Play#0 output Play#0 1 31 "mc\\040\\040\\040missile\\040cruiser" 0 120 500 6 160 0 0 0 200 0 0 0 0 0 50 50 70 35 35 8 8 6 8 8 290 1500 1048592 40 0 - Play#0 output Play#0 1 32 "aac\\040\\040aa\\040cruiser" 0 100 100 15 0 0 0 0 200 0 0 0 0 0 50 60 80 35 30 6 1 8 1 0 130 1500 1048576 0 4 - Play#0 output Play#0 1 33 "agc\\040\\040aegis\\040cruiser" 0 200 400 25 40 0 0 0 900 0 0 0 0 0 50 60 80 35 30 6 1 16 30 2 265 4000 1048592 32 0 - Play#0 output Play#0 1 34 "ncr\\040\\040nuc\\040cruiser" 0 200 400 8 40 0 0 0 900 0 0 0 0 0 50 50 100 45 35 6 14 7 10 2 325 1800 1048592 20 0 - Play#0 output Play#0 1 35 "nas\\040\\040nuc\\040asw\\040cruiser" 0 200 120 6 160 0 0 0 500 0 0 0 0 0 50 50 80 45 35 9 10 4 25 8 330 1800 4166 0 0 - Play#0 output Play#0 1 36 "nsp\\040\\040nuc\\040supply\\040ship" 50 50 600 50 999 0 0 0 999 0 1500 900 0 0 60 40 40 45 35 6 0 0 10 2 360 1500 262144 0 2 + Play#0 output Play#0 1 0 "fb\\040\\040\\040fishing\\040boat" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 10 15 2 0 0 0 0 75 0 180 524289 0 0 + Play#0 output Play#0 1 1 "ft\\040\\040\\040fishing\\040trawler" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 25 15 2 0 0 0 0 75 35 300 524289 0 0 + Play#0 output Play#0 1 2 "cs\\040\\040\\040cargo\\040ship" 600 50 300 50 0 0 0 0 900 0 1400 900 250 0 60 40 20 25 35 3 0 0 1 0 160 20 500 262144 0 2 + Play#0 output Play#0 1 3 "os\\040\\040\\040ore\\040ship" 30 5 0 0 0 990 990 0 200 0 0 0 45 990 60 40 20 25 35 3 0 0 1 0 160 20 500 0 0 0 + Play#0 output Play#0 1 4 "ss\\040\\040\\040slave\\040ship" 20 80 0 0 0 0 0 0 200 0 0 0 1200 0 60 40 20 10 35 3 0 0 1 0 160 0 300 0 0 0 + Play#0 output Play#0 1 6 "frg\\040\\040frigate" 0 60 10 2 0 0 0 0 60 0 0 0 0 0 30 30 50 25 25 3 1 1 1 0 110 0 600 16384 0 2 + Play#0 output Play#0 1 7 "oe\\040\\040\\040oil\\040exploration\\040boat" 10 5 0 0 0 0 0 0 100 1 0 0 0 0 25 15 10 25 15 2 0 0 0 0 75 40 800 524320 0 0 + Play#0 output Play#0 1 8 "od\\040\\040\\040oil\\040derrick" 990 80 0 0 0 0 0 0 990 990 0 0 990 0 60 60 30 15 65 3 0 0 2 0 200 50 1500 32 0 0 + Play#0 output Play#0 1 9 "pt\\040\\040\\040patrol\\040boat" 0 2 12 2 0 0 0 0 5 0 0 0 0 0 20 10 10 38 10 2 1 1 0 0 60 40 300 524290 0 0 + Play#0 output Play#0 1 10 "lc\\040\\040\\040light\\040cruiser" 0 100 40 5 0 0 0 0 100 0 0 0 0 0 30 40 50 30 30 5 6 3 1 0 130 45 800 128 0 2 + Play#0 output Play#0 1 11 "hc\\040\\040\\040heavy\\040cruiser" 0 120 100 8 0 0 0 0 200 0 0 0 0 0 40 50 70 30 30 5 8 4 1 0 160 50 1200 0 0 4 + Play#0 output Play#0 1 12 "tt\\040\\040\\040troop\\040transport" 0 120 20 4 0 0 0 0 120 0 0 0 0 0 50 50 60 20 35 3 1 2 1 0 170 10 800 16384 0 2 + Play#0 output Play#0 1 13 "bb\\040\\040\\040battleship" 0 200 200 10 0 0 0 0 900 0 0 0 0 0 50 70 95 25 35 6 10 7 1 0 210 45 1800 0 0 2 + Play#0 output Play#0 1 14 "bbc\\040\\040battlecruiser" 0 180 100 10 0 0 0 0 400 0 0 0 0 0 50 60 55 30 35 6 10 6 1 0 190 75 1500 0 0 2 + Play#0 output Play#0 1 15 "tk\\040\\040\\040tanker" 30 5 0 0 990 0 0 0 200 990 0 0 25 0 60 40 75 25 45 3 0 0 1 0 160 35 600 262144 0 0 + Play#0 output Play#0 1 16 "ms\\040\\040\\040minesweeper" 0 10 100 1 0 0 0 0 90 0 0 0 0 0 25 15 10 25 15 2 0 0 0 0 75 40 400 524672 0 0 + Play#0 output Play#0 1 17 "dd\\040\\040\\040destroyer" 0 60 40 4 0 0 0 0 80 0 0 0 0 0 30 30 45 35 20 4 6 3 1 0 110 70 600 196 0 1 + Play#0 output Play#0 1 18 "sb\\040\\040\\040submarine" 0 25 36 5 0 0 0 0 80 0 0 0 0 0 30 30 25 20 5 4 3 3 0 0 110 60 650 706 0 0 + Play#0 output Play#0 1 19 "sbc\\040\\040cargo\\040submarine" 5 10 104 20 100 0 0 0 900 0 500 300 0 0 40 40 50 30 2 3 0 0 0 0 140 150 1200 262720 0 0 + Play#0 output Play#0 1 20 "cal\\040\\040light\\040carrier" 0 175 250 4 300 0 0 0 180 0 0 0 0 0 50 60 60 30 40 5 2 2 4 20 190 80 2700 8 20 0 + Play#0 output Play#0 1 21 "car\\040\\040aircraft\\040carrier" 0 350 500 4 500 0 0 0 900 0 0 0 0 0 60 70 80 35 40 7 2 2 10 40 220 160 4500 8 40 0 + Play#0 output Play#0 1 22 "can\\040\\040nuc\\040carrier" 0 350 999 4 999 0 0 0 900 0 0 0 0 0 70 80 100 45 40 9 2 2 20 4 250 305 8000 262152 60 0 + Play#0 output Play#0 1 23 "ls\\040\\040\\040landing\\040ship" 0 400 10 1 0 0 0 0 300 0 0 0 0 0 60 40 40 30 30 2 0 0 2 0 160 145 1000 2048 0 6 + Play#0 output Play#0 1 24 "af\\040\\040\\040asw\\040frigate" 0 60 60 4 0 0 0 0 120 0 0 0 0 0 40 30 50 35 30 5 2 2 4 0 120 220 800 4166 0 0 + Play#0 output Play#0 1 25 "na\\040\\040\\040nuc\\040attack\\040sub" 0 25 60 6 0 0 0 0 500 0 0 0 0 0 30 40 45 40 3 6 5 3 0 0 130 260 1200 4802 0 0 + Play#0 output Play#0 1 26 "ad\\040\\040\\040asw\\040destroyer" 0 100 80 6 40 0 0 0 500 0 0 0 0 0 40 40 60 40 35 6 8 3 10 2 140 240 1500 4166 0 0 + Play#0 output Play#0 1 27 "nm\\040\\040\\040nuc\\040miss\\040sub" 0 25 200 1 0 0 0 0 500 0 0 0 0 0 30 40 55 35 2 6 0 0 0 0 130 270 1500 592 20 0 + Play#0 output Play#0 1 28 "msb\\040\\040missile\\040sub" 0 25 100 1 0 0 0 0 500 0 0 0 0 0 30 30 35 30 3 3 0 0 0 0 110 230 1200 592 10 0 + Play#0 output Play#0 1 29 "mb\\040\\040\\040missile\\040boat" 0 5 100 3 0 0 0 0 500 0 0 0 0 0 20 20 15 40 15 3 2 2 0 0 80 180 500 16 10 0 + Play#0 output Play#0 1 30 "mf\\040\\040\\040missile\\040frigate" 0 60 220 4 0 0 0 0 120 0 0 0 0 0 40 30 50 35 30 5 2 2 2 0 120 280 1000 16 20 0 + Play#0 output Play#0 1 31 "mc\\040\\040\\040missile\\040cruiser" 0 120 500 6 160 0 0 0 200 0 0 0 0 0 50 50 70 35 35 8 8 6 8 8 170 290 1500 1048592 40 0 + Play#0 output Play#0 1 32 "aac\\040\\040aa\\040cruiser" 0 100 100 15 0 0 0 0 200 0 0 0 0 0 50 60 80 35 30 6 1 8 1 0 190 130 1500 1048576 0 4 + Play#0 output Play#0 1 33 "agc\\040\\040aegis\\040cruiser" 0 200 400 25 40 0 0 0 900 0 0 0 0 0 50 60 80 35 30 6 1 16 30 2 190 265 4000 1048592 32 0 + Play#0 output Play#0 1 34 "ncr\\040\\040nuc\\040cruiser" 0 200 400 8 40 0 0 0 900 0 0 0 0 0 50 50 100 45 35 6 14 7 10 2 170 325 1800 1048592 20 0 + Play#0 output Play#0 1 35 "nas\\040\\040nuc\\040asw\\040cruiser" 0 200 120 6 160 0 0 0 500 0 0 0 0 0 50 50 80 45 35 9 10 4 25 8 170 330 1800 4166 0 0 + Play#0 output Play#0 1 36 "nsp\\040\\040nuc\\040supply\\040ship" 50 50 600 50 999 0 0 0 999 0 1500 900 0 0 60 40 40 45 35 6 0 0 10 2 160 360 1500 262144 0 2 Play#0 output Play#0 1 /36 Play#0 output Play#0 6 0 640 Play#0 input xdump plane-chr * Play#0 command xdump Play#0 output Play#0 1 XDUMP plane-chr 0 - Play#0 output Play#0 1 0 "f1\\040\\040\\040Sopwith\\040Camel" 8 2 400 50 90 1 1 1 4 1 1 0 22 - Play#0 output Play#0 1 1 "f2\\040\\040\\040P-51\\040Mustang" 8 2 400 80 80 1 4 4 8 1 1 0 70 - Play#0 output Play#0 1 2 "jf1\\040\\040F-4\\040Phantom" 12 4 1000 125 45 1 14 14 11 2 3 0 70 - Play#0 output Play#0 1 3 "jf2\\040\\040AV-8B\\040Harrier" 12 4 1400 195 30 1 17 17 14 2 3 0 86 - Play#0 output Play#0 1 4 "sf\\040\\040\\040F-117A\\040Nighthawk" 15 5 3000 325 45 3 19 19 20 2 4 80 70 - Play#0 output Play#0 1 5 "es\\040\\040\\040P-38\\040Lightning" 9 3 700 90 60 1 5 5 15 1 2 0 131074 - Play#0 output Play#0 1 6 "jes\\040\\040F-14E\\040jet\\040escort" 14 8 1400 160 60 1 10 10 25 2 3 0 131074 - Play#0 output Play#0 1 7 "lb\\040\\040\\040TBD-1\\040Devastator" 10 3 550 60 50 2 0 3 7 1 1 0 83 - Play#0 output Play#0 1 8 "jl\\040\\040\\040A-6\\040Intruder" 14 4 1000 130 25 3 0 9 11 2 3 0 67 - Play#0 output Play#0 1 9 "mb\\040\\040\\040medium\\040bomber" 14 5 1000 80 45 4 0 5 14 3 3 0 3 - Play#0 output Play#0 1 10 "jfb\\040\\040FB-111\\040Aardvark\\040f/b" 20 10 1800 140 30 7 8 8 20 5 5 0 3 - Play#0 output Play#0 1 11 "hb\\040\\040\\040B-26B\\040Marauder" 20 6 1100 90 90 5 0 4 15 2 2 0 1 - Play#0 output Play#0 1 12 "jhb\\040\\040B-52\\040Strato-Fortress" 26 13 3200 150 80 12 0 11 35 5 6 0 1 - Play#0 output Play#0 1 13 "sb\\040\\040\\040B-2\\040stealth\\040bomber" 15 5 4000 325 25 8 0 15 28 2 5 80 3 - Play#0 output Play#0 1 14 "as\\040\\040\\040anti-sub\\040plane" 10 3 550 100 85 2 0 3 15 2 2 0 819202 - Play#0 output Play#0 1 15 "np\\040\\040\\040naval\\040plane" 20 10 1800 135 70 3 0 4 28 4 2 0 819274 - Play#0 output Play#0 1 16 "nc\\040\\040\\040AH-1\\040Cobra" 8 2 800 160 55 2 0 3 11 2 2 0 573458 - Play#0 output Play#0 1 17 "ac\\040\\040\\040AH-64\\040Apache" 8 2 800 200 15 1 0 9 11 2 2 40 16402 - Play#0 output Play#0 1 18 "tc\\040\\040\\040transport\\040chopper" 8 2 800 135 0 5 0 3 7 2 2 40 81944 - Play#0 output Play#0 1 19 "tr\\040\\040\\040C-56\\040Lodestar" 14 5 1000 85 0 7 0 2 15 3 3 0 65544 - Play#0 output Play#0 1 20 "jt\\040\\040\\040C-141\\040Starlifter" 18 5 1500 160 0 16 0 9 35 3 4 0 65544 - Play#0 output Play#0 1 21 "zep\\040\\040Zeppelin" 6 2 1000 70 60 2 0 -3 15 3 2 0 154 - Play#0 output Play#0 1 22 "re\\040\\040\\040recon" 12 4 800 130 0 0 0 4 15 2 2 20 128 - Play#0 output Play#0 1 23 "sp\\040\\040\\040E2-C\\040Hawkeye" 15 5 2000 190 0 0 0 11 32 2 5 50 128 - Play#0 output Play#0 1 24 "lst\\040\\040landsat" 20 20 2000 245 0 0 0 3 41 0 9 0 512 - Play#0 output Play#0 1 25 "ss\\040\\040\\040KH-7\\040spysat" 20 20 4000 305 0 0 0 3 61 0 9 0 896 - Play#0 output Play#0 1 26 "mi\\040\\040\\040Harpoon" 8 2 300 160 50 6 0 5 6 0 0 0 1048690 - Play#0 output Play#0 1 27 "sam\\040\\040Sea\\040Sparrow" 3 1 200 180 0 0 0 18 2 0 0 0 8308 - Play#0 output Play#0 1 28 "ssm\\040\\040V2" 15 15 800 145 60 3 0 3 4 0 0 0 50 - Play#0 output Play#0 1 29 "srbm\\040Atlas" 20 20 1000 200 60 6 0 5 9 0 0 0 50 - Play#0 output Play#0 1 30 "irbm\\040Titan" 20 20 1500 260 60 8 0 10 15 0 0 0 50 - Play#0 output Play#0 1 31 "icbm\\040Minuteman" 20 20 3000 310 60 10 0 15 41 0 0 0 50 - Play#0 output Play#0 1 32 "slbm\\040Trident" 20 20 2000 280 60 8 0 6 23 0 0 0 114 - Play#0 output Play#0 1 33 "asat\\040anti-sat" 20 20 2000 305 50 6 0 7 13 0 4 0 560 - Play#0 output Play#0 1 34 "abm\\040\\040Patriot" 16 8 1500 270 50 0 0 31 12 0 0 0 2096 + Play#0 output Play#0 1 0 "f1\\040\\040\\040Sopwith\\040Camel" 8 2 32 50 400 90 1 1 1 4 1 1 0 22 + Play#0 output Play#0 1 1 "f2\\040\\040\\040P-51\\040Mustang" 8 2 32 80 400 80 1 4 4 8 1 1 0 70 + Play#0 output Play#0 1 2 "jf1\\040\\040F-4\\040Phantom" 12 4 40 125 1000 45 1 14 14 11 2 3 0 70 + Play#0 output Play#0 1 3 "jf2\\040\\040AV-8B\\040Harrier" 12 4 40 195 1400 30 1 17 17 14 2 3 0 86 + Play#0 output Play#0 1 4 "sf\\040\\040\\040F-117A\\040Nighthawk" 15 5 45 325 3000 45 3 19 19 20 2 4 80 70 + Play#0 output Play#0 1 5 "es\\040\\040\\040P-38\\040Lightning" 9 3 35 90 700 60 1 5 5 15 1 2 0 131074 + Play#0 output Play#0 1 6 "jes\\040\\040F-14E\\040jet\\040escort" 14 8 50 160 1400 60 1 10 10 25 2 3 0 131074 + Play#0 output Play#0 1 7 "lb\\040\\040\\040TBD-1\\040Devastator" 10 3 36 60 550 50 2 0 3 7 1 1 0 83 + Play#0 output Play#0 1 8 "jl\\040\\040\\040A-6\\040Intruder" 14 4 42 130 1000 25 3 0 9 11 2 3 0 67 + Play#0 output Play#0 1 9 "mb\\040\\040\\040medium\\040bomber" 14 5 44 80 1000 45 4 0 5 14 3 3 0 3 + Play#0 output Play#0 1 10 "jfb\\040\\040FB-111\\040Aardvark\\040f/b" 20 10 60 140 1800 30 7 8 8 20 5 5 0 3 + Play#0 output Play#0 1 11 "hb\\040\\040\\040B-26B\\040Marauder" 20 6 52 90 1100 90 5 0 4 15 2 2 0 1 + Play#0 output Play#0 1 12 "jhb\\040\\040B-52\\040Strato-Fortress" 26 13 72 150 3200 80 12 0 11 35 5 6 0 1 + Play#0 output Play#0 1 13 "sb\\040\\040\\040B-2\\040stealth\\040bomber" 15 5 45 325 4000 25 8 0 15 28 2 5 80 3 + Play#0 output Play#0 1 14 "as\\040\\040\\040anti-sub\\040plane" 10 3 36 100 550 85 2 0 3 15 2 2 0 819202 + Play#0 output Play#0 1 15 "np\\040\\040\\040naval\\040plane" 20 10 60 135 1800 70 3 0 4 28 4 2 0 819274 + Play#0 output Play#0 1 16 "nc\\040\\040\\040AH-1\\040Cobra" 8 2 32 160 800 55 2 0 3 11 2 2 0 573458 + Play#0 output Play#0 1 17 "ac\\040\\040\\040AH-64\\040Apache" 8 2 32 200 800 15 1 0 9 11 2 2 40 16402 + Play#0 output Play#0 1 18 "tc\\040\\040\\040transport\\040chopper" 8 2 32 135 800 0 5 0 3 7 2 2 40 81944 + Play#0 output Play#0 1 19 "tr\\040\\040\\040C-56\\040Lodestar" 14 5 44 85 1000 0 7 0 2 15 3 3 0 65544 + Play#0 output Play#0 1 20 "jt\\040\\040\\040C-141\\040Starlifter" 18 5 48 160 1500 0 16 0 9 35 3 4 0 65544 + Play#0 output Play#0 1 21 "zep\\040\\040Zeppelin" 6 2 30 70 1000 60 2 0 -3 15 3 2 0 154 + Play#0 output Play#0 1 22 "re\\040\\040\\040recon" 12 4 40 130 800 0 0 0 4 15 2 2 20 128 + Play#0 output Play#0 1 23 "sp\\040\\040\\040E2-C\\040Hawkeye" 15 5 45 190 2000 0 0 0 11 32 2 5 50 128 + Play#0 output Play#0 1 24 "lst\\040\\040landsat" 20 20 80 245 2000 0 0 0 3 41 0 9 0 512 + Play#0 output Play#0 1 25 "ss\\040\\040\\040KH-7\\040spysat" 20 20 80 305 4000 0 0 0 3 61 0 9 0 896 + Play#0 output Play#0 1 26 "mi\\040\\040\\040Harpoon" 8 2 32 160 300 50 6 0 5 6 0 0 0 1048690 + Play#0 output Play#0 1 27 "sam\\040\\040Sea\\040Sparrow" 3 1 25 180 200 0 0 0 18 2 0 0 0 8308 + Play#0 output Play#0 1 28 "ssm\\040\\040V2" 15 15 65 145 800 60 3 0 3 4 0 0 0 50 + Play#0 output Play#0 1 29 "srbm\\040Atlas" 20 20 80 200 1000 60 6 0 5 9 0 0 0 50 + Play#0 output Play#0 1 30 "irbm\\040Titan" 20 20 80 260 1500 60 8 0 10 15 0 0 0 50 + Play#0 output Play#0 1 31 "icbm\\040Minuteman" 20 20 80 310 3000 60 10 0 15 41 0 0 0 50 + Play#0 output Play#0 1 32 "slbm\\040Trident" 20 20 80 280 2000 60 8 0 6 23 0 0 0 114 + Play#0 output Play#0 1 33 "asat\\040anti-sat" 20 20 80 305 2000 50 6 0 7 13 0 4 0 560 + Play#0 output Play#0 1 34 "abm\\040\\040Patriot" 16 8 52 270 1500 50 0 0 31 12 0 0 0 2096 Play#0 output Play#0 1 /35 Play#0 output Play#0 6 0 640 Play#0 input xdump land-chr * Play#0 command xdump Play#0 output Play#0 1 XDUMP land-chr 0 - Play#0 output Play#0 1 0 "cav\\040\\040cavalry" 0 20 0 0 0 0 0 0 12 0 0 0 0 0 10 5 30 500 1.20000 0.500000 80 32 18 4 3 0 0 0 0 0 80 0 0 - Play#0 output Play#0 1 1 "linf\\040light\\040infantry" 0 25 1 0 0 0 0 0 15 0 0 0 0 0 8 4 40 300 1.00000 1.50000 60 28 15 2 1 0 0 0 1 1 272 0 0 - Play#0 output Play#0 1 2 "inf\\040\\040infantry" 0 100 0 0 0 0 0 0 24 0 0 0 0 0 10 5 50 500 1.00000 1.50000 60 25 15 2 1 0 0 0 0 0 272 0 0 - Play#0 output Play#0 1 3 "mtif\\040motor\\040inf" 0 100 8 0 0 0 0 0 60 0 0 0 0 0 15 10 190 400 1.20000 2.20000 60 33 17 1 3 0 0 0 2 3 16 0 0 - Play#0 output Play#0 1 4 "mif\\040\\040mech\\040inf" 0 100 8 0 0 0 0 0 60 0 0 0 0 0 15 10 190 800 1.50000 2.50000 50 33 17 1 3 0 0 0 2 3 16 0 0 - Play#0 output Play#0 1 5 "mar\\040\\040marines" 0 100 4 0 0 0 0 0 60 0 0 0 0 0 10 5 140 1000 1.40000 2.40000 60 25 14 2 1 0 0 0 1 2 304 0 0 - Play#0 output Play#0 1 6 "sup\\040\\040supply" 0 25 200 10 300 100 100 10 300 0 200 100 0 0 10 5 50 500 0.100000 0.200000 80 25 20 1 0 0 0 0 0 0 20 0 0 - Play#0 output Play#0 1 7 "tra\\040\\040train" 0 990 990 200 990 500 500 100 990 990 990 990 0 150 100 50 40 3500 0.00000 0.00000 120 10 25 3 0 0 0 0 0 0 6148 5 12 - Play#0 output Play#0 1 8 "spy\\040\\040infiltrator" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 5 40 750 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 - Play#0 output Play#0 1 9 "com\\040\\040commando" 0 0 3 0 0 0 0 0 0 0 0 0 0 0 10 5 55 1500 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 - Play#0 output Play#0 1 10 "aau\\040\\040aa\\040unit" 0 20 5 0 0 0 0 0 12 0 0 0 0 0 20 10 70 500 0.500000 1.00000 60 18 20 1 1 0 0 0 1 2 528 0 0 - Play#0 output Play#0 1 11 "art\\040\\040artillery" 0 25 40 10 0 0 0 0 24 0 0 0 0 0 20 10 35 800 0.100000 0.400000 70 18 20 1 0 8 50 5 2 1 16 0 0 - Play#0 output Play#0 1 12 "lat\\040\\040lt\\040artillery" 0 25 20 6 0 0 0 0 12 0 0 0 0 0 20 10 70 500 0.200000 0.600000 60 30 18 1 1 5 10 3 1 1 16 0 0 - Play#0 output Play#0 1 13 "hat\\040\\040hvy\\040artillery" 0 25 80 12 0 0 0 0 24 0 0 0 0 0 40 20 100 800 0.00000 0.200000 60 12 20 1 0 11 99 8 4 1 0 0 0 - Play#0 output Play#0 1 14 "mat\\040\\040mech\\040artillery" 0 25 40 10 0 0 0 0 15 0 0 0 0 0 20 10 200 1000 0.200000 0.600000 50 35 17 1 1 8 35 6 3 3 16 0 0 - Play#0 output Play#0 1 15 "eng\\040\\040engineer" 0 20 3 0 0 0 0 0 12 0 0 0 0 0 10 5 130 3000 1.20000 2.40000 50 25 14 2 1 0 0 0 1 1 274 0 0 - Play#0 output Play#0 1 16 "meng\\040mech\\040engineer" 0 20 4 0 0 0 0 0 15 0 0 0 0 0 10 5 260 4500 1.80000 3.50000 45 33 15 3 3 0 0 0 1 5 274 0 0 - Play#0 output Play#0 1 17 "lar\\040\\040lt\\040armor" 0 50 4 0 0 0 0 0 30 0 0 0 0 0 10 5 150 600 2.00000 1.00000 50 42 15 4 4 0 0 0 1 2 80 0 0 - Play#0 output Play#0 1 18 "har\\040\\040hvy\\040armor" 0 100 3 0 0 0 0 0 48 0 0 0 0 0 20 10 120 500 2.00000 0.800000 50 18 17 1 1 0 0 0 2 1 0 0 0 - Play#0 output Play#0 1 19 "arm\\040\\040armor" 0 50 4 0 0 0 0 0 30 0 0 0 0 0 20 10 170 1000 3.00000 1.50000 40 33 16 2 2 0 0 0 1 2 16 0 0 - Play#0 output Play#0 1 20 "sec\\040\\040security" 0 50 4 0 0 0 0 0 30 0 0 0 0 0 10 5 170 600 1.00000 2.00000 60 25 15 2 1 0 0 0 1 1 24 0 0 - Play#0 output Play#0 1 21 "rad\\040\\040radar\\040unit" 0 10 0 0 0 0 0 0 7 0 0 0 0 0 10 5 270 1000 0.00000 0.00000 50 33 15 3 0 0 0 0 0 2 144 1 0 + Play#0 output Play#0 1 0 "cav\\040\\040cavalry" 0 20 0 0 0 0 0 0 12 0 0 0 0 0 10 5 40 30 500 1.20000 0.500000 80 32 18 4 3 0 0 0 0 0 80 0 0 + Play#0 output Play#0 1 1 "linf\\040light\\040infantry" 0 25 1 0 0 0 0 0 15 0 0 0 0 0 8 4 36 40 300 1.00000 1.50000 60 28 15 2 1 0 0 0 1 1 272 0 0 + Play#0 output Play#0 1 2 "inf\\040\\040infantry" 0 100 0 0 0 0 0 0 24 0 0 0 0 0 10 5 40 50 500 1.00000 1.50000 60 25 15 2 1 0 0 0 0 0 272 0 0 + Play#0 output Play#0 1 3 "mtif\\040motor\\040inf" 0 100 8 0 0 0 0 0 60 0 0 0 0 0 15 10 55 190 400 1.20000 2.20000 60 33 17 1 3 0 0 0 2 3 16 0 0 + Play#0 output Play#0 1 4 "mif\\040\\040mech\\040inf" 0 100 8 0 0 0 0 0 60 0 0 0 0 0 15 10 55 190 800 1.50000 2.50000 50 33 17 1 3 0 0 0 2 3 16 0 0 + Play#0 output Play#0 1 5 "mar\\040\\040marines" 0 100 4 0 0 0 0 0 60 0 0 0 0 0 10 5 40 140 1000 1.40000 2.40000 60 25 14 2 1 0 0 0 1 2 304 0 0 + Play#0 output Play#0 1 6 "sup\\040\\040supply" 0 25 200 10 300 100 100 10 300 0 200 100 0 0 10 5 40 50 500 0.100000 0.200000 80 25 20 1 0 0 0 0 0 0 20 0 0 + Play#0 output Play#0 1 7 "tra\\040\\040train" 0 990 990 200 990 500 500 100 990 990 990 990 0 150 100 50 220 40 3500 0.00000 0.00000 120 10 25 3 0 0 0 0 0 0 6148 5 12 + Play#0 output Play#0 1 8 "spy\\040\\040infiltrator" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 5 40 40 750 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 + Play#0 output Play#0 1 9 "com\\040\\040commando" 0 0 3 0 0 0 0 0 0 0 0 0 0 0 10 5 40 55 1500 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 + Play#0 output Play#0 1 10 "aau\\040\\040aa\\040unit" 0 20 5 0 0 0 0 0 12 0 0 0 0 0 20 10 60 70 500 0.500000 1.00000 60 18 20 1 1 0 0 0 1 2 528 0 0 + Play#0 output Play#0 1 11 "art\\040\\040artillery" 0 25 40 10 0 0 0 0 24 0 0 0 0 0 20 10 60 35 800 0.100000 0.400000 70 18 20 1 0 8 50 5 2 1 16 0 0 + Play#0 output Play#0 1 12 "lat\\040\\040lt\\040artillery" 0 25 20 6 0 0 0 0 12 0 0 0 0 0 20 10 60 70 500 0.200000 0.600000 60 30 18 1 1 5 10 3 1 1 16 0 0 + Play#0 output Play#0 1 13 "hat\\040\\040hvy\\040artillery" 0 25 80 12 0 0 0 0 24 0 0 0 0 0 40 20 100 100 800 0.00000 0.200000 60 12 20 1 0 11 99 8 4 1 0 0 0 + Play#0 output Play#0 1 14 "mat\\040\\040mech\\040artillery" 0 25 40 10 0 0 0 0 15 0 0 0 0 0 20 10 60 200 1000 0.200000 0.600000 50 35 17 1 1 8 35 6 3 3 16 0 0 + Play#0 output Play#0 1 15 "eng\\040\\040engineer" 0 20 3 0 0 0 0 0 12 0 0 0 0 0 10 5 40 130 3000 1.20000 2.40000 50 25 14 2 1 0 0 0 1 1 274 0 0 + Play#0 output Play#0 1 16 "meng\\040mech\\040engineer" 0 20 4 0 0 0 0 0 15 0 0 0 0 0 10 5 40 260 4500 1.80000 3.50000 45 33 15 3 3 0 0 0 1 5 274 0 0 + Play#0 output Play#0 1 17 "lar\\040\\040lt\\040armor" 0 50 4 0 0 0 0 0 30 0 0 0 0 0 10 5 40 150 600 2.00000 1.00000 50 42 15 4 4 0 0 0 1 2 80 0 0 + Play#0 output Play#0 1 18 "har\\040\\040hvy\\040armor" 0 100 3 0 0 0 0 0 48 0 0 0 0 0 20 10 60 120 500 2.00000 0.800000 50 18 17 1 1 0 0 0 2 1 0 0 0 + Play#0 output Play#0 1 19 "arm\\040\\040armor" 0 50 4 0 0 0 0 0 30 0 0 0 0 0 20 10 60 170 1000 3.00000 1.50000 40 33 16 2 2 0 0 0 1 2 16 0 0 + Play#0 output Play#0 1 20 "sec\\040\\040security" 0 50 4 0 0 0 0 0 30 0 0 0 0 0 10 5 40 170 600 1.00000 2.00000 60 25 15 2 1 0 0 0 1 1 24 0 0 + Play#0 output Play#0 1 21 "rad\\040\\040radar\\040unit" 0 10 0 0 0 0 0 0 7 0 0 0 0 0 10 5 40 270 1000 0.00000 0.00000 50 33 15 3 0 0 0 0 0 2 144 1 0 Play#0 output Play#0 1 /22 Play#0 output Play#0 6 0 640 Play#0 input xdump nuke-chr * Play#0 command xdump Play#0 output Play#0 1 XDUMP nuke-chr 0 - Play#0 output Play#0 1 0 "10kt\\040\\040fission" 50 50 25 70 3 70 10000 280 4 0 - Play#0 output Play#0 1 1 "15kt\\040\\040fission" 50 50 25 80 3 90 15000 290 5 0 - Play#0 output Play#0 1 2 "50kt\\040\\040fission" 60 60 30 90 3 100 25000 300 6 0 - Play#0 output Play#0 1 3 "100kt\\040fission" 75 75 40 120 4 125 30000 310 8 0 - Play#0 output Play#0 1 4 "5kt\\040\\040\\040fusion" 15 15 15 30 2 80 12500 315 1 0 - Play#0 output Play#0 1 5 "75kt\\040\\040fusion" 40 40 35 50 3 90 20000 320 3 0 - Play#0 output Play#0 1 6 "250kt\\040fusion" 50 50 45 60 4 110 25000 330 4 0 - Play#0 output Play#0 1 7 "500kt\\040fusion" 60 60 50 80 5 120 35000 340 5 0 - Play#0 output Play#0 1 8 "1mt\\040\\040\\040fusion" 75 75 50 110 6 150 40000 350 5 0 - Play#0 output Play#0 1 9 "60kt\\040\\040neutron" 60 60 30 100 3 30 30000 355 2 1 - Play#0 output Play#0 1 10 "3mt\\040\\040\\040fusion" 100 100 75 130 7 170 45000 360 6 0 - Play#0 output Play#0 1 11 "5mt\\040\\040\\040fusion" 120 120 100 150 8 190 50000 370 8 0 - Play#0 output Play#0 1 12 "120kt\\040neutron" 75 75 40 120 5 50 36000 375 3 1 + Play#0 output Play#0 1 0 "10kt\\040\\040fission" 50 50 25 70 3 70 49 280 10000 4 0 + Play#0 output Play#0 1 1 "15kt\\040\\040fission" 50 50 25 80 3 90 51 290 15000 5 0 + Play#0 output Play#0 1 2 "50kt\\040\\040fission" 60 60 30 90 3 100 60 300 25000 6 0 + Play#0 output Play#0 1 3 "100kt\\040fission" 75 75 40 120 4 125 77 310 30000 8 0 + Play#0 output Play#0 1 4 "5kt\\040\\040\\040fusion" 15 15 15 30 2 80 18 315 12500 1 0 + Play#0 output Play#0 1 5 "75kt\\040\\040fusion" 40 40 35 50 3 90 41 320 20000 3 0 + Play#0 output Play#0 1 6 "250kt\\040fusion" 50 50 45 60 4 110 51 330 25000 4 0 + Play#0 output Play#0 1 7 "500kt\\040fusion" 60 60 50 80 5 120 62 340 35000 5 0 + Play#0 output Play#0 1 8 "1mt\\040\\040\\040fusion" 75 75 50 110 6 150 77 350 40000 5 0 + Play#0 output Play#0 1 9 "60kt\\040\\040neutron" 60 60 30 100 3 30 62 355 30000 2 1 + Play#0 output Play#0 1 10 "3mt\\040\\040\\040fusion" 100 100 75 130 7 170 101 360 45000 6 0 + Play#0 output Play#0 1 11 "5mt\\040\\040\\040fusion" 120 120 100 150 8 190 122 370 50000 8 0 + Play#0 output Play#0 1 12 "120kt\\040neutron" 75 75 40 120 5 50 77 375 36000 3 1 Play#0 output Play#0 1 /13 Play#0 output Play#0 6 0 640 Play#0 input xdump news-chr * @@ -2246,57 +2250,57 @@ Play#1 input xdump ship-chr * Play#1 command xdump Play#1 output Play#1 1 XDUMP ship-chr 0 - Play#1 output Play#1 1 0 "fb\\040\\040\\040fishing\\040boat" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 10 15 2 0 0 0 0 0 180 524289 0 0 - Play#1 output Play#1 1 1 "ft\\040\\040\\040fishing\\040trawler" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 25 15 2 0 0 0 0 35 300 524289 0 0 - Play#1 output Play#1 1 2 "cs\\040\\040\\040cargo\\040ship" 600 50 300 50 0 0 0 0 900 0 1400 900 250 0 60 40 20 25 35 3 0 0 1 0 20 500 262144 0 2 - Play#1 output Play#1 1 3 "os\\040\\040\\040ore\\040ship" 30 5 0 0 0 990 990 0 200 0 0 0 45 990 60 40 20 25 35 3 0 0 1 0 20 500 0 0 0 - Play#1 output Play#1 1 4 "ss\\040\\040\\040slave\\040ship" 20 80 0 0 0 0 0 0 200 0 0 0 1200 0 60 40 20 10 35 3 0 0 1 0 0 300 0 0 0 - Play#1 output Play#1 1 6 "frg\\040\\040frigate" 0 60 10 2 0 0 0 0 60 0 0 0 0 0 30 30 50 25 25 3 1 1 1 0 0 600 16384 0 2 - Play#1 output Play#1 1 7 "oe\\040\\040\\040oil\\040exploration\\040boat" 10 5 0 0 0 0 0 0 100 1 0 0 0 0 25 15 10 25 15 2 0 0 0 0 40 800 524320 0 0 - Play#1 output Play#1 1 8 "od\\040\\040\\040oil\\040derrick" 990 80 0 0 0 0 0 0 990 990 0 0 990 0 60 60 30 15 65 3 0 0 2 0 50 1500 32 0 0 - Play#1 output Play#1 1 9 "pt\\040\\040\\040patrol\\040boat" 0 2 12 2 0 0 0 0 5 0 0 0 0 0 20 10 10 38 10 2 1 1 0 0 40 300 524290 0 0 - Play#1 output Play#1 1 10 "lc\\040\\040\\040light\\040cruiser" 0 100 40 5 0 0 0 0 100 0 0 0 0 0 30 40 50 30 30 5 6 3 1 0 45 800 128 0 2 - Play#1 output Play#1 1 11 "hc\\040\\040\\040heavy\\040cruiser" 0 120 100 8 0 0 0 0 200 0 0 0 0 0 40 50 70 30 30 5 8 4 1 0 50 1200 0 0 4 - Play#1 output Play#1 1 12 "tt\\040\\040\\040troop\\040transport" 0 120 20 4 0 0 0 0 120 0 0 0 0 0 50 50 60 20 35 3 1 2 1 0 10 800 16384 0 2 - Play#1 output Play#1 1 13 "bb\\040\\040\\040battleship" 0 200 200 10 0 0 0 0 900 0 0 0 0 0 50 70 95 25 35 6 10 7 1 0 45 1800 0 0 2 - Play#1 output Play#1 1 14 "bbc\\040\\040battlecruiser" 0 180 100 10 0 0 0 0 400 0 0 0 0 0 50 60 55 30 35 6 10 6 1 0 75 1500 0 0 2 - Play#1 output Play#1 1 15 "tk\\040\\040\\040tanker" 30 5 0 0 990 0 0 0 200 990 0 0 25 0 60 40 75 25 45 3 0 0 1 0 35 600 262144 0 0 - Play#1 output Play#1 1 16 "ms\\040\\040\\040minesweeper" 0 10 100 1 0 0 0 0 90 0 0 0 0 0 25 15 10 25 15 2 0 0 0 0 40 400 524672 0 0 - Play#1 output Play#1 1 17 "dd\\040\\040\\040destroyer" 0 60 40 4 0 0 0 0 80 0 0 0 0 0 30 30 45 35 20 4 6 3 1 0 70 600 196 0 1 - Play#1 output Play#1 1 18 "sb\\040\\040\\040submarine" 0 25 36 5 0 0 0 0 80 0 0 0 0 0 30 30 25 20 5 4 3 3 0 0 60 650 706 0 0 - Play#1 output Play#1 1 20 "cal\\040\\040light\\040carrier" 0 175 250 4 300 0 0 0 180 0 0 0 0 0 50 60 60 30 40 5 2 2 4 20 80 2700 8 20 0 + Play#1 output Play#1 1 0 "fb\\040\\040\\040fishing\\040boat" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 10 15 2 0 0 0 0 75 0 180 524289 0 0 + Play#1 output Play#1 1 1 "ft\\040\\040\\040fishing\\040trawler" 300 10 0 0 0 0 0 0 900 0 0 0 15 0 25 15 10 25 15 2 0 0 0 0 75 35 300 524289 0 0 + Play#1 output Play#1 1 2 "cs\\040\\040\\040cargo\\040ship" 600 50 300 50 0 0 0 0 900 0 1400 900 250 0 60 40 20 25 35 3 0 0 1 0 160 20 500 262144 0 2 + Play#1 output Play#1 1 3 "os\\040\\040\\040ore\\040ship" 30 5 0 0 0 990 990 0 200 0 0 0 45 990 60 40 20 25 35 3 0 0 1 0 160 20 500 0 0 0 + Play#1 output Play#1 1 4 "ss\\040\\040\\040slave\\040ship" 20 80 0 0 0 0 0 0 200 0 0 0 1200 0 60 40 20 10 35 3 0 0 1 0 160 0 300 0 0 0 + Play#1 output Play#1 1 6 "frg\\040\\040frigate" 0 60 10 2 0 0 0 0 60 0 0 0 0 0 30 30 50 25 25 3 1 1 1 0 110 0 600 16384 0 2 + Play#1 output Play#1 1 7 "oe\\040\\040\\040oil\\040exploration\\040boat" 10 5 0 0 0 0 0 0 100 1 0 0 0 0 25 15 10 25 15 2 0 0 0 0 75 40 800 524320 0 0 + Play#1 output Play#1 1 8 "od\\040\\040\\040oil\\040derrick" 990 80 0 0 0 0 0 0 990 990 0 0 990 0 60 60 30 15 65 3 0 0 2 0 200 50 1500 32 0 0 + Play#1 output Play#1 1 9 "pt\\040\\040\\040patrol\\040boat" 0 2 12 2 0 0 0 0 5 0 0 0 0 0 20 10 10 38 10 2 1 1 0 0 60 40 300 524290 0 0 + Play#1 output Play#1 1 10 "lc\\040\\040\\040light\\040cruiser" 0 100 40 5 0 0 0 0 100 0 0 0 0 0 30 40 50 30 30 5 6 3 1 0 130 45 800 128 0 2 + Play#1 output Play#1 1 11 "hc\\040\\040\\040heavy\\040cruiser" 0 120 100 8 0 0 0 0 200 0 0 0 0 0 40 50 70 30 30 5 8 4 1 0 160 50 1200 0 0 4 + Play#1 output Play#1 1 12 "tt\\040\\040\\040troop\\040transport" 0 120 20 4 0 0 0 0 120 0 0 0 0 0 50 50 60 20 35 3 1 2 1 0 170 10 800 16384 0 2 + Play#1 output Play#1 1 13 "bb\\040\\040\\040battleship" 0 200 200 10 0 0 0 0 900 0 0 0 0 0 50 70 95 25 35 6 10 7 1 0 210 45 1800 0 0 2 + Play#1 output Play#1 1 14 "bbc\\040\\040battlecruiser" 0 180 100 10 0 0 0 0 400 0 0 0 0 0 50 60 55 30 35 6 10 6 1 0 190 75 1500 0 0 2 + Play#1 output Play#1 1 15 "tk\\040\\040\\040tanker" 30 5 0 0 990 0 0 0 200 990 0 0 25 0 60 40 75 25 45 3 0 0 1 0 160 35 600 262144 0 0 + Play#1 output Play#1 1 16 "ms\\040\\040\\040minesweeper" 0 10 100 1 0 0 0 0 90 0 0 0 0 0 25 15 10 25 15 2 0 0 0 0 75 40 400 524672 0 0 + Play#1 output Play#1 1 17 "dd\\040\\040\\040destroyer" 0 60 40 4 0 0 0 0 80 0 0 0 0 0 30 30 45 35 20 4 6 3 1 0 110 70 600 196 0 1 + Play#1 output Play#1 1 18 "sb\\040\\040\\040submarine" 0 25 36 5 0 0 0 0 80 0 0 0 0 0 30 30 25 20 5 4 3 3 0 0 110 60 650 706 0 0 + Play#1 output Play#1 1 20 "cal\\040\\040light\\040carrier" 0 175 250 4 300 0 0 0 180 0 0 0 0 0 50 60 60 30 40 5 2 2 4 20 190 80 2700 8 20 0 Play#1 output Play#1 1 /19 Play#1 output Play#1 6 0 0 Play#1 input xdump plane-chr * Play#1 command xdump Play#1 output Play#1 1 XDUMP plane-chr 0 - Play#1 output Play#1 1 0 "f1\\040\\040\\040Sopwith\\040Camel" 8 2 400 50 90 1 1 1 4 1 1 0 22 - Play#1 output Play#1 1 1 "f2\\040\\040\\040P-51\\040Mustang" 8 2 400 80 80 1 4 4 8 1 1 0 70 - Play#1 output Play#1 1 2 "jf1\\040\\040F-4\\040Phantom" 12 4 1000 125 45 1 14 14 11 2 3 0 70 - Play#1 output Play#1 1 5 "es\\040\\040\\040P-38\\040Lightning" 9 3 700 90 60 1 5 5 15 1 2 0 131074 - Play#1 output Play#1 1 7 "lb\\040\\040\\040TBD-1\\040Devastator" 10 3 550 60 50 2 0 3 7 1 1 0 83 - Play#1 output Play#1 1 9 "mb\\040\\040\\040medium\\040bomber" 14 5 1000 80 45 4 0 5 14 3 3 0 3 - Play#1 output Play#1 1 11 "hb\\040\\040\\040B-26B\\040Marauder" 20 6 1100 90 90 5 0 4 15 2 2 0 1 - Play#1 output Play#1 1 14 "as\\040\\040\\040anti-sub\\040plane" 10 3 550 100 85 2 0 3 15 2 2 0 819202 - Play#1 output Play#1 1 19 "tr\\040\\040\\040C-56\\040Lodestar" 14 5 1000 85 0 7 0 2 15 3 3 0 65544 - Play#1 output Play#1 1 21 "zep\\040\\040Zeppelin" 6 2 1000 70 60 2 0 -3 15 3 2 0 154 + Play#1 output Play#1 1 0 "f1\\040\\040\\040Sopwith\\040Camel" 8 2 32 50 400 90 1 1 1 4 1 1 0 22 + Play#1 output Play#1 1 1 "f2\\040\\040\\040P-51\\040Mustang" 8 2 32 80 400 80 1 4 4 8 1 1 0 70 + Play#1 output Play#1 1 2 "jf1\\040\\040F-4\\040Phantom" 12 4 40 125 1000 45 1 14 14 11 2 3 0 70 + Play#1 output Play#1 1 5 "es\\040\\040\\040P-38\\040Lightning" 9 3 35 90 700 60 1 5 5 15 1 2 0 131074 + Play#1 output Play#1 1 7 "lb\\040\\040\\040TBD-1\\040Devastator" 10 3 36 60 550 50 2 0 3 7 1 1 0 83 + Play#1 output Play#1 1 9 "mb\\040\\040\\040medium\\040bomber" 14 5 44 80 1000 45 4 0 5 14 3 3 0 3 + Play#1 output Play#1 1 11 "hb\\040\\040\\040B-26B\\040Marauder" 20 6 52 90 1100 90 5 0 4 15 2 2 0 1 + Play#1 output Play#1 1 14 "as\\040\\040\\040anti-sub\\040plane" 10 3 36 100 550 85 2 0 3 15 2 2 0 819202 + Play#1 output Play#1 1 19 "tr\\040\\040\\040C-56\\040Lodestar" 14 5 44 85 1000 0 7 0 2 15 3 3 0 65544 + Play#1 output Play#1 1 21 "zep\\040\\040Zeppelin" 6 2 30 70 1000 60 2 0 -3 15 3 2 0 154 Play#1 output Play#1 1 /10 Play#1 output Play#1 6 0 0 Play#1 input xdump land-chr * Play#1 command xdump Play#1 output Play#1 1 XDUMP land-chr 0 - Play#1 output Play#1 1 0 "cav\\040\\040cavalry" 0 20 0 0 0 0 0 0 12 0 0 0 0 0 10 5 30 500 1.20000 0.500000 80 32 18 4 3 0 0 0 0 0 80 0 0 - Play#1 output Play#1 1 1 "linf\\040light\\040infantry" 0 25 1 0 0 0 0 0 15 0 0 0 0 0 8 4 40 300 1.00000 1.50000 60 28 15 2 1 0 0 0 1 1 272 0 0 - Play#1 output Play#1 1 2 "inf\\040\\040infantry" 0 100 0 0 0 0 0 0 24 0 0 0 0 0 10 5 50 500 1.00000 1.50000 60 25 15 2 1 0 0 0 0 0 272 0 0 - Play#1 output Play#1 1 6 "sup\\040\\040supply" 0 25 200 10 300 100 100 10 300 0 200 100 0 0 10 5 50 500 0.100000 0.200000 80 25 20 1 0 0 0 0 0 0 20 0 0 - Play#1 output Play#1 1 7 "tra\\040\\040train" 0 990 990 200 990 500 500 100 990 990 990 990 0 150 100 50 40 3500 0.00000 0.00000 120 10 25 3 0 0 0 0 0 0 6148 5 12 - Play#1 output Play#1 1 8 "spy\\040\\040infiltrator" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 5 40 750 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 - Play#1 output Play#1 1 9 "com\\040\\040commando" 0 0 3 0 0 0 0 0 0 0 0 0 0 0 10 5 55 1500 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 - Play#1 output Play#1 1 10 "aau\\040\\040aa\\040unit" 0 20 5 0 0 0 0 0 12 0 0 0 0 0 20 10 70 500 0.500000 1.00000 60 18 20 1 1 0 0 0 1 2 528 0 0 - Play#1 output Play#1 1 11 "art\\040\\040artillery" 0 25 40 10 0 0 0 0 24 0 0 0 0 0 20 10 35 800 0.100000 0.400000 70 18 20 1 0 8 50 5 2 1 16 0 0 - Play#1 output Play#1 1 12 "lat\\040\\040lt\\040artillery" 0 25 20 6 0 0 0 0 12 0 0 0 0 0 20 10 70 500 0.200000 0.600000 60 30 18 1 1 5 10 3 1 1 16 0 0 - Play#1 output Play#1 1 13 "hat\\040\\040hvy\\040artillery" 0 25 80 12 0 0 0 0 24 0 0 0 0 0 40 20 100 800 0.00000 0.200000 60 12 20 1 0 11 99 8 4 1 0 0 0 - Play#1 output Play#1 1 18 "har\\040\\040hvy\\040armor" 0 100 3 0 0 0 0 0 48 0 0 0 0 0 20 10 120 500 2.00000 0.800000 50 18 17 1 1 0 0 0 2 1 0 0 0 + Play#1 output Play#1 1 0 "cav\\040\\040cavalry" 0 20 0 0 0 0 0 0 12 0 0 0 0 0 10 5 40 30 500 1.20000 0.500000 80 32 18 4 3 0 0 0 0 0 80 0 0 + Play#1 output Play#1 1 1 "linf\\040light\\040infantry" 0 25 1 0 0 0 0 0 15 0 0 0 0 0 8 4 36 40 300 1.00000 1.50000 60 28 15 2 1 0 0 0 1 1 272 0 0 + Play#1 output Play#1 1 2 "inf\\040\\040infantry" 0 100 0 0 0 0 0 0 24 0 0 0 0 0 10 5 40 50 500 1.00000 1.50000 60 25 15 2 1 0 0 0 0 0 272 0 0 + Play#1 output Play#1 1 6 "sup\\040\\040supply" 0 25 200 10 300 100 100 10 300 0 200 100 0 0 10 5 40 50 500 0.100000 0.200000 80 25 20 1 0 0 0 0 0 0 20 0 0 + Play#1 output Play#1 1 7 "tra\\040\\040train" 0 990 990 200 990 500 500 100 990 990 990 990 0 150 100 50 220 40 3500 0.00000 0.00000 120 10 25 3 0 0 0 0 0 0 6148 5 12 + Play#1 output Play#1 1 8 "spy\\040\\040infiltrator" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 5 40 40 750 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 + Play#1 output Play#1 1 9 "com\\040\\040commando" 0 0 3 0 0 0 0 0 0 0 0 0 0 0 10 5 40 55 1500 0.00000 0.00000 80 32 18 4 3 0 0 0 0 0 1360 0 0 + Play#1 output Play#1 1 10 "aau\\040\\040aa\\040unit" 0 20 5 0 0 0 0 0 12 0 0 0 0 0 20 10 60 70 500 0.500000 1.00000 60 18 20 1 1 0 0 0 1 2 528 0 0 + Play#1 output Play#1 1 11 "art\\040\\040artillery" 0 25 40 10 0 0 0 0 24 0 0 0 0 0 20 10 60 35 800 0.100000 0.400000 70 18 20 1 0 8 50 5 2 1 16 0 0 + Play#1 output Play#1 1 12 "lat\\040\\040lt\\040artillery" 0 25 20 6 0 0 0 0 12 0 0 0 0 0 20 10 60 70 500 0.200000 0.600000 60 30 18 1 1 5 10 3 1 1 16 0 0 + Play#1 output Play#1 1 13 "hat\\040\\040hvy\\040artillery" 0 25 80 12 0 0 0 0 24 0 0 0 0 0 40 20 100 100 800 0.00000 0.200000 60 12 20 1 0 11 99 8 4 1 0 0 0 + Play#1 output Play#1 1 18 "har\\040\\040hvy\\040armor" 0 100 3 0 0 0 0 0 48 0 0 0 0 0 20 10 60 120 500 2.00000 0.800000 50 18 17 1 1 0 0 0 2 1 0 0 0 Play#1 output Play#1 1 /12 Play#1 output Play#1 6 0 0 Play#1 input xdump nuke-chr * -- 2.43.0