static void list_realm(int curr, struct natstr *natp) { struct realmstr realm; getrealm(curr, natp->nat_cnum, &realm); pr("Realm #%d is %d:%d,%d:%d\n", curr, xrel(natp, realm.r_xl), xrel(natp, realm.r_xh), yrel(natp, realm.r_yl), yrel(natp, realm.r_yh)); }
/* * Print coordinates @x,@y. * @format must be a printf-style format string that converts exactly * two int values. */ void prxy(char *format, coord x, coord y) { struct natstr *np; np = getnatp(player->cnum); pr(format, xrel(np, x), yrel(np, y)); }
int pdump(void) { int nplanes; struct nstr_item np; struct plnstr plane; struct nukstr nuke; int field[128]; struct natstr *natp; int n, i; time_t now; if (!snxtitem(&np, EF_PLANE, player->argp[1], NULL)) return RET_SYN; prdate(); if (!player->argp[2]) { for (n = 1; n <= 32; n++) field[n - 1] = n; field[n - 1] = 0; } else { n = 2; i = 0; while (player->argp[n]) { if (!strcmp("type", player->argp[n])) { field[i++] = 1; } else if (!strcmp("x", player->argp[n])) { field[i++] = 2; } else if (!strcmp("y", player->argp[n])) { field[i++] = 3; } else if (!strcmp("wing", player->argp[n])) { field[i++] = 4; } else if (!strcmp("eff", player->argp[n])) { field[i++] = 5; } else if (!strcmp("mob", player->argp[n])) { field[i++] = 6; } else if (!strcmp("tech", player->argp[n])) { field[i++] = 7; } else if (!strcmp("att", player->argp[n])) { field[i++] = 8; } else if (!strcmp("def", player->argp[n])) { field[i++] = 9; } else if (!strcmp("acc", player->argp[n])) { field[i++] = 10; } else if (!strcmp("react", player->argp[n])) { field[i++] = 11; } else if (!strcmp("range", player->argp[n])) { field[i++] = 12; } else if (!strcmp("load", player->argp[n])) { field[i++] = 13; } else if (!strcmp("fuel", player->argp[n])) { field[i++] = 14; } else if (!strcmp("hard", player->argp[n])) { field[i++] = 15; } else if (!strcmp("ship", player->argp[n])) { field[i++] = 16; } else if (!strcmp("land", player->argp[n])) { field[i++] = 17; } else if (!strcmp("laun", player->argp[n])) { field[i++] = 18; } else if (!strcmp("orb", player->argp[n])) { field[i++] = 19; } else if (!strcmp("nuke", player->argp[n])) { field[i++] = 20; } else if (!strcmp("grd", player->argp[n])) { field[i++] = 21; } else { pr("Unrecognized field %s\n", player->argp[n]); } if (n++ > 100) { pr("Too many fields\n"); return RET_FAIL; } } field[i] = 0; } if (player->god) pr(" "); time(&now); pr("DUMP PLANES %ld\n", (long)now); if (player->god) pr("own "); pr("id"); n = 0; while (field[n]) { switch (field[n]) { case 1: pr(" type"); break; case 2: pr(" x"); break; case 3: pr(" y"); break; case 4: pr(" wing"); break; case 5: pr(" eff"); break; case 6: pr(" mob"); break; case 7: pr(" tech"); break; case 8: pr(" att"); break; case 9: pr(" def"); break; case 10: pr(" acc"); break; case 11: pr(" react"); break; case 12: pr(" range"); break; case 13: pr(" load"); break; case 14: pr(" fuel"); break; case 15: pr(" hard"); break; case 16: pr(" ship"); break; case 17: pr(" land"); break; case 18: pr(" laun"); break; case 19: pr(" orb"); break; case 20: pr(" nuke"); break; case 21: pr(" grd"); break; } n++; } pr("\n"); nplanes = 0; natp = getnatp(player->cnum); while (nxtitem(&np, &plane)) { if (!player->owner || plane.pln_own == 0) continue; nplanes++; if (player->god) pr("%d ", plane.pln_own); pr("%d", np.cur); n = 0; while (field[n]) { switch (field[n++]) { case 1: pr(" %.4s", plchr[(int)plane.pln_type].pl_name); break; case 2: pr(" %d", xrel(natp, plane.pln_x)); break; case 3: pr(" %d", yrel(natp, plane.pln_y)); break; case 4: pr(" %c", plane.pln_wing ? plane.pln_wing : '~'); break; case 5: pr(" %d", plane.pln_effic); break; case 6: pr(" %d", plane.pln_mobil); break; case 7: pr(" %d", plane.pln_tech); break; case 8: pr(" %d", pln_att(&plane)); break; case 9: pr(" %d", pln_def(&plane)); break; case 10: pr(" %d", pln_acc(&plane)); break; case 11: pr(" %d", plane.pln_range); break; case 12: pr(" %d", pln_range_max(&plane)); break; case 13: pr(" %d", pln_load(&plane)); break; case 14: pr(" %d", plchr[(int)plane.pln_type].pl_fuel); break; case 15: pr(" %d", plane.pln_harden); break; case 16: pr(" %d", plane.pln_ship); break; case 17: pr(" %d", plane.pln_land); break; case 18: pr(pln_is_in_orbit(&plane) ? " Y" : " N"); break; case 19: pr(pln_is_in_orbit(&plane) && (plane.pln_flags & PLN_SYNCHRONOUS) ? " Y" : " N"); break; case 20: if (getnuke(nuk_on_plane(&plane), &nuke)) { pr(" %.5s", nchr[nuke.nuk_type].n_name); break; } else pr(" N/A"); break; case 21: pr(" %c", plane.pln_flags & PLN_AIRBURST ? 'A' : 'G'); break; } } pr("\n"); } if (nplanes == 0) { if (player->argp[1]) pr("%s: No plane(s)\n", player->argp[1]); else pr("%s: No plane(s)\n", ""); return RET_FAIL; } else pr("%d plane%s\n", nplanes, splur(nplanes)); return RET_OK; }
int sdump(void) { int nships; struct nstr_item ni; struct shpstr ship; int field[128]; struct natstr *np; int n, i, npln, nch, nxl; time_t now; if (!snxtitem(&ni, EF_SHIP, player->argp[1], NULL)) return RET_SYN; prdate(); if (!player->argp[2]) { for (n = 1; n <= 34; n++) field[n - 1] = n; field[n - 1] = 0; } else { n = 2; i = 0; while (player->argp[n]) { if (!strcmp("type", player->argp[n])) { field[i++] = 1; } else if (!strcmp("x", player->argp[n])) { field[i++] = 2; } else if (!strcmp("y", player->argp[n])) { field[i++] = 3; } else if (!strcmp("flt", player->argp[n])) { field[i++] = 4; } else if (!strcmp("eff", player->argp[n])) { field[i++] = 5; } else if (!strcmp("civ", player->argp[n])) { field[i++] = 6; } else if (!strcmp("mil", player->argp[n])) { field[i++] = 7; } else if (!strcmp("uw", player->argp[n])) { field[i++] = 8; } else if (!strcmp("food", player->argp[n])) { field[i++] = 9; } else if (!strcmp("pln", player->argp[n])) { field[i++] = 10; } else if (!strcmp("he", player->argp[n])) { field[i++] = 11; } else if (!strcmp("xl", player->argp[n])) { field[i++] = 12; } else if (!strcmp("land", player->argp[n])) { field[i++] = 13; } else if (!strcmp("mob", player->argp[n])) { field[i++] = 14; } else if (!strcmp("fuel", player->argp[n])) { field[i++] = 15; } else if (!strcmp("tech", player->argp[n])) { field[i++] = 16; } else if (!strcmp("shell", player->argp[n])) { field[i++] = 17; } else if (!strcmp("gun", player->argp[n])) { field[i++] = 18; } else if (!strcmp("petrol", player->argp[n])) { field[i++] = 19; } else if (!strcmp("iron", player->argp[n])) { field[i++] = 20; } else if (!strcmp("dust", player->argp[n])) { field[i++] = 21; } else if (!strcmp("bar", player->argp[n])) { field[i++] = 22; } else if (!strcmp("oil", player->argp[n])) { field[i++] = 23; } else if (!strcmp("lcm", player->argp[n])) { field[i++] = 24; } else if (!strcmp("hcm", player->argp[n])) { field[i++] = 25; } else if (!strcmp("rad", player->argp[n])) { field[i++] = 26; } else if (!strcmp("def", player->argp[n])) { field[i++] = 27; } else if (!strcmp("spd", player->argp[n])) { field[i++] = 28; } else if (!strcmp("vis", player->argp[n])) { field[i++] = 29; } else if (!strcmp("rng", player->argp[n])) { field[i++] = 30; } else if (!strcmp("fir", player->argp[n])) { field[i++] = 31; } else if (!strcmp("origx", player->argp[n])) { field[i++] = 32; } else if (!strcmp("origy", player->argp[n])) { field[i++] = 33; } else if (!strcmp("name", player->argp[n])) { field[i++] = 34; } else { pr("Unrecognized field %s\n", player->argp[n]); } if (n++ > 100) { pr("Too many fields\n"); return RET_FAIL; } } field[i] = 0; } if (player->god) pr(" "); time(&now); pr("DUMP SHIPS %ld\n", (long)now); if (player->god) pr("own "); pr("id"); n = 0; while (field[n]) { switch (field[n]) { case 1: pr(" type"); break; case 2: pr(" x"); break; case 3: pr(" y"); break; case 4: pr(" flt"); break; case 5: pr(" eff"); break; case 6: pr(" civ"); break; case 7: pr(" mil"); break; case 8: pr(" uw"); break; case 9: pr(" food"); break; case 10: pr(" pln"); break; case 11: pr(" he"); break; case 12: pr(" xl"); break; case 13: pr(" land"); break; case 14: pr(" mob"); break; case 15: pr(" fuel"); break; case 16: pr(" tech"); break; case 17: pr(" shell"); break; case 18: pr(" gun"); break; case 19: pr(" petrol"); break; case 20: pr(" iron"); break; case 21: pr(" dust"); break; case 22: pr(" bar"); break; case 23: pr(" oil"); break; case 24: pr(" lcm"); break; case 25: pr(" hcm"); break; case 26: pr(" rad"); break; case 27: pr(" def"); break; case 28: pr(" spd"); break; case 29: pr(" vis"); break; case 30: pr(" rng"); break; case 31: pr(" fir"); break; case 32: pr(" origx"); break; case 33: pr(" origy"); break; case 34: pr(" name"); break; } n++; } pr("\n"); nships = 0; np = getnatp(player->cnum); while (nxtitem(&ni, &ship)) { if (!player->owner || ship.shp_own == 0) continue; nships++; npln = shp_nplane(&ship, &nch, &nxl, NULL); if (player->god) pr("%d ", ship.shp_own); pr("%d", ni.cur); n = 0; while (field[n]) { switch (field[n++]) { case 1: pr(" %.4s", mchr[(int)ship.shp_type].m_name); break; case 2: pr(" %d", xrel(np, ship.shp_x)); break; case 3: pr(" %d", yrel(np, ship.shp_y)); break; case 4: pr(" %c", ship.shp_fleet ? ship.shp_fleet : '~'); break; case 5: pr(" %d", ship.shp_effic); break; case 6: pr(" %d", ship.shp_item[I_CIVIL]); break; case 7: pr(" %d", ship.shp_item[I_MILIT]); break; case 8: pr(" %d", ship.shp_item[I_UW]); break; case 9: pr(" %d", ship.shp_item[I_FOOD]); break; case 10: pr(" %d", npln - nch - nxl); break; case 11: pr(" %d", nch); break; case 12: pr(" %d", nxl); break; case 13: pr(" %d", shp_nland(&ship)); break; case 14: pr(" %d", ship.shp_mobil); break; case 15: pr(" 0"); break; case 16: pr(" %d", ship.shp_tech); break; case 17: pr(" %d", ship.shp_item[I_SHELL]); break; case 18: pr(" %d", ship.shp_item[I_GUN]); break; case 19: pr(" %d", ship.shp_item[I_PETROL]); break; case 20: pr(" %d", ship.shp_item[I_IRON]); break; case 21: pr(" %d", ship.shp_item[I_DUST]); break; case 22: pr(" %d", ship.shp_item[I_BAR]); break; case 23: pr(" %d", ship.shp_item[I_OIL]); break; case 24: pr(" %d", ship.shp_item[I_LCM]); break; case 25: pr(" %d", ship.shp_item[I_HCM]); break; case 26: pr(" %d", ship.shp_item[I_RAD]); break; case 27: pr(" %d", shp_armor(&ship)); break; case 28: pr(" %d", shp_speed(&ship)); break; case 29: pr(" %d", shp_visib(&ship)); break; case 30: pr(" %d", shp_frnge(&ship)); break; case 31: pr(" %d", shp_glim(&ship)); break; case 32: /* * Disclosing construction site allows pirates to find * harbors. Disclose it only to the original owner * and to deities. Else dump illegal coordinates * 1,0 */ if (ship.shp_own == ship.shp_orig_own || player->god) pr(" %d", xrel(np, ship.shp_orig_x)); else pr(" 1"); break; case 33: /* see case 32 */ if (ship.shp_own == ship.shp_orig_own || player->god) pr(" %d", yrel(np, ship.shp_orig_y)); else pr(" 0"); break; case 34: pr(" %c%s%c", '"', ship.shp_name, '"'); break; } } pr("\n"); } if (nships == 0) { if (player->argp[1]) pr("%s: No ship(s)\n", player->argp[1]); else pr("%s: No ship(s)\n", ""); return RET_FAIL; } else pr("%d ship%s\n", nships, splur(nships)); return RET_OK; }
int dump(void) { struct sctstr sect; char dirstr[20]; int nsect; int n, i; struct nstr_sect nstr; int field[128]; struct natstr *np; time_t now; if (!snxtsct(&nstr, player->argp[1])) return RET_SYN; prdate(); (void)strcpy(dirstr, ". $"); for (n = 1; n <= 6; n++) dirstr[n] = dirch[n]; nsect = 0; np = getnatp(player->cnum); if (!player->argp[2]) { for (n = 1; n <= 80; n++) field[n - 1] = n; field[n - 1] = 0; } else { n = 2; i = 0; while (player->argp[n]) { if (!strcmp("des", player->argp[n])) { field[i++] = 1; } else if (!strcmp("sdes", player->argp[n])) { field[i++] = 2; } else if (!strcmp("eff", player->argp[n])) { field[i++] = 3; } else if (!strcmp("mob", player->argp[n])) { field[i++] = 4; } else if (!strcmp("*", player->argp[n])) { field[i++] = 5; } else if (!strcmp("off", player->argp[n])) { field[i++] = 6; } else if (!strcmp("min", player->argp[n])) { field[i++] = 7; } else if (!strcmp("gold", player->argp[n])) { field[i++] = 8; } else if (!strcmp("fert", player->argp[n])) { field[i++] = 9; } else if (!strcmp("ocontent", player->argp[n])) { field[i++] = 10; } else if (!strcmp("uran", player->argp[n])) { field[i++] = 11; } else if (!strcmp("work", player->argp[n])) { field[i++] = 12; } else if (!strcmp("avail", player->argp[n])) { field[i++] = 13; } else if (!strcmp("terr", player->argp[n])) { field[i++] = 14; } else if (!strcmp("civ", player->argp[n])) { field[i++] = 15; } else if (!strcmp("mil", player->argp[n])) { field[i++] = 16; } else if (!strcmp("uw", player->argp[n])) { field[i++] = 17; } else if (!strcmp("food", player->argp[n])) { field[i++] = 18; } else if (!strcmp("shell", player->argp[n])) { field[i++] = 19; } else if (!strcmp("gun", player->argp[n])) { field[i++] = 20; } else if (!strcmp("pet", player->argp[n])) { field[i++] = 21; } else if (!strcmp("iron", player->argp[n])) { field[i++] = 22; } else if (!strcmp("dust", player->argp[n])) { field[i++] = 23; } else if (!strcmp("bar", player->argp[n])) { field[i++] = 24; } else if (!strcmp("oil", player->argp[n])) { field[i++] = 25; } else if (!strcmp("lcm", player->argp[n])) { field[i++] = 26; } else if (!strcmp("hcm", player->argp[n])) { field[i++] = 27; } else if (!strcmp("rad", player->argp[n])) { field[i++] = 28; } else if (!strcmp("u_del", player->argp[n])) { field[i++] = 29; } else if (!strcmp("f_del", player->argp[n])) { field[i++] = 30; } else if (!strcmp("s_del", player->argp[n])) { field[i++] = 31; } else if (!strcmp("g_del", player->argp[n])) { field[i++] = 32; } else if (!strcmp("p_del", player->argp[n])) { field[i++] = 33; } else if (!strcmp("i_del", player->argp[n])) { field[i++] = 34; } else if (!strcmp("d_del", player->argp[n])) { field[i++] = 35; } else if (!strcmp("b_del", player->argp[n])) { field[i++] = 36; } else if (!strcmp("o_del", player->argp[n])) { field[i++] = 37; } else if (!strcmp("l_del", player->argp[n])) { field[i++] = 38; } else if (!strcmp("h_del", player->argp[n])) { field[i++] = 39; } else if (!strcmp("r_del", player->argp[n])) { field[i++] = 40; } else if (!strcmp("u_cut", player->argp[n])) { field[i++] = 41; } else if (!strcmp("f_cut", player->argp[n])) { field[i++] = 42; } else if (!strcmp("s_cut", player->argp[n])) { field[i++] = 43; } else if (!strcmp("g_cut", player->argp[n])) { field[i++] = 44; } else if (!strcmp("p_cut", player->argp[n])) { field[i++] = 45; } else if (!strcmp("i_cut", player->argp[n])) { field[i++] = 46; } else if (!strcmp("d_cut", player->argp[n])) { field[i++] = 47; } else if (!strcmp("b_cut", player->argp[n])) { field[i++] = 48; } else if (!strcmp("o_cut", player->argp[n])) { field[i++] = 49; } else if (!strcmp("l_cut", player->argp[n])) { field[i++] = 50; } else if (!strcmp("h_cut", player->argp[n])) { field[i++] = 51; } else if (!strcmp("r_cut", player->argp[n])) { field[i++] = 52; } else if (!strcmp("dist_x", player->argp[n])) { field[i++] = 53; } else if (!strcmp("dist_y", player->argp[n])) { field[i++] = 54; } else if (!strcmp("c_dist", player->argp[n])) { field[i++] = 55; } else if (!strcmp("m_dist", player->argp[n])) { field[i++] = 56; } else if (!strcmp("u_dist", player->argp[n])) { field[i++] = 57; } else if (!strcmp("f_dist", player->argp[n])) { field[i++] = 58; } else if (!strcmp("s_dist", player->argp[n])) { field[i++] = 59; } else if (!strcmp("g_dist", player->argp[n])) { field[i++] = 60; } else if (!strcmp("p_dist", player->argp[n])) { field[i++] = 61; } else if (!strcmp("i_dist", player->argp[n])) { field[i++] = 62; } else if (!strcmp("d_dist", player->argp[n])) { field[i++] = 63; } else if (!strcmp("b_dist", player->argp[n])) { field[i++] = 64; } else if (!strcmp("o_dist", player->argp[n])) { field[i++] = 65; } else if (!strcmp("l_dist", player->argp[n])) { field[i++] = 66; } else if (!strcmp("h_dist", player->argp[n])) { field[i++] = 67; } else if (!strcmp("r_dist", player->argp[n])) { field[i++] = 68; } else if (!strcmp("road", player->argp[n])) { field[i++] = 69; } else if (!strcmp("rail", player->argp[n])) { field[i++] = 70; } else if (!strcmp("defense", player->argp[n])) { field[i++] = 71; } else if (!strcmp("fallout", player->argp[n])) { field[i++] = 72; } else if (!strcmp("coast", player->argp[n])) { field[i++] = 73; } else if (!strcmp("c_del", player->argp[n])) { field[i++] = 74; } else if (!strcmp("m_del", player->argp[n])) { field[i++] = 75; } else if (!strcmp("c_cut", player->argp[n])) { field[i++] = 76; } else if (!strcmp("m_cut", player->argp[n])) { field[i++] = 77; } else if (!strcmp("terr1", player->argp[n])) { field[i++] = 78; } else if (!strcmp("terr2", player->argp[n])) { field[i++] = 79; } else if (!strcmp("terr3", player->argp[n])) { field[i++] = 80; } else { pr("Unrecognized field %s\n", player->argp[n]); } if (n++ > 100) { pr("Too many fields\n"); return RET_FAIL; } } field[i] = 0; } if (player->god) pr(" "); time(&now); pr("DUMP SECTOR %ld\n", (long)now); if (player->god) pr("own "); pr("x y"); n = 0; while (field[n]) { pr(" "); switch (field[n]) { case 1: pr("des"); break; case 2: pr("sdes"); break; case 3: pr("eff"); break; case 4: pr("mob"); break; case 5: pr("*"); break; case 6: pr("off"); break; case 7: pr("min"); break; case 8: pr("gold"); break; case 9: pr("fert"); break; case 10: pr("ocontent"); break; case 11: pr("uran"); break; case 12: pr("work"); break; case 13: pr("avail"); break; case 14: pr("terr"); break; case 15: pr("civ"); break; case 16: pr("mil"); break; case 17: pr("uw"); break; case 18: pr("food"); break; case 19: pr("shell"); break; case 20: pr("gun"); break; case 21: pr("pet"); break; case 22: pr("iron"); break; case 23: pr("dust"); break; case 24: pr("bar"); break; case 25: pr("oil"); break; case 26: pr("lcm"); break; case 27: pr("hcm"); break; case 28: pr("rad"); break; case 29: pr("u_del"); break; case 30: pr("f_del"); break; case 31: pr("s_del"); break; case 32: pr("g_del"); break; case 33: pr("p_del"); break; case 34: pr("i_del"); break; case 35: pr("d_del"); break; case 36: pr("b_del"); break; case 37: pr("o_del"); break; case 38: pr("l_del"); break; case 39: pr("h_del"); break; case 40: pr("r_del"); break; case 41: pr("u_cut"); break; case 42: pr("f_cut"); break; case 43: pr("s_cut"); break; case 44: pr("g_cut"); break; case 45: pr("p_cut"); break; case 46: pr("i_cut"); break; case 47: pr("d_cut"); break; case 48: pr("b_cut"); break; case 49: pr("o_cut"); break; case 50: pr("l_cut"); break; case 51: pr("h_cut"); break; case 52: pr("r_cut"); break; case 53: pr("dist_x"); break; case 54: pr("dist_y"); break; case 55: pr("c_dist"); break; case 56: pr("m_dist"); break; case 57: pr("u_dist"); break; case 58: pr("f_dist"); break; case 59: pr("s_dist"); break; case 60: pr("g_dist"); break; case 61: pr("p_dist"); break; case 62: pr("i_dist"); break; case 63: pr("d_dist"); break; case 64: pr("b_dist"); break; case 65: pr("o_dist"); break; case 66: pr("l_dist"); break; case 67: pr("h_dist"); break; case 68: pr("r_dist"); break; case 69: pr("road"); break; case 70: pr("rail"); break; case 71: pr("defense"); break; case 72: pr("fallout"); break; case 73: pr("coast"); break; case 74: pr("c_del"); break; case 75: pr("m_del"); break; case 76: pr("c_cut"); break; case 77: pr("m_cut"); break; case 78: pr("terr1"); break; case 79: pr("terr2"); break; case 80: pr("terr3"); break; } n++; } pr("\n"); while (nxtsct(&nstr, §)) { if (!player->owner) continue; nsect++; /* census */ if (player->god) pr("%d ", sect.sct_own); pr("%d %d", xrel(np, nstr.x), yrel(np, nstr.y)); n = 0; while (field[n]) { pr(" "); switch (field[n++]) { case 1: pr("%c", dchr[sect.sct_type].d_mnem); break; case 2: if (sect.sct_newtype != sect.sct_type) pr("%c", dchr[sect.sct_newtype].d_mnem); else pr("_"); break; case 3: pr("%d", sect.sct_effic); break; case 4: pr("%d", sect.sct_mobil); break; case 5: pr("%c", sect.sct_own != sect.sct_oldown ? '*' : '.'); break; case 6: pr("%d", sect.sct_off); break; case 7: pr("%d", sect.sct_min); break; case 8: pr("%d", sect.sct_gmin); break; case 9: pr("%d", sect.sct_fertil); break; case 10: pr("%d", sect.sct_oil); break; case 11: pr("%d", sect.sct_uran); break; case 12: pr("%d", sect.sct_work); break; case 13: pr("%d", sect.sct_avail); break; case 14: pr("%d", sect.sct_terr); break; case 15: pr("%d", sect.sct_item[I_CIVIL]); break; case 16: pr("%d", sect.sct_item[I_MILIT]); break; case 17: pr("%d", sect.sct_item[I_UW]); break; case 18: pr("%d", sect.sct_item[I_FOOD]); break; /* commodity */ case 19: pr("%d", sect.sct_item[I_SHELL]); break; case 20: pr("%d", sect.sct_item[I_GUN]); break; case 21: pr("%d", sect.sct_item[I_PETROL]); break; case 22: pr("%d", sect.sct_item[I_IRON]); break; case 23: pr("%d", sect.sct_item[I_DUST]); break; case 24: pr("%d", sect.sct_item[I_BAR]); break; case 25: pr("%d", sect.sct_item[I_OIL]); break; case 26: pr("%d", sect.sct_item[I_LCM]); break; case 27: pr("%d", sect.sct_item[I_HCM]); break; case 28: pr("%d", sect.sct_item[I_RAD]); break; /* cutoff */ case 29: pr("%c", dirstr[sect.sct_del[I_UW] & 0x7]); break; case 30: pr("%c", dirstr[sect.sct_del[I_FOOD] & 0x7]); break; case 31: pr("%c", dirstr[sect.sct_del[I_SHELL] & 0x7]); break; case 32: pr("%c", dirstr[sect.sct_del[I_GUN] & 0x7]); break; case 33: pr("%c", dirstr[sect.sct_del[I_PETROL] & 0x7]); break; case 34: pr("%c", dirstr[sect.sct_del[I_IRON] & 0x7]); break; case 35: pr("%c", dirstr[sect.sct_del[I_DUST] & 0x7]); break; case 36: pr("%c", dirstr[sect.sct_del[I_BAR] & 0x7]); break; case 37: pr("%c", dirstr[sect.sct_del[I_OIL] & 0x7]); break; case 38: pr("%c", dirstr[sect.sct_del[I_LCM] & 0x7]); break; case 39: pr("%c", dirstr[sect.sct_del[I_HCM] & 0x7]); break; case 40: pr("%c", dirstr[sect.sct_del[I_RAD] & 0x7]); break; case 41: pr("%d", sect.sct_del[I_UW] & ~0x7); break; case 42: pr("%d", sect.sct_del[I_FOOD] & ~0x7); break; case 43: pr("%d", sect.sct_del[I_SHELL] & ~0x7); break; case 44: pr("%d", sect.sct_del[I_GUN] & ~0x7); break; case 45: pr("%d", sect.sct_del[I_PETROL] & ~0x7); break; case 46: pr("%d", sect.sct_del[I_IRON] & ~0x7); break; case 47: pr("%d", sect.sct_del[I_DUST] & ~0x7); break; case 48: pr("%d", sect.sct_del[I_BAR] & ~0x7); break; case 49: pr("%d", sect.sct_del[I_OIL] & ~0x7); break; case 50: pr("%d", sect.sct_del[I_LCM] & ~0x7); break; case 51: pr("%d", sect.sct_del[I_HCM] & ~0x7); break; case 52: pr("%d", sect.sct_del[I_RAD] & ~0x7); break; /* level */ case 53: pr("%d", xrel(getnatp(player->cnum), sect.sct_dist_x)); break; case 54: pr("%d", yrel(getnatp(player->cnum), sect.sct_dist_y)); break; case 55: pr("%d", sect.sct_dist[I_CIVIL]); break; case 56: pr("%d", sect.sct_dist[I_MILIT]); break; case 57: pr("%d", sect.sct_dist[I_UW]); break; case 58: pr("%d", sect.sct_dist[I_FOOD]); break; case 59: pr("%d", sect.sct_dist[I_SHELL]); break; case 60: pr("%d", sect.sct_dist[I_GUN]); break; case 61: pr("%d", sect.sct_dist[I_PETROL]); break; case 62: pr("%d", sect.sct_dist[I_IRON]); break; case 63: pr("%d", sect.sct_dist[I_DUST]); break; case 64: pr("%d", sect.sct_dist[I_BAR]); break; case 65: pr("%d", sect.sct_dist[I_OIL]); break; case 66: pr("%d", sect.sct_dist[I_LCM]); break; case 67: pr("%d", sect.sct_dist[I_HCM]); break; case 68: pr("%d", sect.sct_dist[I_RAD]); break; case 69: pr("%d", sect.sct_road); break; case 70: pr("%d", sect.sct_rail); break; case 71: pr("%d", SCT_DEFENSE(§)); break; case 72: if (opt_FALLOUT) pr("%d", sect.sct_fallout); else pr("0"); break; case 73: pr("%d", sect.sct_coastal); break; case 74: pr("%c", dirstr[sect.sct_del[I_CIVIL] & 0x7]); break; case 75: pr("%c", dirstr[sect.sct_del[I_MILIT] & 0x7]); break; case 76: pr("%d", sect.sct_del[I_CIVIL] & ~0x7); break; case 77: pr("%d", sect.sct_del[I_MILIT] & ~0x7); break; case 78: pr("%d", sect.sct_terr1); break; case 79: pr("%d", sect.sct_terr2); break; case 80: pr("%d", sect.sct_terr3); break; } } pr("\n"); } if (nsect == 0) { if (player->argp[1]) pr("%s: No sector(s)\n", player->argp[1]); else pr("%s: No sector(s)\n", ""); return RET_FAIL; } else pr("%d sector%s\n", nsect, splur(nsect)); return RET_OK; }