home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume4 / sail / part02 / globals.c < prev    next >
C/C++ Source or Header  |  1988-04-13  |  19KB  |  487 lines

  1. /*
  2.  * Copyright (c) 1983 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that this notice is preserved and that due credit is given
  7.  * to the University of California at Berkeley. The name of the University
  8.  * may not be used to endorse or promote products derived from this
  9.  * software without specific prior written permission. This software
  10.  * is provided ``as is'' without express or implied warranty.
  11.  */
  12.  
  13. #ifndef lint
  14. static char sccsid[] = "@(#)globals.c    5.2 (Berkeley) 3/9/88";
  15. #endif /* not lint */
  16.  
  17. #include "externs.h"
  18.  
  19. struct scenario scene[] = {
  20.     /*
  21.      * int winddir;
  22.      * int windspeed;
  23.      * int windchange;
  24.      * int vessels;
  25.      * char *name;
  26.      * struct ship ship[NSHIP];
  27.      */
  28.     5, 3, 5, 2, "Ranger vs. Drake",
  29.     {
  30.         { "Ranger",        specs+0,  N_A,  7, 20, 4, 0 },
  31.         { "Drake",        specs+1,  N_B,  7, 31, 5, 0 }
  32.     },
  33.     1, 3, 6, 2, "The Battle of Flamborough Head",
  34.     {
  35.         { "Bonhomme Rich",    specs+2,  N_A, 13, 40, 2, 0 },
  36.         { "Serapis",        specs+3,  N_B,  2, 42, 2, 0 }
  37.     },
  38.     5, 5, 5, 10, "Arbuthnot and Des Touches",
  39.     {
  40.         { "America",        specs+4,  N_B,  7, 37, 4, 0 },
  41.         { "Befford",        specs+5,  N_B,  5, 35, 4, 0 },
  42.         { "Adamant",        specs+6,  N_B,  3, 33, 4, 0 },
  43.         { "London",        specs+7,  N_B,  1, 31, 4, 0 },
  44.         { "Royal Oak",        specs+8,  N_B, -1, 29, 4, 0 },
  45.         { "Neptune",        specs+9,  N_F,  6, 44, 4, 0 },
  46.         { "Duc Bougogne",    specs+10, N_F,  8, 46, 4, 0 },
  47.         { "Conquerant",        specs+48, N_F, 10, 48, 4, 0 },
  48.         { "Provence",        specs+11, N_F, 12, 50, 4, 0 },
  49.         { "Romulus",        specs+12, N_F, 20, 58, 4, 0 }
  50.     },
  51.     1, 3, 5, 10, "Suffren and Hughes",
  52.     {
  53.         { "Monmouth",        specs+52, N_B,  9, 45, 2, 0 },
  54.         { "Hero",        specs+5,  N_B, 13, 49, 2, 0 },
  55.         { "Isis",        specs+6,  N_B, 12, 48, 2, 0 },
  56.         { "Superb",        specs+50, N_B, 10, 46, 2, 0 },
  57.         { "Burford",        specs+48, N_B, 11, 47, 2, 0 },
  58.         { "Flamband",        specs+13, N_F,  7, 59, 4, 0 },
  59.         { "Annibal",        specs+9,  N_F,  4, 56, 4, 0 },
  60.         { "Severe",        specs+11, N_F,  2, 54, 4, 0 },
  61.         { "Brilliant",        specs+49, N_F, -1, 51, 4, 0 },
  62.         { "Sphinx",        specs+51, N_F, -5, 47, 4, 0 }
  63.     },
  64.     1, 3, 4, 2, "Nymphe vs. Cleopatre",
  65.     {
  66.         { "Nymphe",        specs+14, N_B, 13, 30, 2, 0 },
  67.         { "Cleopatre",        specs+15, N_F,  3, 41, 2, 0 }
  68.     },
  69.     1, 3, 5, 2, "Mars vs. Hercule",
  70.     {
  71.         { "Mars",        specs+16, N_B, 13, 30, 2, 0 },
  72.         { "Hercule",        specs+17, N_F,  3, 41, 2, 0 }
  73.     },
  74.     5, 3, 5, 2, "Ambuscade vs. Baionnaise",
  75.     {
  76.         { "Ambuscade",        specs+18, N_B, 13, 30, 2, 0 },
  77.         { "Baionnaise",        specs+19, N_F,  3, 41, 2, 0 }
  78.     },
  79.     1, 5, 6, 2, "Constellation vs. Insurgent",
  80.     {
  81.         { "Constellation",    specs+20, N_A,  9, 50, 8, 0 },
  82.         { "Insurgent",        specs+22, N_F,  4, 24, 2, 0 }
  83.     },
  84.     1, 3, 5, 2, "Constellation vs. Vengeance",
  85.     {
  86.         { "Constellation",    specs+20, N_A, 12, 40, 2, 0 },
  87.         { "Vengeance",        specs+21, N_F,  1, 43, 2, 0 }
  88.     },
  89.     1, 3, 6, 10, "The Battle of Lissa",
  90.     {
  91.         { "Amphion",        specs+23, N_B,  8, 50, 4, 0 },
  92.         { "Active",        specs+24, N_B,  6, 48, 4, 0 },
  93.         { "Volage",        specs+25, N_B,  4, 46, 4, 0 },
  94.         { "Cerberus",        specs+26, N_B,  2, 44, 4, 0 },
  95.         { "Favorite",        specs+27, N_F,  9, 34, 2, 0 },
  96.         { "Flore",        specs+21, N_F, 13, 39, 2, 0 },
  97.         { "Danae",        specs+64, N_F, 15, 37, 2, 0 },
  98.         { "Bellona",        specs+28, N_F, 17, 35, 2, 0 },
  99.         { "Corona",        specs+29, N_F, 12, 31, 2, 0 },
  100.         { "Carolina",        specs+30, N_F, 15, 28, 2, 0 }
  101.     },
  102.     2, 5, 6, 2, "Constitution vs. Guerriere",
  103.     {
  104.         { "Constitution",    specs+31, N_A,  7, 35, 1, 0 },
  105.         { "Guerriere",        specs+32, N_B,  7, 47, 4, 0 }
  106.     },
  107.     1, 3, 5, 2, "United States vs. Macedonian",
  108.     {
  109.         { "United States",    specs+33, N_A,  1, 52, 6, 0 },
  110.         { "Macedonian",        specs+34, N_B, 14, 40, 1, 0 }
  111.     },
  112.     1, 3, 6, 2, "Constitution vs. Java",
  113.     {
  114.         { "Constitution",    specs+31, N_A,  1, 40, 2, 0 },
  115.         { "Java",        specs+35, N_B, 11, 40, 2, 0 }
  116.     },
  117.     1, 3, 5, 2, "Chesapeake vs. Shannon",
  118.     {
  119.         { "Chesapeake",        specs+36, N_A, 13, 40, 2, 0 },
  120.         { "Shannon",        specs+37, N_B,  1, 42, 2, 0 }
  121.     },
  122.     1, 1, 6, 5, "The Battle of Lake Erie",
  123.     {
  124.         { "Lawrence",        specs+38, N_A,  4, 55, 8, 0 },
  125.         { "Niagara",        specs+42, N_A,  7, 61, 8, 0 },
  126.         { "Lady Prevost",    specs+39, N_B,  4, 25, 2, 0 },
  127.         { "Detroit",        specs+40, N_B,  7, 22, 2, 0 },
  128.         { "Q. Charlotte",    specs+41, N_B, 10, 19, 2, 0 }
  129.     },
  130.     1, 1, 5, 2, "Wasp vs. Reindeer",
  131.     {
  132.         { "Wasp",        specs+42, N_A,  3, 41, 2, 0 },
  133.         { "Reindeer",        specs+43, N_B, 10, 48, 2, 0 }
  134.     },
  135.     1, 2, 5, 3, "Constitution vs. Cyane and Levant",
  136.     {
  137.         { "Constitution",    specs+31, N_A, 10, 45, 2, 0 },
  138.         { "Cyane",        specs+44, N_B,  3, 37, 2, 0 },
  139.         { "Levant",        specs+45, N_B,  5, 35, 2, 0 }
  140.     },
  141.     5, 5, 5, 3, "Pellew vs. Droits de L'Homme",
  142.     {
  143.         { "Indefatigable",    specs+46, N_B, 12, 45, 6, 0 },
  144.         { "Amazon",        specs+47, N_B,  9, 48, 6, 0 },
  145.         { "Droits L'Hom",    specs+48, N_F,  3, 28, 5, 0 }
  146.     },
  147.     2, 2, 3, 10, "Algeciras",
  148.     {
  149.         { "Caesar",        specs+49, N_B,  7, 70, 6, 0 },
  150.         { "Pompee",        specs+50, N_B,  5, 72, 6, 0 },
  151.         { "Spencer",        specs+5,  N_B,  3, 74, 6, 0 },
  152.         { "Hannibal",        specs+7,  N_B,  1, 76, 6, 0 },
  153.         { "Real-Carlos",    specs+53, N_S,  9, 20, 3, 0 },
  154.         { "San Fernando",    specs+54, N_S, 11, 16, 3, 0 },
  155.         { "Argonauta",        specs+55, N_S, 10, 14, 4, 0 },
  156.         { "San Augustine",    specs+56, N_S,  6, 22, 4, 0 },
  157.         { "Indomptable",    specs+51, N_F,  7, 23, 5, 0 },
  158.         { "Desaix",        specs+52, N_F,  7, 27, 7, 0 }
  159.     },
  160.     5, 3, 6, 7, "Lake Champlain",
  161.     {
  162.         { "Saratoga",        specs+60, N_A,  8, 10, 1, 0 },
  163.         { "Eagle",        specs+61, N_A,  9, 13, 2, 0 },
  164.         { "Ticonderoga",    specs+62, N_A, 12, 17, 3, 0 },
  165.         { "Preble",        specs+63, N_A, 14, 20, 2, 0 },
  166.         { "Confiance",        specs+57, N_B,  4, 70, 6, 0 },
  167.         { "Linnet",        specs+58, N_B,  7, 68, 6, 0 },
  168.         { "Chubb",        specs+59, N_B, 10, 65, 6, 0 }
  169.     },
  170.     5, 3, 6, 4, "Last Voyage of the USS President",
  171.     {
  172.         { "President",        specs+67, N_A, 12, 42, 5, 0 },
  173.         { "Endymion",        specs+64, N_B,  5, 42, 5, 0 },
  174.         { "Pomone",        specs+65, N_B,  7, 82, 6, 0 },
  175.         { "Tenedos",        specs+66, N_B,  7, -1, 4, 0 }
  176.     },
  177.     7, 5, 5, 2, "Hornblower and the Natividad",
  178.     {
  179.         { "Lydia",        specs+68, N_B, 12, 40, 2, 0 },
  180.         { "Natividad",        specs+69, N_S,  2, 40, 4, 0 }
  181.     },
  182.     1, 3, 6, 2, "Curse of the Flying Dutchman",
  183.     {
  184.         { "Piece of Cake",    specs+19, N_S,  7, 40, 2, 0 },
  185.         { "Flying Dutchy",    specs+71, N_F,  7, 41, 1, 0 }
  186.     },
  187.     1, 4, 1, 4, "The South Pacific",
  188.     {
  189.         { "USS Scurvy",        specs+70, N_A,  7, 40, 1, 0 },
  190.         { "HMS Tahiti",        specs+71, N_B, 12, 60, 1, 0 },
  191.         { "Australian",        specs+18, N_S,  5, 20, 8, 0 },
  192.         { "Bikini Atoll",    specs+63, N_F,  2, 60, 4, 0 }
  193.     },
  194.     7, 3, 6, 5, "Hornblower and the battle of Rosas bay",
  195.     {
  196.         { "Sutherland",        specs+5,  N_B, 13, 30, 2, 0 },
  197.         { "Turenne",        specs+10, N_F,  9, 35, 6, 0 },
  198.         { "Nightmare",        specs+9,  N_F,  7, 37, 6, 0 },
  199.         { "Paris",        specs+53, N_F,  3, 45, 4, 0 },
  200.         { "Napolean",        specs+56, N_F,  1, 40, 6, 0 }
  201.     },
  202.     6, 4, 7, 5, "Cape Horn",
  203.     {
  204.         { "Concord",        specs+51, N_A,  3, 20, 4, 0 },
  205.         { "Berkeley",        specs+7,  N_A,  5, 50, 5, 0 },
  206.         { "Thames",        specs+71, N_B, 10, 40, 1, 0 },
  207.         { "Madrid",        specs+53, N_S, 13, 60, 8, 0 },
  208.         { "Musket",        specs+10, N_F, 10, 60, 7, 0 }
  209.     },
  210.     8, 3, 7, 3, "New Orleans",
  211.     {
  212.         { "Alligator",        specs+71, N_A, 13,  5, 1, 0 },
  213.         { "Firefly",        specs+50, N_B, 10, 20, 8, 0 },
  214.         { "Cypress",        specs+46, N_B,  5, 10, 6, 0 }
  215.     },
  216.     5, 3, 7, 3, "Botany Bay",
  217.     {
  218.         { "Shark",        specs+11, N_B,  6, 15, 4, 0 },
  219.         { "Coral Snake",    specs+31, N_F,  3, 30, 6, 0 },
  220.         { "Sea Lion",        specs+33, N_F, 13, 50, 8, 0 }
  221.     },
  222.     4, 3, 6, 4, "Voyage to the Bottom of the Sea",
  223.     {
  224.         { "Seaview",        specs+71, N_A,  6, 3,  3, 0 },
  225.         { "Flying Sub",        specs+64, N_A,  8, 3,  3, 0 },
  226.         { "Mermaid",        specs+70, N_B,  2, 5,  5, 0 },
  227.         { "Giant Squid",    specs+53, N_S, 10, 30, 8, 0 }
  228.     },
  229.     7, 3, 6, 3, "Frigate Action",
  230.     {
  231.         { "Killdeer",        specs+21, N_A,  7, 20, 8, 0 },
  232.         { "Sandpiper",        specs+27, N_B,  5, 40, 8, 0 },
  233.         { "Curlew",        specs+34, N_S, 10, 60, 8, 0 }
  234.     },
  235.     7, 2, 5, 6, "The Battle of Midway",
  236.     {
  237.         { "Enterprise",        specs+49, N_A, 10, 70, 8, 0 },
  238.         { "Yorktown",        specs+51, N_A,  3, 70, 7, 0 },
  239.         { "Hornet",        specs+52, N_A,  6, 70, 7, 0 },
  240.         { "Akagi",        specs+53, N_J,  6, 10, 4, 0 },
  241.         { "Kaga",        specs+54, N_J,  4, 12, 4, 0 },
  242.         { "Soryu",        specs+55, N_J,  2, 14, 4, 0 }
  243.     },
  244.     1, 3, 4, 8, "Star Trek",
  245.     {
  246.         { "Enterprise",        specs+76, N_D,-10, 60, 7, 0 },
  247.         { "Yorktown",        specs+77, N_D,  0, 70, 7, 0 },
  248.         { "Reliant",        specs+78, N_D, 10, 70, 7, 0 },
  249.         { "Galileo",        specs+79, N_D, 20, 60, 7, 0 },
  250.         { "Kobayashi Maru",    specs+80, N_K,  0,120, 7, 0 },
  251.         { "Klingon II",        specs+81, N_K, 10,120, 7, 0 },
  252.         { "Red Orion",        specs+82, N_O,  0,  0, 3, 0 },
  253.         { "Blue Orion",        specs+83, N_O, 10,  0, 3, 0 }
  254.     }
  255. };
  256. int nscene = sizeof scene / sizeof (struct scenario);
  257.  
  258. struct shipspecs specs[] = {
  259. /*      bs fs ta guns   hull  crew1   crew3    gunR  carR   rig2  rig4 pts */
  260. /*                 class   qual   crew2    gunL   carL   rig1  rig3        */
  261. /*00*/    4, 7, 3,  19, 5,  5, 4,  2,  2,  2,  2,  2, 0, 0,  4, 4, 4,  4,  7,
  262. /*01*/    4, 7, 3,  17, 5,  5, 4,  2,  2,  2,  0,  0, 4, 4,  3, 3, 3,  3,  6,
  263. /*02*/    3, 5, 2,  42, 4,  7, 4,  2,  2,  2,  2,  2, 0, 0,  5, 5, 5, -1, 11,
  264. /*03*/    4, 6, 3,  44, 3,  7, 4,  2,  2,  2,  3,  3, 0, 0,  5, 5, 5,  5, 12,
  265. /*04*/    3, 5, 2,  64, 2, 17, 4,  8,  6,  6, 12, 12, 2, 2,  7, 7, 7, -1, 20,
  266. /*05*/    3, 5, 2,  74, 2, 20, 4,  8,  8,  8, 16, 16, 2, 2,  7, 7, 7, -1, 26,
  267. /*06*/    3, 5, 2,  50, 2, 12, 4,  6,  4,  4,  8,  8, 2, 2,  6, 6, 6, -1, 17,
  268. /*07*/    3, 5, 1,  98, 1, 23, 4, 10, 10, 10, 18, 18, 2, 2,  8, 8, 8, -1, 28,
  269. /*08*/    3, 5, 2,  74, 2, 20, 4,  8,  8,  8, 16, 16, 2, 2,  7, 7, 7, -1, 26,
  270. /*09*/    3, 5, 2,  74, 2, 21, 3, 10, 10,  8, 20, 20, 0, 0,  7, 7, 7, -1, 24,
  271. /*10*/    3, 5, 1,  80, 1, 23, 3, 12, 12, 10, 22, 22, 0, 0,  7, 7, 7, -1, 27,
  272. /*11*/    3, 5, 2,  64, 2, 18, 3,  8,  8,  6, 12, 12, 0, 0,  7, 7, 7, -1, 18,
  273. /*12*/    3, 5, 2,  44, 2, 11, 3,  4,  4,  4,  6,  6, 2, 2,  5, 5, 5, -1, 10,
  274. /*13*/    3, 5, 2,  50, 2, 14, 3,  6,  6,  4,  8,  8, 0, 0,  6, 6, 6, -1, 14,
  275. /*14*/    4, 6, 3,  36, 3, 11, 4,  4,  4,  2,  4,  4, 2, 2,  5, 5, 5,  5, 11,
  276. /*15*/    4, 6, 3,  36, 3, 11, 3,  4,  4,  4,  4,  4, 2, 2,  5, 5, 5,  5, 10,
  277. /*16*/    3, 5, 2,  74, 2, 21, 4, 10,  8,  8, 18, 18, 2, 2,  7, 7, 7, -1, 26,
  278. /*17*/    3, 5, 2,  74, 2, 21, 3, 10, 10,  8, 20, 20, 2, 2,  7, 7, 7, -1, 23,
  279. /*18*/    4, 6, 3,  32, 3,  8, 3,  4,  2,  2,  4,  4, 2, 2,  5, 5, 5,  5,  9,
  280. /*19*/    4, 6, 3,  24, 4,  6, 3,  4,  4,  4,  2,  2, 0, 0,  4, 4, 4,  4,  9,
  281. /*20*/    4, 7, 3,  38, 4, 14, 5,  6,  4,  4,  4,  4, 6, 6,  5, 5, 5,  5, 17,
  282. /*21*/    4, 6, 3,  40, 3, 15, 3,  8,  6,  6,  6,  6, 4, 4,  5, 5, 5,  5, 15,
  283. /*22*/    4, 7, 3,  36, 4, 11, 3,  6,  6,  4,  4,  4, 2, 2,  5, 5, 5,  5, 11,
  284. /*23*/    4, 6, 3,  32, 3, 11, 5,  4,  4,  2,  4,  4, 2, 2,  5, 5, 5,  5, 13,
  285. /*24*/    4, 6, 3,  38, 3, 14, 5,  4,  4,  4,  6,  6, 4, 4,  5, 5, 5,  5, 18,
  286. /*25*/    4, 6, 3,  22, 3,  6, 5,  2,  2,  2,  0,  0, 8, 8,  4, 4, 4,  4, 11,
  287. /*26*/    4, 6, 3,  32, 3, 11, 5,  4,  4,  2,  4,  4, 2, 2,  5, 5, 5,  5, 13,
  288. /*27*/    4, 6, 3,  40, 3, 14, 3,  6,  6,  4,  6,  6, 4, 4,  5, 5, 5,  5, 15,
  289. /*28*/    4, 6, 3,  32, 3, 11, 2,  4,  4,  4,  4,  4, 0, 0,  5, 5, 5,  5,  9,
  290. /*29*/    4, 6, 3,  40, 3, 14, 2,  6,  6,  4,  6,  6, 4, 4,  5, 5, 5,  5, 12,
  291. /*30*/    4, 6, 3,  32, 3,  8, 2,  4,  4,  1,  2,  2, 0, 0,  4, 4, 4,  4,  7,
  292. /*31*/    4, 7, 3,  44, 4, 18, 5,  6,  6,  6,  8,  8, 6, 6,  6, 6, 6,  6, 24,
  293. /*32*/    4, 6, 3,  38, 3, 14, 4,  4,  4,  2,  6,  6, 4, 4,  5, 5, 5,  5, 15,
  294. /*33*/    4, 5, 3,  44, 3, 18, 5,  8,  6,  6,  8,  8, 8, 8,  6, 6, 6,  6, 24,
  295. /*34*/    4, 6, 3,  38, 3, 14, 4,  4,  4,  4,  6,  6, 4, 4,  5, 5, 5,  5, 16,
  296. /*35*/    4, 7, 3,  38, 4, 14, 4,  6,  6,  6,  6,  6, 6, 6,  5, 5, 5,  5, 19,
  297. /*36*/    4, 6, 3,  38, 3, 14, 3,  6,  6,  4,  6,  6, 6, 6,  5, 5, 5,  5, 14,
  298. /*37*/    4, 6, 3,  38, 3, 14, 5,  6,  4,  4,  6,  6, 6, 6,  5, 5, 5,  5, 17,
  299. /*38*/    4, 7, 3,  20, 5,  6, 4,  4,  2,  2,  0,  0, 6, 6,  4, 4, 4,  4,  9,
  300. /*39*/    4, 7, 3,  13, 6,  3, 4,  0,  2,  2,  0,  0, 2, 2,  2, 2, 2,  2,  5,
  301. /*40*/    4, 7, 3,  19, 5,  5, 4,  2,  2,  2,  2,  2, 0, 0,  4, 4, 4,  4,  7,
  302. /*41*/    4, 7, 3,  17, 5,  5, 4,  2,  2,  2,  2,  2, 0, 0,  3, 3, 3,  3,  6,
  303. /*42*/    4, 7, 3,  20, 5,  6, 5,  4,  2,  2,  0,  0, 6, 6,  4, 4, 4,  4, 12,
  304. /*43*/    4, 7, 3,  18, 5,  5, 5,  2,  2,  2,  0,  0, 6, 6,  4, 4, 4,  4,  9,
  305. /*44*/    4, 7, 3,  24, 5,  6, 4,  4,  2,  2,  0,  0,10,10,  4, 4, 4,  4, 11,
  306. /*45*/    4, 7, 3,  20, 5,  6, 4,  2,  2,  2,  0,  0, 8, 8,  4, 4, 4,  4, 10,
  307. /*46*/    4, 6, 3,  44, 3, 11, 5,  4,  4,  4,  4,  4, 2, 2,  5, 5, 5,  5, 14,
  308. /*47*/    4, 6, 3,  36, 3, 12, 4,  4,  4,  4,  6,  6, 2, 2,  5, 5, 5,  5, 14,
  309. /*48*/    3, 5, 2,  74, 2, 21, 3, 10,  8,  8, 20, 20, 2, 2,  4, 4, 7, -1, 24,
  310. /*49*/    3, 5, 2,  80, 2, 24, 4, 10,  8,  8, 20, 20, 2, 2,  8, 8, 8, -1, 31,
  311. /*50*/    3, 5, 2,  74, 2, 21, 4,  8,  8,  6, 16, 16, 4, 4,  7, 7, 7, -1, 27,
  312. /*51*/    3, 5, 2,  80, 2, 24, 3, 12, 12, 10, 22, 22, 2, 2,  7, 7, 7, -1, 27,
  313. /*52*/    3, 5, 2,  74, 2, 21, 3, 10, 10,  8, 20, 20, 2, 2,  7, 7, 7, -1, 24,
  314. /*53*/    3, 5, 1, 112, 1, 27, 2, 12, 12, 12, 24, 24, 0, 0,  9, 9, 9, -1, 27,
  315. /*54*/    3, 5, 1,  96, 1, 24, 2, 12, 12, 10, 20, 20, 0, 0,  8, 8, 8, -1, 24,
  316. /*55*/    3, 5, 2,  80, 2, 23, 2, 10, 10,  8, 20, 20, 0, 0,  7, 7, 7, -1, 23,
  317. /*56*/    3, 5, 2,  74, 2, 21, 2, 10,  8,  8, 16, 16, 4, 4,  7, 7, 7, -1, 20,
  318. /*57*/    4, 6, 3,  37, 3, 12, 4,  4,  4,  2,  6,  6, 4, 4,  5, 5, 5,  5, 14,
  319. /*58*/    4, 7, 3,  16, 5,  5, 5,  2,  2,  2,  0,  0, 4, 4,  4, 4, 4,  4, 10,
  320. /*59*/    4, 7, 3,  11, 6,  3, 4,  2,  2,  2,  0,  0, 2, 2,  2, 2, 2,  2,  5,
  321. /*60*/    4, 7, 3,  26, 5,  6, 4,  4,  2,  2,  2,  2, 6, 6,  4, 4, 4,  4, 12,
  322. /*61*/    4, 7, 3,  20, 5,  6, 4,  4,  2,  2,  0,  0, 6, 6,  4, 4, 4,  4, 11,
  323. /*62*/    4, 7, 3,  17, 5,  5, 4,  2,  2,  2,  0,  0, 6, 6,  4, 4, 4,  4,  9,
  324. /*63*/    4, 7, 3,   7, 6,  3, 4,  0,  2,  2,  0,  0, 2, 2,  2, 2, 2,  2,  4,
  325. /*64*/    4, 6, 3,  40, 3, 15, 4,  4,  4,  4,  8,  8, 6, 6,  5, 5, 5,  5, 17,
  326. /*65*/    4, 6, 3,  44, 3, 15, 4,  8,  8,  6, 10, 10, 2, 2,  6, 6, 6,  6, 20,
  327. /*66*/    4, 6, 3,  38, 3, 14, 4,  4,  4,  4,  6,  6, 6, 6,  5, 5, 5,  5, 15,
  328. /*67*/    4, 5, 3,  44, 3, 18, 5,  8,  6,  6,  8,  8, 8, 8,  6, 6, 6,  6, 24,
  329. /*68*/    4, 6, 3,  36, 3,  9, 5,  4,  4,  2,  4,  4, 2, 2,  5, 5, 5,  5, 13,
  330. /*69*/    3, 5, 2,  50, 2, 14, 2,  6,  6,  6,  8,  8, 0, 0,  6, 6, 6, -1, 14,
  331. /*70*/    3, 5, 1, 136, 1, 30, 1,  8, 14, 14, 28, 28, 0, 0,  9, 9, 9, -1, 27,
  332. /*71*/    3, 5, 1, 120, 1, 27, 5, 16, 14, 14, 28, 28, 2, 2,  9, 9, 9, -1, 43,
  333. /*72*/    3, 5, 1, 120, 2, 21, 5, 15, 17, 15, 25, 25, 7, 7,  9, 9, 9, -1, 36,
  334. /*73*/    3, 5, 1,  90, 3, 18, 4, 13, 15, 13, 20, 20, 6, 6,  5, 5, 5,  5, 28,
  335. /*74*/    4, 7, 3,   6, 6,  3, 4,  2,  2,  2, 20, 20, 6, 6,  2, 2, 3,  3,  5,
  336. /*75*/    3, 5, 1, 110, 2, 20, 4, 14, 15, 11, 26, 26, 8, 8,  7, 8, 9, -1, 34,
  337. /*76*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  338. /*77*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  339. /*78*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  340. /*79*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  341. /*80*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  342. /*81*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  343. /*82*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  344. /*83*/    4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25,  9, 9, 9, -1, 75,
  345. /*      bs fs ta guns   hull  crew1   crew3    gunR  carR   rig2  rig4 pts */
  346. /*                 class   qual   crew2    gunL   carL   rig1  rig3        */
  347. };
  348.  
  349. struct windeffects WET[7][6] = {
  350.     { {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9} },
  351.     { {3,2,2,0}, {3,2,1,0}, {3,2,1,0}, {3,2,1,0}, {2,1,0,0}, {2,1,0,0} },
  352.     { {1,1,1,0}, {1,1,0,0}, {1,0,0,0}, {1,0,0,0}, {1,0,0,0}, {1,0,0,0} },
  353.     { {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} },
  354.     { {0,0,0,0}, {1,0,0,0}, {1,1,0,0}, {1,1,0,0}, {2,2,1,0}, {2,2,1,0} },
  355.     { {1,0,0,0}, {1,1,0,0}, {1,1,1,0}, {1,1,1,0}, {3,2,2,0}, {3,2,2,0} },
  356.     { {2,1,1,0}, {3,2,1,0}, {3,2,1,0}, {3,2,1,0}, {3,3,2,0}, {3,3,2,0} }
  357. };
  358.  
  359. struct Tables RigTable[11][6] = {
  360.     { {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,1,0} },
  361.     { {0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,1,0}, {1,0,0,1}, {0,1,1,1} },
  362.     { {0,0,0,0}, {0,0,0,1}, {0,0,1,1}, {0,1,0,1}, {0,1,0,1}, {1,0,1,2} },
  363.     { {0,0,0,0}, {0,0,1,1}, {0,1,0,1}, {0,0,0,2}, {0,1,0,2}, {1,0,1,2} },
  364.     { {0,1,0,1}, {1,0,0,1}, {0,1,1,2}, {0,1,0,2}, {0,0,1,3}, {1,0,1,4} },
  365.     { {0,0,1,1}, {0,1,0,2}, {1,0,0,3}, {0,1,1,3}, {1,0,0,4}, {1,1,1,4} },
  366.     { {0,0,1,2}, {0,1,1,2}, {1,1,0,3}, {0,1,0,4}, {1,0,0,4}, {1,0,1,5} },
  367.     { {0,0,1,2}, {0,1,0,3}, {1,1,0,3}, {1,0,2,4}, {0,2,1,5}, {2,1,0,5} },
  368.     { {0,2,1,3}, {1,0,0,3}, {2,1,0,4}, {0,1,1,4}, {0,1,0,5}, {1,0,2,6} },
  369.     { {1,1,0,4}, {1,0,1,4}, {2,0,0,5}, {0,2,1,5}, {0,1,2,6}, {0,2,0,7} },
  370.     { {1,0,1,5}, {0,2,0,6}, {1,2,0,6}, {1,1,1,6}, {2,0,2,6}, {1,1,2,7} }
  371. };
  372. struct Tables HullTable[11][6] = {
  373.     { {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0}, {0,1,0,0} },
  374.     { {0,0,0,0}, {0,0,0,0}, {0,1,0,0}, {1,1,0,0}, {1,0,1,0}, {1,0,1,1} },
  375.     { {0,1,0,0}, {1,0,0,0}, {1,1,0,0}, {1,0,1,0}, {1,0,1,1}, {2,1,0,0} },
  376.     { {0,1,1,0}, {1,0,0,0}, {1,1,1,0}, {2,0,0,1}, {2,0,1,0}, {2,2,0,0} },
  377.     { {0,1,1,0}, {1,0,0,1}, {2,1,0,1}, {2,2,1,0}, {3,0,1,0}, {3,1,0,0} },
  378.     { {1,1,1,0}, {2,0,2,1}, {2,1,1,0}, {2,2,0,0}, {3,1,0,1}, {3,1,1,0} },
  379.     { {1,2,2,0}, {2,0,2,1}, {2,1,0,1}, {2,2,0,0}, {3,1,1,0}, {4,2,1,0} },
  380.     { {2,1,1,0}, {2,0,1,1}, {3,2,2,0}, {3,2,0,0}, {4,2,1,0}, {4,2,1,1} },
  381.     { {2,1,2,0}, {3,1,1,1}, {3,2,2,0}, {4,2,1,0}, {4,1,0,2}, {4,2,2,0} },
  382.     { {2,3,1,0}, {3,2,2,0}, {3,2,2,1}, {4,2,2,0}, {4,1,0,3}, {5,1,2,0} },
  383.     { {2,2,4,0}, {3,3,1,1}, {4,2,1,1}, {5,1,0,2}, {5,1,2,1}, {6,2,2,0} },
  384. };
  385.  
  386. char AMMO[9][4] = {
  387.     { -1, 1, 0, 1 },
  388.     { -1, 1, 0, 1 },
  389.     { -1, 1, 0, 1 },
  390.     { -2, 1, 0, 2 },
  391.     { -2, 2, 0, 2 },
  392.     { -2, 2, 0, 2 },
  393.     { -3, 2, 0, 2 },
  394.     { -3, 2, 0, 3 },
  395.     { -3, 2, 0, 3 }
  396. };
  397.     
  398. char HDT[9][10] = {
  399.     { 1, 0,-1,-2,-3,-3,-4,-4,-4,-4 },
  400.     { 1, 1, 0,-1,-2,-2,-3,-3,-3,-3 },
  401.     { 2, 1, 0,-1,-2,-2,-3,-3,-3,-3 },
  402.     { 2, 2, 1, 0,-1,-1,-2,-2,-2,-2 },
  403.     { 3, 2, 1, 0,-1,-1,-2,-2,-2,-2 },
  404.     { 3, 3, 2, 1, 0, 0,-1,-1,-1,-1 },
  405.     { 4, 3, 2, 1, 0, 0,-1,-1,-1,-1 },
  406.     { 4, 4, 3, 2, 1, 1, 0, 0, 0, 0 },
  407.     { 5, 4, 3, 2, 1, 1, 0, 0, 0, 0 }
  408. };
  409.  
  410. char HDTrake[9][10] = {
  411.     { 2, 1, 0,-1,-2,-2,-3,-3,-3,-3 },
  412.     { 2, 2, 1, 0,-1,-1,-2,-2,-2,-2 },
  413.     { 3, 2, 1, 0,-1,-1,-2,-2,-2,-2 },
  414.     { 4, 3, 2, 1, 0, 0,-1,-1,-1,-1 },
  415.     { 5, 4, 3, 2, 1, 1, 0, 0, 0, 0 },
  416.     { 6, 5, 4, 3, 2, 2, 1, 1, 1, 1 },
  417.     { 7, 6, 5, 4, 3, 3, 2, 2, 2, 2 },
  418.     { 8, 7, 6, 5, 4, 4, 3, 3, 3, 3 },
  419.     { 9, 8, 7, 6, 5, 5, 4, 4, 4, 4 }
  420. };
  421.  
  422. char QUAL[9][5] = {
  423.     { -1, 0, 0, 1, 1 },
  424.     { -1, 0, 0, 1, 1 },
  425.     { -1, 0, 0, 1, 2 },
  426.     { -1, 0, 0, 1, 2 },
  427.     { -1, 0, 0, 2, 2 },
  428.     { -1,-1, 0, 2, 2 },
  429.     { -2,-1, 0, 2, 2 },
  430.     { -2,-1, 0, 2, 2 },
  431.     { -2,-1, 0, 2, 3 }
  432. };
  433.  
  434. char MT[9][3] = {
  435.     { 1, 0, 0 },
  436.     { 1, 1, 0 },
  437.     { 2, 1, 0 },
  438.     { 2, 1, 1 },
  439.     { 2, 2, 1 },
  440.     { 3, 2, 1 },
  441.     { 3, 2, 2 },
  442.     { 4, 3, 2 },
  443.     { 4, 4, 2 }
  444. };
  445.  
  446. char rangeofshot[] = {
  447.     0,
  448.     1,        /* grape */
  449.     3,        /* chain */
  450.     10,        /* round */
  451.     1        /* double */
  452. };
  453.  
  454. char *countryname[] = {
  455.     "American", "British", "Spanish", "French", "Japanese",
  456.     "Federation", "Klingon", "Orion"
  457. };
  458.  
  459. char *classname[] = {
  460.     "Drift wood",
  461.     "Ship of the Line",
  462.     "Ship of the Line",
  463.     "Frigate",
  464.     "Corvette",
  465.     "Sloop",
  466.     "Brig"
  467. };
  468.  
  469. char *directionname[] = {
  470.     "dead ahead",
  471.     "off the starboard bow",
  472.     "off the starboard beam",
  473.     "off the starboard quarter",
  474.     "dead astern",
  475.     "off the port quarter",
  476.     "off the port beam",
  477.     "off the port bow",
  478.     "dead ahead"
  479. };
  480.  
  481. char *qualname[] = { "dead", "mutinous", "green", "mundane", "crack", "elite" };
  482.  
  483. char loadname[] = { '-', 'G', 'C', 'R', 'D', 'E' };
  484.  
  485. char dr[] = { 0, 1, 1, 0, -1, -1, -1, 0, 1 };
  486. char dc[] = { 0, 0, -1, -1, -1, 0, 1, 1, 1 };
  487.