Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include "sst.h"
  2.  
  3. static char classes[4][2]={"","M","N","O"};
  4. static int height;
  5.  
  6. static int consumeTime(void) {
  7. /* I think most of this avoidance was caused by overlay scheme.
  8.    Let's see what happens if all events can occur here */
  9.  
  10. //      double asave;
  11.         ididit = 1;
  12. #if 0
  13.         /* Don't wory about this */
  14.         if (future[FTBEAM] <= d.date+Time && d.remcom != 0 && condit != IHDOCKED) {
  15.                 /* We are about to be tractor beamed -- operation fails */
  16.                 return 1;
  17.         }
  18. #endif
  19. //      asave = future[FSNOVA];
  20. //      future[FSNOVA] = 1e30; /* defer supernovas */
  21.         events();       /* Used to avoid if future[FSCMOVE] within time */
  22. //      future[FSNOVA] = asave;
  23.         /*fails if game over, quadrant super-novas or we've moved to new quadrant*/
  24.         if (alldone || d.galaxy[quadx][quady] == 1000 || justin != 0) return 1;
  25.         return 0;
  26. }
  27.  
  28. void preport(void) {
  29.         int iknow = 0, i;
  30.         skip(1);
  31.         chew();
  32.         /* prout("Spock-  \"Planet report follows, Captain.\""); */
  33.         prout("‘¯®ª-  \"Žâç¥â ¯® ¯« ­¥â¥, Š ¯¨â ­.\"");
  34.         skip(1);
  35.         for (i = 1; i <= inplan; i++) {
  36.                 if (d.plnets[i].known
  37. #ifdef DEBUG
  38.                         || ( idebug && d.plnets[i].x !=0)
  39. #endif
  40.                         ) {
  41.                         iknow = 1;
  42. #ifdef DEBUG
  43.                         if (idebug && d.plnets[i].known==0) proutn("(Unknown) ");
  44. #endif
  45.                         cramlc(1, d.plnets[i].x, d.plnets[i].y);
  46.                         proutn("   ª« áá ");/*class*/
  47.                         proutn(classes[d.plnets[i].pclass]);
  48.                         proutn("   ");
  49.                         if (d.plnets[i].crystals == 0) proutn("­¥â ");/*no*/
  50.                         /* prout("dilithium crystals present."); */
  51.                         prout("¤¨«¨â¨¥¢ëå ªà¨áâ ««®¢ ®¡­ à㦥­®.");
  52.                         if (d.plnets[i].known==2)
  53.                                 /* prout("    Shuttle Craft Galileo on surface."); */
  54.                                 prout("    ˜ ââ« ƒ «¨«¥® ­  ¯®¢¥àå­®áâ¨.");
  55.                 }
  56.         }
  57.         /* if (iknow==0) prout("No information available."); */
  58.         if (iknow==0) prout("ˆ­ä®à¬ æ¨ï ®âáãâáâ¢ã¥â.");
  59. }
  60.  
  61. void orbit(void) {
  62.         double asave;
  63.  
  64.         skip(1);
  65.         chew();
  66.         ididit=0;
  67.         if (inorbit!=0) {
  68.                 /* prout("Already in standard orbit."); */
  69.                 prout("“¦¥ ­ å®¤¨¬áï ­  áâ ­¤ àâ­®© ®à¡¨â¥.");
  70.                 return;
  71.         }
  72.         if (damage[DWARPEN] != 0 && damage[DIMPULS] != 0) {
  73.                 /* prout("Both warp and impulse engines damaged."); */
  74.                 prout("®¢à¥¦¤¥­ë ¨ ¢ à¯- ¨ ¨¬¯ã«ìá­ë¥ ¤¢¨£ â¥«¨.");
  75.                 return;
  76.         }
  77.         if (plnetx == 0 || abs(sectx-plnetx) > 1 || abs(secty-plnety) > 1) {
  78.                 crmshp();
  79.                 /* prout(" not adjacent to planet.\n"); */
  80.                 prout(" ­¥ à冷¬ á ¯« ­¥â®©.\n");
  81.                 return;
  82.         }
  83.         Time = 0.02+0.03*Rand();
  84.         /* prout("Helmsman Sulu-  \"Entering standard orbit, Sir.\""); */
  85.         prout("ã«¥¢®© ‘ã«ã-  \"‚ë室¨¬ ­  áâ ­¤ àâ­ãî ®à¡¨âã, ‘íà.\"");
  86.         newcnd();
  87.         if (consumeTime()) return;
  88.         /* proutn("Sulu-  \"Entered orbit at altitude "); */
  89.         proutn("‘ã«ã-  \"‚ë諨 ­  ®à¡¨âã ­  ¢ëá®â¥ ");
  90.         cramf(height = (1400.+7200.*Rand()), 0, 2);
  91.         prout(" ª¨«®¬¥â஢.\"");/*kilometers*/
  92.         inorbit = 1;
  93.         return;
  94. }
  95.  
  96. void sensor(void) {
  97.         skip(1);
  98.         chew();
  99.         if (damage[DSRSENS] != 0.0) {
  100.                 /* prout("Short range sensors damaged."); */
  101.                 prout("‘¥­á®àë ¡«¨¦­¥£® à ¤¨ãá  ¤¥©áâ¢¨ï ¯®¢à¥¦¤¥­ë.");
  102.                 return;
  103.         }
  104.         if (plnetx == 0) {
  105.                 /* prout("No planet in this quadrant."); */
  106.                 prout("‚ í⮬ ª¢ ¤à ­â¥ ­¥â ¯« ­¥â.");
  107.                 return;
  108.         }
  109.         /* proutn("Spock-  \"Sensor scan for"); */
  110.         proutn("‘¯®ª-  \"‘ª ­¨à®¢ ­¨¥");
  111.         cramlc(1, quadx, quady);
  112.         prout("-");
  113.         skip(1);
  114.         /* proutn("         Planet at"); */
  115.         proutn("         « ­¥â  ¢");
  116.         cramlc(2, plnetx, plnety);
  117.         /* proutn(" is of class "); */
  118.         proutn(" ª« áá  ");
  119.         proutn(classes[d.plnets[iplnet].pclass]);
  120.         prout(".");
  121.         if (d.plnets[iplnet].known==2)
  122.                 /* prout("         Sensors show Galileo still on surface."); */
  123.                 prout("         ‘¥­á®àë ¯®ª §ë¢ îâ, çâ® ƒ «¨«¥® ¥é¥ ­  ¯®¢¥àå­®áâ¨.");
  124.         /* proutn("         Readings indicate"); */
  125.         proutn("         ®«ã祭­ë¥ ¤ ­­ë¥ ¯®ª §ë¢ îâ");
  126.         if (d.plnets[iplnet].crystals == 0) proutn(" ­¥â"); /*no*/
  127.         else proutn(" ­ «¨ç¨¥");
  128.         /* prout(" dilithium crystals present.\""); */
  129.         prout(" ¤¨«¨â¨¥¢ëå ªà¨áâ ««®¢.\"");
  130.         if (d.plnets[iplnet].known == 0) d.plnets[iplnet].known = 1;
  131.         return;
  132. }
  133.  
  134. void beam(void) {
  135.         chew();
  136.         skip(1);
  137.         if (damage[DTRANSP] != 0) {
  138.                 /* prout("Transporter damaged."); */
  139.                 prout("’࠭ᯮàâ â®à ¯®¢à¥¦¤¥­.");
  140.                 if (damage[DSHUTTL]==0 && (d.plnets[iplnet].known==2 || iscraft == 1)) {
  141.                         skip(1);
  142.                         /* prout("Spock-  \"May I suggest the shuttle craft, Sir?\" "); */
  143.                         prout("‘¯®ª-  \"Œ®£ã ¯à¥¤«®¦¨âì ¨á¯®«ì§®¢ âì è ââ«, ‘íà?\" ");
  144.                         if (ja() != 0) shuttle();
  145.                 }
  146.                 return;
  147.         }
  148.         if (inorbit==0) {
  149.                 crmshp();
  150.                 /* prout(" not in standard orbit."); */
  151.                 prout(" ­¥ ­ å®¤¨¬áï ­  áâ ­¤ àâ­®© ®à¡¨â¥.");
  152.                 return;
  153.         }
  154.         if (shldup!=0) {
  155.                 /* prout("Impossible to transport through shields."); */
  156.                 prout("’࠭ᯮàâ¨à®¢ª  ­¥¢®§¬®¦­  ᪢®§ì é¨âë.");
  157.                 return;
  158.         }
  159.         if (d.plnets[iplnet].known==0) {
  160. /*              prout("Spock-  \"Captain, we have no information on this planet");
  161.                 prout("  and Starfleet Regulations clearly state that in this situation");
  162.                 prout("  you may not go down.\"");
  163.  */             prout("‘¯®ª-  \"Š ¯¨â ­, ã ­ á ­¥â ¨­ä®à¬ æ¨¨ ¯® ¤ ­­®© ¯« ­¥â¥");
  164.                 prout("  ¨ “áâ ¢ ‡¢¥§¤­®£® ”«®â  ®¤­®§­ ç­® ®¯¨á뢠¥â ¤ ­­ãî á¨âã æ¨î - ");
  165.                 prout("  ¢ëá ¤ª  § ¯à¥é¥­ .\"");
  166.                 return;
  167.         }
  168.         if (landed==1) {
  169.                 /* Coming from planet */
  170.                 if (d.plnets[iplnet].known==2) {
  171.                         /* proutn("Spock-  \"Wouldn't you rather take the Galileo?\" "); */
  172.                         proutn("‘¯®ª-  \"Œ®¦¥â ‚ë ¢®§ì¬¥â¥ ƒ «¨«¥®?\" ");
  173.                         if (ja() != 0) {
  174.                                 chew();
  175.                                 return;
  176.                         }
  177.                         /* prout("Your crew hides the Galileo to prevent capture by aliens."); */
  178.                         prout("‚ è  ª®¬ ­¤  á¯àïâ «  ƒ «¨«¥® ®â  ¡®à¨£¥­®¢.");
  179.                 }
  180. /*              prout("Landing party assembled, ready to beam up.");
  181.                 skip(1);
  182.                 prout("Kirk whips out communicator...");
  183.                 prouts("BEEP  BEEP  BEEP");
  184.                 skip(2);
  185.                 prout("\"Kirk to enterprise-  Lock on coordinates...energize.\"");
  186.  */             prout("ƒà㯯  ¢ëá ¤ª¨ £®â®¢  ª â࠭ᯮàâ¨à®¢ª¥.");
  187.                 skip(1);
  188.                 prout("Š¨àª ¢ª«î稫 ª®¬¬ã­¨ª â®à...");
  189.                 prouts("ˆˆ  ˆˆ  ˆˆ");
  190.                 skip(2);
  191.                 prout("\"Š¨àª - ­â¥à¯à ©§ã -  ‡ å¢ â ¯® ª®®à¤¨­ â ¬...¢ª«îç ©â¥.\"");
  192.         }
  193.         else {
  194.                 /* Going to planet */
  195.                 if (d.plnets[iplnet].crystals==0) {
  196. /*                      prout("Spock-  \"Captain, I fail to see the logic in");
  197.                         prout("  exploring a planet with no dilithium crystals.");
  198.                         proutn("  Are you sure this is wise?\" ");
  199.  */                     prout("‘¯®ª-  \"Š ¯¨â ­, ­¥ ¢¨¦ã ­¨ª ª®© «®£¨ª¨ ¢ ⮬,");
  200.                         prout("  çâ®¡ë ¨áá«¥¤®¢ âì ¯« ­¥âã ¡¥§ ¤¨«¨â¨¥¢ëå ªà¨áâ ««®¢.");
  201.                         proutn("  ‚ë 㢥७ë, çâ® íâ® ¬ã¤à®?\" ");
  202.                         if (ja()==0) {
  203.                                 chew();
  204.                                 return;
  205.                         }
  206.                 }
  207. /*              prout("Scotty-  \"Transporter room ready, Sir.\"");
  208.                 skip(1);
  209.                 prout("Kirk, and landing party prepare to beam down to planet surface.");
  210.                 skip(1);
  211.                 prout("Kirk-  \"Energize.\"");
  212.  */             prout("‘ª®ââ¨-  \"’࠭ᯮàâ â®à­ ï £®â®¢ , ‘íà.\"");
  213.                 skip(1);
  214.                 prout("Š¨àª ¨ £à㯯  ¢ëá ¤ª¨ £®â®¢  ª â࠭ᯮàâ æ¨¨ ­  ¯®¢¥àå­®áâì.");
  215.                 skip(1);
  216.                 prout("Š¨àª-  \"‚ª«îç ©.\"");
  217.         }
  218.         skip(1);
  219.         /* prouts("WWHOOOIIIIIRRRRREEEE.E.E.  .  .  .  .   .    ."); */
  220.         prouts("“““““ˆˆˆˆ‰‰‰‰‰……….….….  .  .  .  .   .    .");
  221.         skip(2);
  222.         if (Rand() > 0.98) {
  223.                 /* prouts("BOOOIIIOOOIIOOOOIIIOIING . . ."); */
  224.                 prouts("““ˆˆˆŽŽˆˆˆƒ . . .‹ŸŒ");
  225.                 skip(2);
  226.                 /* prout("Scotty-  \"Oh my God!  I've lost them.\""); */
  227.                 prout("‘ª®ââ¨-  \"®¦¥ ¬®©!  Ÿ ¯®â¥àï« ¨å.\"");
  228.                 finish(FLOST);
  229.                 return;
  230.         }
  231.         /* prouts(".    .   .  .  .  .  .E.E.EEEERRRRRIIIIIOOOHWW"); */
  232.         prouts(".    .   .  .  .  .  .….….….……………‰‰‰‰ˆˆˆˆŽŽŽŽŽ‘");
  233.         skip(2);
  234.         prout("’࠭ᯮàâ¨à®¢ª  § ¢¥à襭 .");/*Transport complete*/
  235.         landed = -landed;
  236.         if (landed==1 && d.plnets[iplnet].known==2) {
  237.                 /* prout("The shuttle craft Galileo is here!"); */
  238.                 prout("˜ ââ« ƒ «¨«¥® ­  ¬¥áâ¥!");
  239.         }
  240.         if (landed!=1 && imine==1) {
  241.                 icrystl = 1;
  242.                 cryprob = 0.05;
  243.         }
  244.         imine = 0;
  245.         return;
  246. }
  247.  
  248. void mine(void) {
  249.  
  250.         ididit = 0;
  251.         skip(1);
  252.         chew();
  253.         if (landed!= 1) {
  254.                 /* prout("Mining party not on planet."); */
  255.                 prout("˜ åâ¥àë ­¥ ­ å®¤ïâáï ­  ¯« ­¥â¥.");
  256.                 return;
  257.         }
  258.         if (d.plnets[iplnet].crystals == 0) {
  259.                 /* prout("No dilithium crystals on this planet."); */
  260.                 prout("  ¯« ­¥â¥ ­¥â ¤¨«¨â¨¥¢ëå ªà¨áâ ««®¢.");
  261.                 return;
  262.         }
  263.         if (imine == 1) {
  264.                 /* prout("You've already mined enough crystals for this trip."); */
  265.                 prout("‚ë 㦥 ¤®¡ë«¨ ¬ ªá¨¬ã¬ ªà¨áâ ««®¢ ¤«ï ®¤­®£® ३á .");
  266.                 return;
  267.         }
  268.         if (icrystl == 1 && cryprob == 0.05) {
  269.                 /* proutn("With all those fresh crystals aboard the "); */
  270.                 proutn("“ ­ á ¯®«­® ᢥ¦¨å ªà¨áâ ««®¢ ­  ¡®àâã ");
  271.                 crmshp();
  272.                 skip(1);
  273.                 /* prout("there's no reason to mine more at this time."); */
  274.                 prout("¥â ­¨ª ª®£® á¬ëá«  ¤®¡ë¢ âì ¥é¥.");
  275.                 return;
  276.         }
  277.         Time = (0.1+0.2*Rand())*d.plnets[iplnet].pclass;
  278.         if (consumeTime()) return;
  279.         /* prout("Mining operation complete."); */
  280.         prout("Ž¯¥à æ¨ï ¤®¡ëç¨ ªà¨áâ ««®¢ § ¢¥à襭 .");
  281.         imine = 1;
  282.         return;
  283. }
  284.  
  285. void usecrystals(void) {
  286.  
  287.         skip(1);
  288.         chew();
  289.         if (icrystl!=1) {
  290.                 /* prout("No dilithium crystals available."); */
  291.                 prout("„¨«¨â¨¥¢ë¥ ªà¨áâ ««ë ®âáãâáâ¢ãîâ.");
  292.                 return;
  293.         }
  294.         if (energy >= 1000) {
  295. /*              prout("Spock-  \"Captain, Starfleet Regulations prohibit such an operation");
  296.                 prout("  except when condition Yellow exists.");
  297.  */             prout("‘¯®ª-  \"Š ¯¨â ­, “áâ ¢ ‡¢¥§¤­®£® ”«®â  § ¯à¥é ¥â â ª¨¥ ®¯¥à æ¨¨");
  298.                 prout("  ªà®¬¥ ª ª ¯à¨ ¦¥«â®¬ ª®¤¥ ®¯ á­®áâ¨.");
  299.                 return;
  300.         }
  301. /*      prout("Spock- \"Captain, I must warn you that loading");
  302.         prout("  raw dilithium crystals into the ship's power");
  303.         prout("  system may risk a severe explosion.");
  304.         proutn("  Are you sure this is wise?\" ");
  305.  */     prout("‘¯®ª- \"Š ¯¨â ­, ï ¤®«¦¥­ ¯à¥¤ã¯à¥¤¨âì ‚ á - ");
  306.         prout("  § £à㧪  ¢ í­¥à£®á¨á⥬㠭¥®¡à ¡®â ­­ëå ¤¨«¨â¨¥¢ëå");
  307.         prout("  ªà¨áâ ««®¢ ¬®¦¥â ¯à¨¢¥á⨠ª ¢§àë¢ã.");
  308.         proutn("  ‚ë 㢥७ë?\" ");
  309.         if (ja()==0) {
  310.                 chew();
  311.                 return;
  312.         }
  313.         skip(1);
  314. /*      prout("Engineering Officer Scott-  \"(GULP) Aye Sir.");
  315.         prout("  Mr. Spock and I will try it.\"");
  316.         skip(1);
  317.         prout("Spock-  \"Crystals in place, Sir.");
  318.         prout("  Ready to activate circuit.\"");
  319.         skip(1);
  320.         prouts("Scotty-  \"Keep your fingers crossed, Sir!\"");
  321.  */     prout("ˆ­¦¥­¥à-®ä¨æ¥à ‘ª®ââ  \"(‘£«®â­ã¢) ’ ª â®ç­®, ‘íà.");
  322.         prout("  Œ¨áâ¥à ‘¯®ª ¨ ï ¯®¯à®¡ã¥¬ ᤥ« âì íâ®.\"");
  323.         skip(1);
  324.         prout("‘¯®ª-  \"Šà¨áâ ««ë § £à㦥­ë, ‘íà.");
  325.         prout("  ƒ®â®¢ë ª  ªâ¨¢ æ¨¨ ॠªâ®à .\"");
  326.         skip(1);
  327.         prouts("‘ª®ââ¨-  \"‘ªà¥áâ¨â¥ ¯ «ìæë ­  㤠çã, ‘íà!\"");
  328.         skip(1);
  329.         if (Rand() <= cryprob) {
  330.                 /* prouts("  \"Activating now! - - No good!  It's***"); */
  331.                 prouts("  \"€ªâ¨¢ æ¨ï ¯à®¨§¢¥¤¥­ ! - - —â® â® ­¥ â ª!  â® ¦¥***");
  332.                 skip(2);
  333.                 /* prouts("***RED ALERT!  RED A*L********************************"); */
  334.                 prouts("***Ž€‘Ž‘’œ!  Ž€*‘Ž********************************");
  335.                 skip(1);
  336.                 stars();
  337.                 /* prouts("******************   KA-BOOM!!!!   *******************"); */
  338.                 prouts("******************   Š€-“Œ!!!!   *******************");
  339.                 skip(1);
  340.                 kaboom();
  341.                 return;
  342.         }
  343.         energy += 5000.0*(1.0 + 0.9*Rand());
  344. /*      prouts("  \"Activating now! - - ");
  345.         prout("The instruments");
  346.         prout("   are going crazy, but I think it's");
  347.         prout("   going to work!!  Congratulations, Sir!\"");
  348.  */     prouts("  \"€ªâ¨¢ æ¨ï ¯à®¨§¢¥¤¥­ ! - - ");
  349.         prout(" ­¥«ì ¯à¨¡®à®¢");
  350.         prout("   ¢á¡¥á¨« áì, ­® ï ¤ã¬ î, çâ® ¢á¥");
  351.         prout("   ¡ã¤¥â à ¡®â âì!!  ®§¤à ¢«ïî, ‘íà!\"");
  352.         cryprob *= 2.0;
  353.         return;
  354. }
  355.  
  356. void shuttle(void) {
  357.  
  358.         chew();
  359.         skip(1);
  360.         ididit = 0;
  361.         if(damage[DSHUTTL] != 0.0) {
  362.                 if (damage[DSHUTTL] == -1.0) {
  363.                         if (inorbit && d.plnets[iplnet].known == 2)
  364.                                 /* prout("Ye Faerie Queene has no shuttle craft bay to dock it at."); */
  365.                                 prout("Š®à®«¥¢  ”¥© ­¥ ¨¬¥¥â ¯®á ¤®ç­®£® ®âᥪ  ¤«ï è ââ« .");
  366.                         else
  367.                                 /* prout("Ye Faerie Queene had no shuttle craft."); */
  368.                                 prout("  Š®à®«¥¢¥ ”¥© ­¥â è ââ« .");
  369.                 }
  370.                 else if (damage[DSHUTTL] > 0)
  371.                         /* prout("The Galileo is damaged."); */
  372.                         prout("ƒ «¨«¥® ¯à®¢à¥¦¤¥­.");
  373.                 /* else prout("Shuttle craft is now serving Big Mac's."); */
  374.                 else prout("˜ â⫠ᥩç á à §¢®§¨â ¨£Œ ª¨.");
  375.                 return;
  376.         }
  377.         if (inorbit==0) {
  378.                 crmshp();
  379.                 /* prout(" not in standard orbit."); */
  380.                 prout(" ­¥ ­ å®¤¨¬áï ­  áâ ­¤ àâ­®© ®à¡¨â¥.");
  381.                 return;
  382.         }
  383.         if ((d.plnets[iplnet].known != 2) && iscraft != 1) {
  384.                 /* prout("Shuttle craft not currently available."); */
  385.                 prout("˜ ââ« ¢ ¤ ­­ë© ¬®¬¥­â ­¥¤®áâ㯥­.");
  386.                 return;
  387.         }
  388.         if (landed==-1 && d.plnets[iplnet].known==2) {
  389.                 /* prout("You will have to beam down to retrieve the shuttle craft."); */
  390.                 prout("‚ ¬ ­ã¦­®  ªâ¨¢¨à®¢ âì ᨫ®¢®© «ãç, çâ®¡ë ¯®¤­ïâì è ââ« á ¯®¢¥àå­®áâ¨.");
  391.                 return;
  392.         }
  393.         if (shldup!=0 || condit == IHDOCKED) {
  394.                 /* prout("Shuttle craft cannot pass through shields."); */
  395.                 prout("˜ ââ« ­¥¢®§¬®¦­® â࠭ᯮàâ¨à®¢ âì ᪢®§ì é¨âë.");
  396.                 return;
  397.         }
  398.         if (d.plnets[iplnet].known==0) {
  399. /*              prout("Spock-  \"Captain, we have no information on this planet");
  400.                 prout("  and Starfleet Regulations clearly state that in this situation");
  401.                 prout("  you may not fly down.\"");
  402.  */             prout("‘¯®ª-  \"Š ¯¨â ­, ã ­ á ­¥â ¨­ä®à¬ æ¨¨ ¯® ¤ ­­®© ¯« ­¥â¥");
  403.                 prout("  ¨ “áâ ¢ ‡¢¥§¤­®£® ”«®â  ®¤­®§­ ç­® ®¯¨á뢠¥â ¤ ­­ãî á¨âã æ¨î - ");
  404.                 prout("  ¢ëá ¤ª  § ¯à¥é¥­ .\"");
  405.                 return;
  406.         }
  407.         Time = 3.0e-5*height;
  408.         if (Time >= 0.8*d.remtime) {
  409. /*              prout("First Officer Spock-  \"Captain, I compute that such");
  410.                 prout("  a maneuver would require approximately ");
  411.  */             prout("¥à¢ë© ®ä¨æ¥à ‘¯®ª-  \"Š ¯¨â ­, ï à ááç¨â «, çâ® íâ®â");
  412.                 prout("  ¬ ­¥¢à § ©¬¥â ¯à¨¡«¨§¨â¥«ì­® ");
  413.                 cramf(100*Time/d.remtime,0,4);
  414. /*              prout("% of our");
  415.                 prout("remaining time.");
  416.                 prout("Are you sure this is wise?\" ");
  417.  */             prout("% ®â ­ è¥£®");
  418.                 prout("®á⠢襣®áï ¢à¥¬¥­¨.");
  419.                 prout("‚ë 㢥७ë?\" ");
  420.                 if (ja()==0) {
  421.                         Time = 0.0;
  422.                         return;
  423.                 }
  424.         }
  425.         if (landed == 1) {
  426.                 /* Kirk on planet */
  427.                 if (iscraft==1) {
  428.                         /* Galileo on ship! */
  429.                         if (damage[DTRANSP]==0) {
  430.                                 /* proutn("Spock-  \"Would you rather use the transporter?\" "); */
  431.                                 proutn("‘¯®ª-  \"Œ®¦¥â, «ãçè¥ ¨á¯®«ì§®¢ âì â࠭ᯮàâ â®à?\" ");
  432.                                 if (ja() != 0) {
  433.                                         beam();
  434.                                         return;
  435.                                 }
  436.                                 proutn("Š®¬ ­¤  è ââ« ");/*Shuttle crew*/
  437.                         }
  438.                         else
  439.                                 proutn("‘¯ á â¥«ì­ ï ª®¬ ­¤ ");/*Rescue party*/
  440.                         /* prout(" boards Galileo and swoops toward planet surface."); */
  441.                         prout(" ᥫ  ­  ƒ «¨«¥® ¨ ®â¯à ¢¨« áâì ­  ¯®¢¥àå­®áâì.");
  442.                         iscraft = 0;
  443.                         skip(1);
  444.                         if (consumeTime()) return;
  445.                         d.plnets[iplnet].known=2;
  446.                         prout("®á ¤ª  § ¢¥à襭 .");/*Trip complete*/
  447.                         return;
  448.                 }
  449.                 else {
  450.                         /* Ready to go back to ship */
  451. /*                      prout("You and your mining party board the");
  452.                         prout("shuttle craft for the trip back to the Enterprise.");
  453.                         skip(1);
  454.                         prout("The short hop begins . . .");
  455.  */                     prout("‚ë á ¯ à⨥© è åâ¥à®¢ ᥫ¨ ¢ è ââ«");
  456.                         prout("¤«ï ¢®§¢à é¥­¨ï ­  ­â¥à¯à ©§.");
  457.                         skip(1);
  458.                         /* prout("The short hop begins . . ."); */
  459.                         prout("Ž¡à â­ë© ®âáç¥â ¯®è¥« . . .");
  460.                         d.plnets[iplnet].known=1;
  461.                         icraft = 1;
  462.                         skip(1);
  463.                         landed = -1;
  464.                         if (consumeTime()) return;
  465.                         iscraft = 1;
  466.                         icraft = 0;
  467.                         if (imine!=0) {
  468.                                 icrystl = 1;
  469.                                 cryprob = 0.05;
  470.                         }
  471.                         imine = 0;
  472.                         /* prout("Trip complete."); */
  473.                         prout("®«¥â § ¢¥à襭.");
  474.                         return;
  475.                 }
  476.         }
  477.         else {
  478.                 /* Kirk on ship */
  479.                 /* and so is Galileo */
  480. /*              prout("Mining party assembles in the hangar deck,");
  481.                 prout("ready to board the shuttle craft \"Galileo\".");
  482.                 skip(1);
  483.                 prouts("The hangar doors open; the trip begins.");
  484.  */             prout(" àâ¨ï è åâ¥à®¢ ᮡࠫ áì ¢  ­£ à¥,");
  485.                 prout("£®â®¢ë¥ ª ¯®á ¤ª¥ ­  è ââ« \"ƒ «¨«¥®\".");
  486.                 skip(1);
  487.                 prouts("„¢¥à¨  ­£ à  ®âªà뢠îâáï; ¯®«¥â ­ ç¨­ ¥âáï.");
  488.                 skip(1);
  489.                 icraft = 1;
  490.                 iscraft = 0;
  491.                 if (consumeTime()) return;
  492.                 d.plnets[iplnet].known = 2;
  493.                 landed = 1;
  494.                 icraft = 0;
  495.                 prout("®á ¤ª  § ¢¥à襭 ");
  496.                 return;
  497.         }
  498. }
  499.                
  500.  
  501. void deathray(void) {
  502.         double r = Rand();
  503.        
  504.         ididit = 0;
  505.         skip(1);
  506.         chew();
  507.         if (ship != IHE) {
  508.                 /* prout("Ye Faerie Queene has no death ray."); */
  509.                 prout("  Š®à®«¥¢¥ ”¥© ­¥â ‹ãç  ‘¬¥àâ¨.");
  510.                 return;
  511.         }
  512.         if (nenhere==0) {
  513.                 /* prout("Sulu-  \"But Sir, there are no enemies in this quadrant.\""); */
  514.                 prout("‘ã«ã-  \"® ‘íà, ¢ í⮬ ª¢ ¤à ­â¥ ¢à £¨ ®âáãâáâ¢ãîâ.\"");
  515.                 return;
  516.         }
  517.         if (damage[DDRAY] > 0.0) {
  518.                 /* prout("Death Ray is damaged."); */
  519.                 prout("‹ãç ‘¬¥à⨠¯®¢à¥¦¤¥­.");
  520.                 return;
  521.         }
  522. /*      prout("Spock-  \"Captain, the 'Experimental Death Ray'");
  523.         prout("  is highly unpredictable.  Considering the alternatives,");
  524.         prout("  are you sure this is wise?\" ");
  525.  */     prout("‘¯®ª-  \"Š ¯¨â ­, 'ªá¯¥à¨¬¥­â «ì­ë© ‹ãç ‘¬¥àâ¨'");
  526.         prout("  ¢¥á쬠 ­¥¯à¥¤áª §ã¥¬.   áᬮâà¨â¥  «ìâ¥à­ â¨¢ë,");
  527.         prout("  ‚ë ã¢¥à¥­ë ¢ ࠧ㬭®á⨠í⮣®?\" ");
  528.         if (ja()==0) return;
  529.         /* prout("Spock-  \"Acknowledged.\""); */
  530.         prout("‘¯®ª-  \"®¤â¢¥à¦¥­¨¥ ¯à¨­ïâ®.\"");
  531.         skip(1);
  532.         ididit=1;
  533. /*      prouts("WHOOEE ... WHOOEE ... WHOOEE ... WHOOEE");
  534.         skip(1);
  535.         prout("Crew scrambles in emergency preparation.");
  536.         prout("Spock and Scotty ready the death ray and");
  537.         prout("prepare to channel all ship's power to the device.");
  538.         skip(1);
  539.         prout("Spock-  \"Preparations complete, sir.\"");
  540.         prout("Kirk-  \"Engage!\"");
  541.         skip(1);
  542.         prouts("WHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR");
  543.  */     prouts("“““ˆˆˆ ... “““ˆˆˆ ... “““ˆˆˆ ... “““ˆˆˆ");
  544.         skip(1);
  545.         prout("Š®¬ ­¤  ¯à¨£®â®¢¨« áì ¯®  ¢ à¨©­®¬ã ¯à®â®ª®«ã.");
  546.         prout("‘¯®ª ¨ ‘ª®â⨠¯à¨£®â®¢¨«¨ ‹ãç ‘¬¥à⨠¨");
  547.         prout("¯à¨£®â®¢¨«¨ ª ­ « ¯®¤ ç¨ í­¥à£¨¨ ­  ãáâனá⢮.");
  548.         skip(1);
  549.         prout("‘¯®ª-  \"®¤£®â®¢ª  ‹ãç  § ¢¥à襭 , ‘íà.\"");
  550.         prout("Š¨àª-  \"‚ª«îç ©!\"");
  551.         skip(1);
  552.         prouts("“ˆˆˆˆˆ");
  553.         skip(1);
  554.         if (r > .30) {
  555.                 /* prouts("Sulu- \"Captain!  It's working!\""); */
  556.                 prouts("‘ã«ã- \"Š ¯¨â ­!  Ž­ áà ¡®â «!\"");
  557.                 skip(2);
  558.                 while (nenhere > 0) {
  559.                         deadkl(kx[1],ky[1],quad[kx[1]][ky[1]],kx[1],ky[1]);
  560.                 }
  561.                 /* prout("Ensign Chekov-  \"Congratulations, Captain!\""); */
  562.                 prout("Œ¨ç¬ ­ —¥å®¢-  \"®§¤à ¢«¥­¨ï, Š ¯¨â ­!\"");
  563.                 if (d.remkl == 0) finish(FWON);
  564.                 /* prout("Spock-  \"Captain, I believe the `Experimental Death Ray'"); */
  565.                 prout("‘¯®ª-  \"Š ¯¨â ­, ï ¤ã¬ î, `ªá¯¥à¨¬¥­â «ì­ë© ‹ãç ‘¬¥àâ¨'");
  566.                 if (Rand() <= 0.05) {
  567.                         /* prout("   is still operational.\""); */
  568.                         prout("   ¯®«­®áâìî à ¡®â®á¯®á®¡¥­.\"");
  569.                 }
  570.                 else {
  571.                         /* prout("   has been rendered dysfunctional.\""); */
  572.                         prout("   ¢ë襫 ¨§ áâà®ï.\"");
  573.                         damage[DDRAY] = 39.95;
  574.                 }
  575.                 return;
  576.         }
  577.         r = Rand();     // Pick failure method
  578.         if (r <= .30) {
  579. /*              prouts("Sulu- \"Captain!  It's working!\"");
  580.                 skip(1);
  581.                 prouts("***RED ALERT!  RED ALERT!");
  582.                 skip(1);
  583.                 prout("***MATTER-ANTIMATTER IMPLOSION IMMINENT!");
  584.                 skip(1);
  585.                 prouts("***RED ALERT!  RED A*L********************************");
  586.                 skip(1);
  587.                 stars();
  588.                 prouts("******************   KA-BOOM!!!!   *******************");
  589.  */             prouts("‘ã«ã- \"Š ¯¨â ­!  Ž­® à ¡®â ¥â!\"");
  590.                 skip(1);
  591.                 prouts("***Ž€‘Ž‘’œ!  Ž€‘Ž‘’œ!");
  592.                 skip(1);
  593.                 prout("***…ˆ‡…†… ‚‡›‚ €’ˆŒ€’…ˆˆ!");
  594.                 skip(1);
  595.                 prouts("***Ž€‘Ž‘’œ!  Ž€*‘Ž********************************");
  596.                 skip(1);
  597.                 stars();
  598.                 prouts("******************   Š€-“Œ!!!!   *******************");
  599.                 skip(1);
  600.                 kaboom();
  601.                 return;
  602.         }
  603.         if (r <= .55) {
  604. /*              prouts("Sulu- \"Captain!  Yagabandaghangrapl, brachriigringlanbla!\"");
  605.                 skip(1);
  606.                 prout("Lt. Uhura-  \"Graaeek!  Graaeek!\"");
  607.                 skip(1);
  608.                 prout("Spock-  \"Fascinating!  . . . All humans aboard");
  609.                 prout("  have apparently been transformed into strange mutations.");
  610.                 prout("  Vulcans do not seem to be affected.");
  611.                 skip(1);
  612.                 prout("Kirk-  \"Raauch!  Raauch!\"");
  613.  */             prouts("‘ã«ã- \"Š ¯¨â ­!  Ÿ£ ¡ ­¤ £å  à£à ¯«, ¡à ­å¨à¨¨£à¨­£« ¡« !\"");
  614.                 skip(1);
  615.                 prout("‹¥©â¥­ ­â “åãà -  \"ƒà  ¥¥ª!  ƒà  ¥¥ª!\"");
  616.                 skip(1);
  617.                 prout("‘¯®ª-  \"‚¥«¨ª®«¥¯­®!  . . . ‚ᥠ«î¤¨ ­  ¡®àâã");
  618.                 prout("  ¢­¥§ ¯­® ¯®¤¢¥à£«¨áì áâà ­­ë¬ ¬ãâ æ¨ï¬.");
  619.                 prout("  ‚㫪 ­æë ­¥ ¯®¤¢¥à¦¥­ë â ª®¬ã ¢®§¤¥©áâ¢¨î ‹ãç .");
  620.                 skip(1);
  621.                 prout("Š¨àª-  \"  ãå!    ãå!\"");
  622.                 finish(FDRAY);
  623.                 return;
  624.         }
  625.         if (r <= 0.75) {
  626.                 int i,j;
  627. /*              prouts("Sulu- \"Captain!  It's   --WHAT?!?!\"");
  628.                 skip(2);
  629.                 proutn("Spock-  \"I believe the word is");
  630.                 prouts(" *ASTONISHING*");
  631.                 prout(" Mr. Sulu.");
  632.  */             prouts("‘ã«ã- \"Š ¯¨â ­!  â®   --—’Ž?!?!\"");
  633.                 skip(2);
  634.                 proutn("‘¯®ª-  \"Ÿ ¤ã¬ î ¯®¤å®¤ï饥 á«®¢®");
  635.                 prouts(" *“„ˆ‚ˆ’…‹œŽ*");
  636.                 prout(" Œ¨áâ¥à ‘ã«ã.");
  637.                 for (i=1; i<=10; i++)
  638.                         for (j=1; j<=10; j++)
  639.                                 if (quad[i][j] == IHDOT) quad[i][j] = IHQUEST;
  640. /*              prout("  Captain, our quadrant is now infested with");
  641.                 prouts(" - - - - - -  *THINGS*.");
  642.                 skip(1);
  643.                 prout("  I have no logical explanation.\"");
  644.  */             prout("  Š ¯¨â ­, ­ è ª¢ ¤à ­â § á¥«¥­");
  645.                 prouts(" - - - - - -  *…—’ŽŒ*.");
  646.                 skip(1);
  647.                 prout("  “ ¬¥­ï ­¥â «®£¨ç¥áª®£® ®¡êïá­¥­¨ï.\"");
  648.                 return;
  649.         }
  650. /*      prouts("Sulu- \"Captain!  The Death Ray is creating tribbles!\"");
  651.         skip(1);
  652.         prout("Scotty-  \"There are so many tribbles down here");
  653.         prout("  in Engineering, we can't move for 'em, Captain.\"");
  654.  */     prouts("‘ã«ã- \"Š ¯¨â ­!  ‹ãç ‘¬¥à⨠ᮧ¤ « âਡ¡«®¢!\"");
  655.         skip(1);
  656.         prout("‘ª®ââ¨-  \"—â® â® ¨å ᫨誮¬ 㦠¬­®£®");
  657.         prout("  ¢ ¨­¦¥­¥à­®¬ ®âᥪ¥, ¬ë ­¥ ¬®¦¥¬ ¤¢¨£ âìáï ¨§-§  ­¨å, Š ¯¨â ­.\"");
  658.         finish(FTRIBBLE);
  659.         return;
  660. }
  661.