Subversion Repositories Kolibri OS

Rev

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

  1. #include "sst.h"
  2. #include <string.h>
  3. #ifndef KOS32
  4. #include <time.h>
  5. #else
  6. #include <kolibrisys.h>
  7. #endif
  8.  
  9. void dstrct() {
  10.         /* Finish with a BANG! */
  11.         chew();
  12.         if (damage[DCOMPTR] != 0.0) {
  13.                 /* prout("Computer damaged; cannot execute destruct sequence."); */
  14.                 prout("Š®¬¯ìîâ¥à ¯®¢à¥¦¤¥­; ¥¢®§¬®¦­® § ¯ãáâ¨âì á ¬®ã­¨ç⮦¥­¨¥.");
  15.                 return;
  16.         }
  17.         skip(1);
  18. /*      prouts("---WORKING---"); skip(1);
  19.         prout("SELF-DESTRUCT-SEQUENCE-ACTIVATED");
  20.  */     prouts("---Ž†ˆ„€‰’…---"); skip(1);
  21.         prout("Ž–…„“€-‘€ŒŽ“ˆ—’Ž†…ˆŸ-€Š’ˆ‚ˆŽ‚€€");
  22.         prouts("   10"); skip(1);
  23.         prouts("       9"); skip(1);
  24.         prouts("          8"); skip(1);
  25.         prouts("             7"); skip(1);
  26.         prouts("                6"); skip(1);
  27. /*      prout("ENTER-CORRECT-PASSWORD-TO-CONTINUE-");
  28.         prout("SELF-DESTRUCT-SEQUENCE-OTHERWISE-");
  29.         prout("SELF-DESTRUCT-SEQUENCE-WILL-BE-ABORTED");
  30.  */     prout("‚‚…„ˆ’…-€‚ˆ‹œŽ-€Ž‹œ-„‹Ÿ-Ž„Ž‹†…ˆŸ-");
  31.         prout("‡€“‘Š€-Ž–…„“›-‘€ŒŽ“ˆ—’Ž†…ˆŸ-ˆ€—…-");
  32.         prout("Ž–…„“€-‘€ŒŽ“ˆ—’Ž†…ˆŸ-“„…’-€Ž’ˆŽ‚€€");
  33.         scan();
  34.         chew();
  35.         if (strcmp(passwd, citem) != 0) {
  36. /*              prouts("PASSWORD-REJECTED;"); skip(1);
  37.                 prout("CONTINUITY-EFFECTED");
  38.  */             prouts("€Ž‹œ-…‚……;"); skip(1);
  39.                 prout("……›‚Ž‘’œ-””…Š’ˆ‚€");
  40.                 skip(1);
  41.                 return;
  42.         }
  43.         prouts("€Ž‹œ-ˆŸ’"); skip(1); /*PASSWORD-ACCEPTED*/
  44.         prouts("                   5"); skip(1);
  45.         prouts("                      4"); skip(1);
  46.         prouts("                         3"); skip(1);
  47.         prouts("                            2"); skip(1);
  48.         prouts("                              1"); skip(1);
  49.         if (Rand() < 0.15) {
  50.                 prouts("Ž™€‰-†…‘’ŽŠˆ‰-Œˆ"); /*GOODBYE-CRUEL-WORLD*/
  51.                 skip(1);
  52.         }
  53.         skip(2);
  54.         kaboom();
  55. }
  56.  
  57. void kaboom(void) {
  58.         stars();
  59.         if (ship==IHE) prouts("***");
  60.         prouts("********* ­âய¨ï ");/*Entropy of*/
  61.         crmshp();
  62.         prouts(" ¬ ªá¨¬¨§¨à®¢ ­  *********");/*maximized*/
  63.         skip(1);
  64.         stars();
  65.         skip(1);
  66.         if (nenhere != 0) {
  67.                 double whammo = 25.0 * energy;
  68.                 int l=1;
  69.                 while (l <= nenhere) {
  70.                         if (kpower[l]*kdist[l] <= whammo)
  71.                                 deadkl(kx[l],ky[l], quad[kx[l]][ky[l]], kx[l], ky[l]);
  72.                         l++;
  73.                 }
  74.         }
  75.         finish(FDILITHIUM);
  76. }
  77.                                
  78.  
  79. void finish(FINTYPE ifin) {
  80.         int igotit = 0;
  81.         alldone = 1;
  82.         skip(3);
  83.         /* printf("It is stardate %.1f .\n\n", d.date); */
  84.         printf("‡¢¥§¤­®¥ ¢à¥¬ï %.1f .\n\n", d.date);
  85.         switch (ifin) {
  86.                 case FWON: // Game has been won
  87.                         if (d.nromrem != 0)
  88.                                 /* printf("The remaining %d Romulans surrender to Starfleet Command.\n", */
  89.                                 printf("®á«¥¤­¨¥ %d ஬㫠­æ¥¢ ᤠ«¨áì ­  ¬¨«®áâì ‡¢¥§¤­®£® Š®¬ ­¤®¢ ­¨ï.\n",
  90.                                            d.nromrem);
  91.  
  92.  
  93. /*             prout("You have smashed the Klingon invasion fleet and saved");
  94.             prout("the Federation.");
  95.  */            prout("‚ë á«®¬ «¨ åॡ¥â ¢â®à¦¥­¨î ª«¨­£®­®¢ ¨ ᯠ᫨ ”¥¤¥à æ¨î.");
  96.  
  97. #ifdef CAPTURE
  98.             if (alive && brigcapacity-brigfree > 0) { // captured Klingon crew will get transfered to starbase
  99.                 kcaptured += brigcapacity-brigfree;
  100.                 /* printf("The %d captured Klingons are transferred to Star Fleet Command.\n", */
  101.                 printf("‡ å¢ ç¥­­ë¥ ¢ ¯«¥­ %d ª«¨­£®­®¢ ¯¥à¥¤ ­ë ‡¢¥§¤­®¬ã Š®¬ ­¤®¢ ­¨î.\n",
  102.                        brigcapacity-brigfree);
  103.             }
  104. #endif
  105.                         gamewon=1;
  106.                         if (alive) {
  107.                 double badpt;
  108.  
  109.                                 badpt = 5.*d.starkl + casual + 10.*d.nplankl +
  110.                                                 45.*nhelp+100.*d.basekl;
  111.                                 if (ship == IHF) badpt += 100.0;
  112.                                 else if (ship == 0) badpt += 200.0;
  113.                                 if (badpt < 100.0) badpt = 0.0; // Close enough!
  114.                                 if (d.date-indate < 5.0 ||
  115.                                         // killsPerDate >= RateMax
  116.                                         (d.killk+d.killc+d.nsckill)/(d.date-indate) >=
  117.                                         0.1*skill*(skill+1.0) + 0.1 + 0.008*badpt) {
  118.                                         skip(1);
  119.                                         /* prout("In fact, you have done so well that Starfleet Command"); */
  120.                                         prout("‚ë ­¥¯«®å® á¯à ¢¨«¨áì á § ¤ ­¨¥¬, ¨ ‡¢¥§¤­®¥ Š®¬ ­¤®¢ ­¨¥");
  121.                                         switch (skill) {
  122.                                                 case SNOVICE:
  123.                                                         /* prout("promotes you one step in rank from \"Novice\" to \"Fair\"."); */
  124.                                                         prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ á \"®¢¨çª \" ¤® \"‘ « £¨\".");
  125.                                                         break;
  126.                                                 case SFAIR:
  127.                                                         /* prout("promotes you one step in rank from \"Fair\" to \"Good\"."); */
  128.                                                         prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ á \"Ž¡­ ¤¥¦¨¢ î饣®\" ¤® \"Žâ«¨ç­¨ª \".");
  129.                                                         break;
  130.                                                 case SGOOD:
  131.                                                         /* prout("promotes you one step in rank from \"Good\" to \"Expert\"."); */
  132.                                                         prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ á \"Žâ«¨ç­¨ª \" ¤® \"ªá¯¥àâ \".");
  133.                                                         break;
  134.                                                 case SEXPERT:
  135.                                                         /* prout("promotes you to Commodore Emeritus."); */
  136.                                                         prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ ¤® Š®¬¬ ­¤¥à  ¬¥à¨âãá.");
  137.                                                         skip(1);
  138. /*                                                      prout("Now that you think you're really good, try playing");
  139.                                                         prout("the \"Emeritus\" game. It will splatter your ego.");
  140.  */                                                     prout("’¥¯¥àì, ¥á«¨ ‚ë áç¨â ¥â¥ ᥡ¥ ॠ«ì­® ªàãâë¬, ¯®¯à®¡ã©â¥");
  141.                                                         prout("ã஢¥­ì á«®¦­®á⨠\"¬¥à¨âãá\". â® ãâ¨å®¬¨à¨â ¢ è¥ í£®.");
  142.                                                         break;
  143.                                                 case SEMERITUS:
  144.                                                         skip(1);
  145. /*                                                      prout("Computer-  ERROR-ERROR-ERROR-ERROR");
  146.                                                         skip(1);
  147.                                                         prout("  YOUR-SKILL-HAS-EXCEEDED-THE-CAPACITY-OF-THIS-PROGRAM");
  148.                                                         prout("  THIS-PROGRAM-MUST-SURVIVE");
  149.                                                         prout("  THIS-PROGRAM-MUST-SURVIVE");
  150.                                                         prout("  THIS-PROGRAM-MUST-SURVIVE");
  151.                                                         prout("  THIS-PROGRAM-MUST?- MUST ? - SUR? ? -?  VI");
  152.                                                         skip(1);
  153.                                                         prout("Now you can retire and write your own Star Trek game!");
  154.  */                                                     prout("Š®¬¯ìîâ¥à-  Ž˜ˆŠ€-Ž˜ˆŠ€-Ž˜ˆŠ€-Ž˜ˆŠ€");
  155.                                                         skip(1);
  156.                                                         prout("  ‚€˜-Ž›’-…‚›˜€…’-‚Ž‡ŒŽ†Ž‘’ˆ-’Ž‰-Žƒ€ŒŒ›");
  157.                                                         prout("  Žƒ€ŒŒ€-„Ž‹†€-‚›†ˆ’œ");
  158.                                                         prout("  Žƒ€ŒŒ€-„Ž‹†€-‚›†ˆ’œ");
  159.                                                         prout("  Žƒ€ŒŒ€-„Ž‹†€-‚›†ˆ’œ");
  160.                                                         prout("  Žƒ€ŒŒ€-„Ž‹†€-?- „Ž‹†€ ? - ‚›†? ? -?  ˆ’œ");
  161.                                                         skip(1);
  162.                                                         prout("’¥¯¥àì ¬®¦¥â¥ ᮠᯮª®©­®© ¤ã让 ã©â¨ ¢ ®âá ¢ªã ¨ ­ ¯¨á âì ᮡá⢥­­ãî ¨£à㠑â à ’४!");
  163.                                                         skip(1);
  164.                                                         break;
  165.                                         }
  166.                                         if (skill > SGOOD) {
  167.                                                 if (thawed
  168. #ifdef DEBUG
  169.                                                         && !idebug
  170. #endif
  171.                                                         )
  172.                                                         /* prout("You cannot get a citation, so..."); */
  173.                                                         prout("‚ á ­¥ § ¯¨èãâ ¢  ­­ «ë, â ª çâ®...");
  174.                                                 else {
  175. /*                                                      prout("Do you want your Commodore Emeritus Citation printed?");
  176.                                                         proutn("(You need a 132 column printer.)");
  177.  */                                                     prout("‚ë å®â¨â¥ ­ ¯¥ç â âì ᯨ᮪ ᢮¨å ¢ë᪠§ë¢ ­¨©, Š®¬ ­¤¥à ¬¥à¨âãá?");
  178.                                                         proutn("(‚ ¬ ¯®âॡã¥âáï 132-ᨬ¢®«ì­ë© ¯à¨­â¥à.)");
  179.                                                         chew();
  180.                                                         if (ja()) {
  181.                                                                 igotit = 1;
  182.                                                         }
  183.                                                 }
  184.                                         }
  185.                                 }
  186.                                 // Only grant long life if alive (original didn't!)
  187.                                 skip(1);
  188.                                 /* prout("LIVE LONG AND PROSPER."); */
  189.                                 prout("„Ž‹ƒŽ‰ ‚€Œ †ˆ‡ˆ ˆ Ž–‚…’€ˆŸ.");
  190.                         }
  191.                         score(0);
  192.                         if (igotit != 0) plaque();
  193.                         return;
  194.                 case FDEPLETE: // Federation Resources Depleted
  195. /*                      prout("Your time has run out and the Federation has been");
  196.                         prout("conquered.  Your starship is now Klingon property,");
  197.                         prout("and you are put on trial as a war criminal.  On the");
  198.                         proutn("basis of your record, you are ");
  199.  */                     prout("‚ è¥ ¢à¥¬ï ¢ëè«® ¨ ”¥¤¥à æ¨ï ¡ë«  § å¢ ç¥­ .");
  200.                         prout("‚ è ª®à ¡«ì ⥯¥àì âà®ä¥© ª«¨­£®­®¢,");
  201.                         prout("¨ ‚ á ¡ã¤ãâ á㤨âì ª ª ¢®¥­­®£® ¯à¥áâ㯭¨ª .");
  202.                         proutn(" áᬮâॢ ¢ è¨ ¤¥©á⢨ï, ‚ë ");
  203.                         if (d.remkl*3.0 > inkling) {
  204.                                 prout("®¯à ¢¤ ­ë.");/*aquitted*/
  205.                                 skip(1);
  206.                                 prout("„Ž‹ƒŽ‰ ‚€Œ †ˆ‡ˆ ˆ Ž–‚…’€ˆŸ.");/*LIVE LONG AND PROSPER*/
  207.                         }
  208.                         else {
  209. /*                              prout("found guilty and");
  210.                                 prout("sentenced to death by slow torture.");
  211.  */                             prout("¯à¨§­ ­ë ¢¨­®¢­ë¬");
  212.                                 prout("¨ ¯à¨£®¢®à¥­ë ª ᬥà⨠¯®¤ ¯ë⪠¬¨.");
  213.                                 alive = 0;
  214.                         }
  215.                         score(0);
  216.                         return;
  217.                 case FLIFESUP:
  218. /*                      prout("Your life support reserves have run out, and");
  219.                         prout("you die of thirst, starvation, and asphyxiation.");
  220.                         prout("Your starship is a derelict in space.");
  221.  */                     prout("“ ¢ á ª®­ç¨«¨áì § ¯ áë ¢®§¤ãå  ¨ ¯¨é¨ ¨");
  222.                         prout("¢ë á ª®¬ ­¤®© 㬥૨ ®â £®«®¤  ¨ ¦ ¦¤ë, § ¤ëå ïáì.");
  223.                         prout("‚ è ¬¥àâ¢ë© ª®à ¡«ì ¤à¥©äã¥â ¢ ª®á¬®á¥.");
  224.                         break;
  225.                 case FNRG:
  226. /*                      prout("Your energy supply is exhausted.");
  227.                         skip(1);
  228.                         prout("Your starship is a derelict in space.");
  229.  */                     prout("“ ª®à ¡«ï ª®­ç¨«¨áì § ¯ áë í­¥à£¨¨.");
  230.                         skip(1);
  231.                         prout("‚ è ¬¥àâ¢ë© ª®à ¡«ì ¤à¥©äã¥â ¢ ª®á¬®á¥.");
  232.                         break;
  233.                 case FBATTLE:
  234. /*                      proutn("The ");
  235.                         crmshp();
  236.                         prout("has been destroyed in battle.");
  237.                         skip(1);
  238.                         prout("Dulce et decorum est pro patria mori.");
  239.  */                     proutn("‚ è ª®à ¡«ì ");
  240.                         crmshp();
  241.                         prout("¡ë« ã­¨ç⮦¥­ ¢ ¡®î.");
  242.                         skip(1);
  243.                         prout("Dulce et decorum est pro patria mori.");
  244.                         prout("/‘« ¤ª  ¨ ¯à¥ªà á­  §  த¨­ã ᬥàâì./");
  245.                         break;
  246.                 case FNEG3:
  247. /*                      prout("You have made three attempts to cross the negative energy");
  248.                         prout("barrier which surrounds the galaxy.");
  249.                         skip(1);
  250.                         prout("Your navigation is abominable.");
  251.  */                     prout("‚ë ᤥ« «¨ âਠ¯®¯ë⪨ ¯¥à¥á¥çì ¡ àì¥à ®âà¨æ â¥«ì­®© í­¥à£¨¨");
  252.                         prout(" ®ªà㦠î騩 £ « ªâ¨ªã.");
  253.                         skip(1);
  254.                         prout("‚ë 㦠á­ë© ­ ¢¨£ â®à.");
  255.                         score(0);
  256.                         return;
  257.                 case FNOVA:
  258. /*                      prout("Your starship has been destroyed by a nova.");
  259.                         prout("That was a great shot.");
  260.  */                     prout("‚ è ª®à ¡«ì ¡ë« ã­¨ç⮦¥­ ­®¢®© §¢¥§¤®©.");
  261.                         prout("•®à®è ï ¯®¯ë⪠.");
  262.                         skip(1);
  263.                         break;
  264.                 case FSNOVAED:
  265. /*                      proutn("The ");
  266.                         crmshp();
  267.                         prout(" has been fried by a supernova.");
  268.                         prout("...Not even cinders remain...");
  269.  */                     proutn("‚ è ª®à ¡«ì ");
  270.                         crmshp();
  271.                         prout(" ¡ë« ã­¨ç⮦¥­ ᢥàå­®¢®©.");
  272.                         prout("...ˆ ­¥ ®áâ «®áì ¤ ¦¥ ¯¥¯« ...");
  273.                         break;
  274.                 case FABANDN:
  275. /*                      prout("You have been captured by the Klingons. If you still");
  276.                         prout("had a starbase to be returned to, you would have been");
  277.                         prout("repatriated and given another chance. Since you have");
  278.                         prout("no starbases, you will be mercilessly tortured to death.");
  279.  */                     prout("‚ë ¡ë«¨ § å¢ ç¥­ë ª«¨­£®­ ¬¨. …᫨ ¡ë ã ¢ á ");
  280.                         prout("®áâ « áì å®âì ®¤­  áâ ­æ¨ï ¤«ï ¢®§¢à é¥­¨ï, ¢ë ¬®£«¨ ¡ë");
  281.                         prout("¯®«ãç¨âì ¢â®à®© è ­á. ® ¯®áª®«ìªã á⠭権 ¡®«ìè¥ ­¥â,");
  282.                         prout("¢ á ¡¥á¯®é ¤­® § ¯ëâ îâ ¤® ᬥàâ¨.");
  283.                         break;
  284.                 case FDILITHIUM:
  285.                         /* prout("Your starship is now an expanding cloud of subatomic particles"); */
  286.                         prout("‚ è ª®à ¡«ì ¯à¥¢à â¨«áï ¢ ®¡« ª® á㡠⮬­ëå ç áâ¨æ");
  287.                         break;
  288.                 case FMATERIALIZE:
  289. /*                      prout("Starbase was unable to re-materialize your starship.");
  290.                         prout("Sic transit gloria muntdi");
  291.  */                     prout("‘â ­æ¨ï ­¥ ᬮ£«  ®¡à â­® ¬ â¥à¨ «¨§®¢ âì ¢ è ª®à ¡«ì.");
  292.                         prout("Sic transit gloria muntdi");
  293.                         prout("/’ ª ¯à®å®¤¨â ¬¨à᪠ï á« ¢ /");
  294.                         break;
  295.                 case FPHASER:
  296. /*                      proutn("The ");
  297.                         crmshp();
  298.                         prout(" has been cremated by its own phasers.");
  299.  */                     proutn("‚ è ª®à ¡«ì ");
  300.                         crmshp();
  301.                         prout(" á ¬®ã­¨ç⮦¨«áï ®£­¥¬ ᮡá⢥­­ëå ä §¥à®¢.");
  302.                         break;
  303.                 case FLOST:
  304. /*                      prout("You and your landing party have been");
  305.                         prout("converted to energy, dissipating through space.");
  306.  */                     prout("‚ë ¨ £à㯯  ¢ëá ¤ª¨ ");
  307.                         prout("¯à¥¢à â¨«¨áì ¢ ç¨áâãî í­¥à£¨î, à á¯ë«¥­­ãî ¢ ª®á¬®á¥.");
  308.                         break;
  309.                 case FMINING:
  310. /*                      prout("You are left with your landing party on");
  311.                         prout("a wild jungle planet inhabited by primitive cannibals.");
  312.                         skip(1);
  313.                         prout("They are very fond of \"Captain Kirk\" soup.");
  314.                         skip(1);
  315.                         proutn("Without your leadership, the ");
  316.                         crmshp();
  317.                         prout(" is destroyed.");
  318.  */                     prout("‚ë ®áâ «¨áì ¢¬¥áâ¥ á £à㯯®© ¢ëá ¤ª¨");
  319.                         prout("­  ¤¨ª®© ¯« ­¥â¥, ­ á¥«¥­­®© ¤®¨áâ®à¨ç¥áª¨¬¨ ª ­­¨¡ « ¬¨.");
  320.                         skip(1);
  321.                         prout("Ž­¨ ®ç¥­ì «î¡ïâ á㯠\"Š ¯¨â ­ Š¨àª\".");
  322.                         skip(1);
  323.                         proutn("¥§ ‚ è¥£® ª®¬ ­¤®¢ ­¨ï, ª®à ¡«ì ");
  324.                         crmshp();
  325.                         prout(" ¡ë« ã­¨ç⮦¥­.");
  326.                         break;
  327.                 case FDPLANET:
  328. /*                      prout("You and your mining party perish.");
  329.                         skip(1);
  330.                         prout("That was a great shot.");
  331.  */                     prout("‚ë ¡¥áá«¥¤­® ¯à®¯ «¨ ¢¬¥á⥠á è åâ¥à ¬¨.");
  332.                         skip(1);
  333.                         prout("â® ¡ë«  å®à®è ï ¯®¯ë⪠.");
  334.                         skip(1);
  335.                         break;
  336.                 case FSSC:
  337.                         /* prout("The Galileo is instantly annihilated by the supernova."); */
  338.                         prout("ƒ «¨«¥® ¡ë« ¬£­®¢¥­­®  ­­¨£¨«¨à®¢ ­ á㯥୮¢®©.");
  339.                         // no break;
  340.                 case FPNOVA:
  341. /*                      prout("You and your mining party are atomized.");
  342.                         skip(1);
  343.                         proutn("Mr. Spock takes command of the ");
  344.                         crmshp();
  345.                         prout(" and");
  346.                         prout("joins the Romulans, reigning terror on the Federation.");
  347.  */                     prout("‚ë á £à㯯®© è åâ¥à®¢ à á¯ «¨áì ­   â®¬ë.");
  348.                         skip(1);
  349.                         proutn("Œ¨áâ¥à ‘¯®ª ¯à¨­ï« ª®¬ ­¤®¢ ­¨¥ ");
  350.                         crmshp();
  351.                         prout(" ¨");
  352.                         prout("¯à¨á®¥¤¨­¨«áï ª ஬㫠­æ ¬, á¥ï à §àã襭¨¥ ¨ â¥àà®à ¯® ¢á¥© ”¥¤¥à æ¨¨.");
  353.                         break;
  354.                 case FSTRACTOR:
  355. /*                      prout("The shuttle craft Galileo is also caught,");
  356.                         prout("and breaks up under the strain.");
  357.                         skip(1);
  358.                         prout("Your debris is scattered for millions of miles.");
  359.                         proutn("Without your leadership, the ");
  360.                         crmshp();
  361.                         prout(" is destroyed.");
  362.  */                     prout("˜ ââ« ƒ «¨«¥® ¯®¯ « ¢ ¯®«¥ ¤¥©á⢨ï ᨫ®¢®£® «ãç ,");
  363.                         prout("¨ ¡ë« à §®à¢ ­ ᨫ ¬¨ â⥭¨ï.");
  364.                         skip(1);
  365.                         prout("‚ è¨ ®¡«®¬ª¨ à áá¥ï­ë ­  ¬¨««¨®­ë ¬¨«ì.");
  366.                         proutn("¥§ ‚ è¥£® ª®¬ ­¤®¢ ­¨ï, ª®à ¡«ì ");
  367.                         crmshp();
  368.                         prout(" ¡ë« ã­¨ç⮦¥­.");
  369.                         break;
  370.                 case FDRAY:
  371. /*                      prout("The mutants attack and kill Spock.");
  372.                         prout("Your ship is captured by Klingons, and");
  373.                         prout("your crew is put on display in a Klingon zoo.");
  374.  */                     prout("Œãâ ­âë  â ª®¢ «¨ ¨ 㡨«¨ ‘¯®ª .");
  375.                         prout("‚ è ª®à ¡«ì ¡ë« § å¢ ç¥­ ª«¨­£®­ ¬¨ ¨ ⥯¥àì");
  376.                         prout("¢ è  ª®¬ ­¤  ¯à¥¤áâ ¢«¥­  ¢ ª«¨­£®­áª®¬ §®®¯ àª¥.");
  377.                         break;
  378.                 case FTRIBBLE:
  379. /*                      prout("Tribbles consume all remaining water,");
  380.                         prout("food, and oxygen on your ship.");
  381.                         skip(1);
  382.                         prout("You die of thirst, starvation, and asphyxiation.");
  383.                         prout("Your starship is a derelict in space.");
  384.  */                     prout("’ਡ¡«ë ᮦࠫ¨ ¢áî ®áâ ¢èãîáï ¢®¤ã,");
  385.                         prout("¥¤ã ¨ ª¨á«®à®¤ ­  ¢ è¥¬ ª®à ¡«¥.");
  386.                         skip(1);
  387.                         prout("‚ë á ª®¬ ­¤®© 㬥૨ ®â £®«®¤  ¨ ¦ ¦¤ë, § ¤ëå ïáì.");
  388.                         prout("‚ è ¬¥àâ¢ë© ª®à ¡«ì ¤à¥©äã¥â ¢ ª®á¬®á¥.");
  389.                         break;
  390.                 case FHOLE:
  391. /*                      prout("Your ship is drawn to the center of the black hole.");
  392.                         prout("You are crushed into extremely dense matter.");
  393.  */                     prout("‚ á § âï­ã«® ¢ 業âà ç¥à­®© ¤ëàë.");
  394.                         prout("‚ë ⥯¥àì ¨áª«îç¨â¥«ì­® ¬ «¥­ìª ï ¨ ᢥàåâ¢¥à¤ ï ¯ë«¨­ª .");
  395.                         break;
  396. #ifdef CLOAKING
  397.                 case FCLOAK:
  398.                         ncviol++;
  399. /*                      prout("You have violated the Treaty of Algeron.");
  400.                         prout("The Romulan Empire can never trust you again.");
  401.  */                     prout("‚ë ­ àã訫¨ €«£¥à®­áª®¥ ‘®£« è¥­¨¥.");
  402.                         prout("®¬ã« ­áª ï ˆ¬¯¥à¨ï ­¨ª®£¤  ¡®«ìè¥ ­¥ ¯®¢¥à¨â ¢ ¬.");
  403.                         break;
  404. #endif
  405.         }
  406. #ifdef CLOAKING
  407.         if (ifin!=FWON && ifin!=FCLOAK && iscloaked!=0) {
  408. /*              prout("Your ship was cloaked so your subspace radio did not receive anything.");
  409.                 prout("You may have missed some warning messages.");
  410.  */             prout("‚ è ª®à ¡«ì ¡ë« ­¥¢¨¤¨¬, â ª çâ® ¯®¤¯à®áâ࠭ᢥ­­®¥ à ¤¨® ­¥ à ¡®â «®.");
  411.                 prout("‚ë ¬®£«¨ ¯à®¯ãáâ¨âì ­¥ª®â®àë¥ ¯à¥¤ã¯à¥¤¨â¥«ì­ë¥ á®®¡é¥­¨ï.");
  412.                 skip(1);
  413.         }
  414. #endif
  415.  
  416.         if (ship==IHF) ship= 0;
  417.         else if (ship == IHE) ship = IHF;
  418.         alive = 0;
  419.         if (d.remkl != 0) {
  420.                 double goodies = d.remres/inresor;
  421.                 double baddies = (d.remkl + 2.0*d.remcom)/(inkling+2.0*incom);
  422.                 if (goodies/baddies >= 1.0+0.5*Rand()) {
  423. /*                      prout("As a result of your actions, a treaty with the Klingon");
  424.                         prout("Empire has been signed. The terms of the treaty are");
  425.  */                     prout("‚ १ã«ìâ â¥ ¢ è¨å ¤¥á⢨©, ¡ë«® ¯®¤¯¨á ­® ¬¨à­®¥");
  426.                         prout("ᮣ« è¥­¨¥ á ª«¨­£®­ ¬¨. “á«®¢¨ï ᮣ« è¥­¨ï ¡ë«¨");
  427.                         if (goodies/baddies >= 3.0+Rand()) {
  428. /*                              prout("favorable to the Federation.");
  429.                                 skip(1);
  430.                                 prout("Congratulations!");
  431.  */                             prout("¢ë£®¤­ë¬¨ ¤«ï ”¥¤¥à æ¨¨.");
  432.                                 skip(1);
  433.                                 prout("®§¤à ¢«ï¥¬!");
  434.                         }
  435.                         else
  436.                                 /* prout("highly unfavorable to the Federation."); */
  437.                                 prout("¨áª«îç¨â¥«ì­® ­¥¢ë£®¤­ë¬¨ ¤«ï ”¥¤¥à æ¨¨.");
  438.                 }
  439.                 else
  440.                         /* prout("The Federation will be destroyed."); */
  441.                         prout("”¥¤¥à æ¨ï ¡ã¤¥â ã­¨ç⮦¥­ .");
  442.         }
  443.         else {
  444. /*              prout("Since you took the last Klingon with you, you are a");
  445.                 prout("martyr and a hero. Someday maybe they'll erect a");
  446.                 prout("statue in your memory. Rest in peace, and try not");
  447.                 prout("to think about pigeons.");
  448.  */             prout("‚ë § ¡à «¨ ¯®á«¥¤­¥£® ª«¨­£®­  á ᮡ®© ­  â®â ᢥâ.");
  449.                 prout("‚ è  £¥à®¨ç¥áª ï ¦¥à⢠ ­¥ ¡ã¤¥â § ¡ëâ  ¨, ¢®§¬®¦­®, ¯®â®¬ª¨ ¤ ¦¥");
  450.                 prout("¢®§¢¥¤ãâ áâ âî ¢ ‚ èã ç¥áâì. ®ª®©â¥áì á ¬¨à®¬ ¨ áâ à ©â¥áì");
  451.                 prout("­¥ ¤ã¬ âì ® £®«ã¡ïå.");
  452.                 gamewon = 1;
  453.         }
  454.         score(0);
  455. }
  456.  
  457. void score(int inGame) {
  458.         double timused = d.date - indate;
  459.     int ithperd, iwon, klship;
  460.     int dnromrem = d.nromrem; // Leave global value alone
  461.  
  462.     if (!inGame) pause(0);
  463.  
  464.         iskill = skill;
  465.         if ((timused == 0 || d.remkl != 0) && timused < 5.0) timused = 5.0;
  466.         perdate = (d.killc + d.killk + d.nsckill)/timused;
  467.         ithperd = 500*perdate + 0.5;
  468.         iwon = 0;
  469.         if (gamewon) iwon = 100*skill;
  470.         if (ship == IHE) klship = 0;
  471.         else if (ship == IHF) klship = 1;
  472.         else klship = 2;
  473.         if (gamewon == 0 || inGame) dnromrem = 0; // None captured if no win or if still in the game
  474.         iscore = 10*d.killk + 50*d.killc + ithperd + iwon
  475.                          - 100*d.basekl - 100*klship - 45*nhelp -5*d.starkl - casual
  476.                  + 20*d.nromkl + 200*d.nsckill - 10*d.nplankl + dnromrem;
  477. #ifdef CLOAKING
  478.         iscore -= 100*ncviol;
  479. #endif
  480. #ifdef CAPTURE
  481.         iscore += 3*kcaptured;
  482. #endif
  483.         if (alive == 0) iscore -= 200;
  484.         skip(2);
  485. /*     if (inGame) prout("Your score so far --");
  486.     else prout("Your score --");
  487.  */    if (inGame) prout("  ¤ ­­ë© ¬®¬¥­â ¢ è¨ ¡ ««ë --");
  488.     else prout("‚ è¨ ¡ ««ë --");
  489.         if (d.nromkl)
  490.          /* printf(d.nromkl> 1 ? "%6d Romulan ships destroyed            %5d\n" : "%6d Romulan ship destroyed             %5d\n", */
  491.                 printf(d.nromkl> 1 ? "%6d ஬㫠­áª¨å ª®à ¡«¥© ã­¨ç⮦¥­®        %5d\n" : "%6d ஬㫠­áª¨å ª®à ¡«¥© ã­¨ç⮦¥­®             %5d\n",
  492.                            d.nromkl, 20*d.nromkl);
  493.         if (dnromrem)
  494.          /* printf(dnromrem > 1 ? "%6d Romulan ships captured             %5d\n" : "%6d Romulan ship captured              %5d\n", */
  495.                 printf(dnromrem > 1 ? "%6d ஬㫠­áª¨å ª®à ¡«¥© § å¢ ç¥­®         %5d\n" : "%6d ஬㫠­áª¨å ª®à ¡«¥© § å¢ ç¥­®              %5d\n",
  496.                            dnromrem, dnromrem);
  497.         if (d.killk)
  498.          /* printf(d.killk > 1 ? "%6d ordinary Klingon ships destroyed   %5d\n" : "%6d ordinary Klingon ship destroyed    %5d\n", */
  499.                 printf(d.killk > 1 ? "%6d ¡®¥¢ëå ª®à ¡«¥© ª«¨­£®­®¢ ã­¨ç⮦¥­®    %5d\n" : "%6d ¡®¥¢ëå ª®à ¡«¥© ª«¨­£®­®¢ ã­¨ç⮦¥­®    %5d\n",
  500.                            d.killk,  10*d.killk);
  501.         if (d.killc)
  502.                 /* printf(d.killc > 1 ? "%6d Klingon Commander ships destroyed  %5d\n" : "%6d Klingon Commander ship destroyed   %5d\n", */
  503.                 printf(d.killc > 1 ? "%6d ª«¨­£®­áª¨å Š®¬ ­¤¥à®¢ ã­¨ç⮦¥­®       %5d\n" : "%6d ª«¨­£®­áª¨å Š®¬ ­¤¥à®¢ ã­¨ç⮦¥­®   %5d\n",
  504.                            d.killc, 50*d.killc);
  505.         if (d.nsckill)
  506.      /* printf("%6d Super-Commander ship destroyed     %5d\n", */
  507.                 printf("%6d ‘ã¯¥àŠ®¬¬ ­¤¥à®¢ ã­¨ç⮦¥­®        %5d\n",
  508.                            d.nsckill, 200*d.nsckill);
  509.         if (ithperd)
  510.      /* printf("%6.2f Klingons per stardate              %5d\n", */
  511.                 printf("%6.2f ª«¨­£®­®¢ ¢ á।­¥¬ §  ¤ âã       %5d\n",
  512.                            perdate, ithperd);
  513. #ifdef CAPTURE
  514.         if (kcaptured)
  515.                 /* printf(kcaptured > 1 ? "%6d Klingons captured                  %5d\n" : "%6d Klingon captured                   %5d\n", */
  516.                 printf(kcaptured > 1 ? "%6d ª«¨­£®­®¢ § å¢ ç¥­®                  %5d\n" : "%6d ª«¨­£®­®¢ § å¢ ç¥­®                   %5d\n",
  517.                         kcaptured, 3*kcaptured);
  518. #endif
  519.         if (d.starkl)
  520.                 /* printf(d.starkl > 1 ? "%6d stars destroyed by your action     %5d\n" : "%6d star destroyed by your action      %5d\n", */
  521.                 printf(d.starkl > 1 ? "%6d §¢¥§¤ ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ     %5d\n" : "%6d §¢¥§¤ ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ      %5d\n",
  522.                            d.starkl, -5*d.starkl);
  523.         if (d.nplankl)
  524.                 /* printf(d.nplankl > 1 ? "%6d planets destroyed by your action   %5d\n" : "%6d planet destroyed by your action    %5d\n", */
  525.                 printf(d.nplankl > 1 ? "%6d ¯« ­¥â ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ    %5d\n" : "%6d ¯« ­¥â ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ    %5d\n",
  526.                            d.nplankl, -10*d.nplankl);
  527.         if (d.basekl)
  528.                 printf(d.basekl > 1 ? "%6d á⠭権 ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ     %5d\n" : "%6d á⠭権 ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ      %5d\n",
  529.                            d.basekl, -100*d.basekl);
  530.         if (nhelp)
  531.                 printf(nhelp > 1 ? "%6d ¢ë§®¢®¢ ® ¯®¬®é¨ á® á⠭権       %5d\n" : "%6d ¢ë§®¢®¢ ® ¯®¬®é¨ á® á⠭権        %5d\n",
  532.                            nhelp, -45*nhelp);
  533.         if (casual)
  534.                 printf(casual > 1 ? "%6d ¯®â¥àì á।¨ íª¨¯ ¦                 %5d\n" : "%6d ¯®â¥àì á।¨ íª¨¯ ¦                   %5d\n",
  535.                            casual, -casual);
  536.         if (klship)
  537.                 printf(klship > 1 ? "%6d ª®à ¡«¥© ¯®â¥àï­® ¨«¨ ã­¨ç⮦¥­®            %5d\n" : "%6d ª®à ¡«¥© ¯®â¥àï­® ¨«¨ ã­¨ç⮦¥­®             %5d\n",
  538.                            klship, -100*klship);
  539. #ifdef CLOAKING
  540.         if (ncviol>0)
  541.                 printf(ncviol > 1 ? "%6d ­ àã襭¨© €«£¥à®­áª®£® ᮣ« è¥­¨ï       %5d\n" : "%6d ­ àã襭¨© €«£¥à®­áª®£® ᮣ« è¥­¨ï        %5d\n",
  542.                        ncviol, -100*ncviol);
  543. #endif
  544.         if (alive==0)
  545.                 /* prout("Penalty for getting yourself killed        -200"); */
  546.                 prout("˜âà ä §  â®, çâ® ‚ë ¤ «¨ ᥡï 㡨âì        -200");
  547.         if (gamewon) {
  548.                 skip(1);
  549.                 /* proutn("Bonus for winning "); */
  550.                 proutn("®­ãá §  ¯®¡¥¤ã ");
  551.                 switch (skill) {
  552. /*                      case SNOVICE: proutn("Novice game  "); break;
  553.                         case SFAIR: proutn("Fair game    "); break;
  554.                         case SGOOD: proutn("Good game    "); break;
  555.                         case SEXPERT: proutn("Expert game  "); break;
  556.                         case SEMERITUS: proutn("Emeritus game"); break;
  557.  */                     case SNOVICE: proutn("ˆ£à  ®¢¨çª   "); break;
  558.                         case SFAIR: proutn("ˆ£à  ‘ « £¨    "); break;
  559.                         case SGOOD: proutn("ˆ£à  Žâ«¨ç­¨ª     "); break;
  560.                         case SEXPERT: proutn("ˆ£à  ªá¯¥àâ   "); break;
  561.                         case SEMERITUS: proutn("ˆ£à  ¬¥à¨âãá "); break;
  562.                 }
  563.                 printf("           %5d\n", iwon);
  564.         }
  565.         skip(2);
  566.     printf("ˆâ®£®¢ë© ¡ ««                               %5d\n", iscore);/*TOTAL SCORE*/
  567.     /* if (inGame && skill < SGOOD) printf("REMEMBER--The score doesn't really matter until the mission is accomplished!\n"); */
  568.     if (inGame && skill < SGOOD) printf("ŽŒˆ’…-- ««ë ­¨ç¥£® ­¥ §­ ç â, ¯®ª  ¬¨áá¨ï ­¥ ®ª®­ç¥­ !\n");
  569. }
  570.  
  571. void plaque(void) {
  572.         FILE *fp=NULL;
  573. #ifndef KOS32  
  574.         time_t t;
  575. #else
  576.         int kos_date, kos_time;
  577. #endif
  578.         char *timestring;
  579.         int nskip;
  580.         char winner[128];
  581.         skip(2);
  582.        
  583.         while (fp == NULL) {
  584.                 /* printf("File or device name for your plaque:"); */
  585.                 printf("‚¢¥¤¨â¥ ¨¬ï ä ©«  ¤«ï ¢ è¨å ¤®á⨦¥­¨©:");
  586. #ifndef KOS32          
  587.                 fgets(winner, 128, stdin);
  588. #else
  589.                 gets(winner);
  590. #endif         
  591.                 winner[strlen(winner)-1] = '\0';
  592.                 fp = fopen(winner, "w");
  593.                 if (fp==NULL) {
  594.                         printf("¥¢¥à­®¥ ¨¬ï.\n");/*Invalid name*/
  595.                 }
  596.         }
  597.  
  598.         /* printf("Enter name to go on plaque (up to 30 characters):"); */
  599.         printf("‚¢¥¤¨â¥ ¨¬ï ¤«ï ¯ ¬ïâ­®£® §­ çª  (¬ ªá¨¬ã¬ 30 ᨬ¢®«®¢):");
  600. #ifndef KOS32          
  601.                 fgets(winner, 128, stdin);
  602. #else
  603.                 gets(winner);
  604. #endif         
  605.         winner[strlen(winner)-1] = '\0';
  606.         winner[30] = '\0';
  607.         nskip = 64 - strlen(winner)/2;
  608.  
  609.         fprintf(fp,"\n\n\n\n");
  610.         /* --------DRAW ENTERPRISE PICTURE. */
  611.         fprintf(fp, "                                                                EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n" );
  612.         fprintf(fp, "                                      EEE                      E  : :                                         :  E\n" );
  613.         fprintf(fp, "                                    EE   EEE                   E  : :                   NCC-1701              :  E\n");
  614.         fprintf(fp, "                    EEEEEEEEEEEEEEEE        EEEEEEEEEEEEEEE    E  : :                                         : E\n");
  615.         fprintf(fp, "                     E                                     E    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n");
  616.         fprintf(fp, "                      EEEEEEEEE               EEEEEEEEEEEEE                 E  E\n");
  617.         fprintf(fp, "                               EEEEEEE   EEEEE    E          E              E  E\n");
  618.         fprintf(fp, "                                      EEE           E          E            E  E\n");
  619.         fprintf(fp, "                                                       E         E          E  E\n");
  620.         fprintf(fp, "                                                         EEEEEEEEEEEEE      E  E\n");
  621.         fprintf(fp, "                                                      EEE :           EEEEEEE  EEEEEEEE\n");
  622.         fprintf(fp, "                                                    :E    :                 EEEE       E\n");
  623.         fprintf(fp, "                                                   .-E   -:-----                       E\n");
  624.         fprintf(fp, "                                                    :E    :                            E\n");
  625.         fprintf(fp, "                                                      EE  :                    EEEEEEEE\n");
  626.         fprintf(fp, "                                                       EEEEEEEEEEEEEEEEEEEEEEE\n");
  627.         fprintf(fp, "\n\n\n");
  628.         fprintf(fp, "                                                       U. S. S. ENTERPRISE\n");
  629.         fprintf(fp, "\n\n\n\n");
  630.         /* fprintf(fp, "                                  For demonstrating outstanding ability as a starship captain\n"); */
  631.         fprintf(fp, "                                  ‡  ¯à®ï¢«¥­­ë¥ ¢ë¤ î騥áï ¤®á⨦¥­¨ï ¢ ¤®«¦­®á⨠ª ¯¨â ­  ª®á¬¨ç¥áª®£® ª®à ¡«ï\n");
  632.         fprintf(fp, "\n");
  633.         /* fprintf(fp, "                                                Starfleet Command bestows to you\n"); */
  634.         fprintf(fp, "                                                ‡¢¥§¤­®¥ Š®¬ ­¤®¢ ­¨¥ ¯à¥¤áâ ¢«ï¥â ‚ á\n");
  635.         fprintf(fp, "\n");
  636.         fprintf(fp,"%*s%s\n\n", nskip, "", winner);
  637. /*      fprintf(fp, "                                                           the rank of\n\n");
  638.         fprintf(fp, "                                                       \"Commodore Emeritus\"\n\n");
  639.  */     fprintf(fp, "                                                           ª §¢ ­¨î\n\n");
  640.         fprintf(fp, "                                                       \"Š®¬ ­¤®à ¬¥à¨âãá\"\n\n");
  641.         fprintf(fp, "                                                          ");
  642.         switch (iskill) {
  643. /*              case SEXPERT: fprintf(fp," Expert level\n\n"); break;
  644.                 case SEMERITUS: fprintf(fp,"Emeritus level\n\n"); break;
  645.                 default: fprintf(fp," Cheat level\n\n"); break;
  646.  */             case SEXPERT: fprintf(fp," ã஢¥­ì ªá¯¥àâ \n\n"); break;
  647.                 case SEMERITUS: fprintf(fp,"ã஢¥­ì ¬¥à¨âãá \n\n"); break;
  648.                 default: fprintf(fp," ®¡ëç­ë© ç¨â¥à᪨© ã஢¥­ì\n\n"); break;
  649.         }
  650. #ifndef KOS32  
  651.         t = time(NULL);
  652.         timestring = ctime(&t);
  653.         /* fprintf(fp, "                                                 This day of %.6s %.4s, %.8s\n\n", */
  654.         fprintf(fp, "                                                 â®â ¤¥­ì %.6s %.4s, %.8s\n\n",
  655.                         timestring+4, timestring+20, timestring+11);
  656. #else
  657.         kos_date = _ksys_get_date();
  658.         kos_time = _ksys_get_system_clock();
  659.         /* fprintf(fp, "                                                 This day of %02i/%02i/%02i %02i:%02i:%02i\n\n", */
  660.         fprintf(fp, "                                                 â®â ¤¥­ì %02i/%02i/%02i %02i:%02i:%02i\n\n",
  661.                         kos_date >> 16, (kos_date & 0xFF00) >> 8, (kos_date & 0xFF) + 2000,
  662.                         kos_time & 0xFF, (kos_time & 0xFF00) >> 8, kos_time >> 16 );
  663. #endif
  664. /*      fprintf(fp,"                                                        Your score:  %d\n\n", iscore);
  665.         fprintf(fp,"                                                    Klingons per stardate:  %.2f\n", perdate);
  666.  */     fprintf(fp,"                                                        ‚ è ¡ ««:  %d\n\n", iscore);
  667.         fprintf(fp,"                                                    Š«¨­£®­®¢ ­  ¤ âã:  %.2f\n", perdate);
  668.         fclose(fp);
  669. }
  670.