kolibrios/programs/games/sstartrek/ru/finish.c
siemargl 3a4ccc4ac4 startrek rus version-help en, adapt for current tcc
git-svn-id: svn://kolibrios.org@7185 a494cfbc-eb01-0410-851d-a64ba20cac60
2018-03-12 20:53:49 +00:00

670 lines
27 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "sst.h"
#include <string.h>
#ifndef KOS32
#include <time.h>
#else
#include <kolibrisys.h>
#endif
void dstrct() {
/* Finish with a BANG! */
chew();
if (damage[DCOMPTR] != 0.0) {
/* prout("Computer damaged; cannot execute destruct sequence."); */
prout("Š®¬¯ìîâ¥à ¯®¢à¥¦¤¥­; <20>¥¢®§¬®¦­® § ¯ãáâ¨âì á ¬®ã­¨ç⮦¥­¨¥.");
return;
}
skip(1);
/* prouts("---WORKING---"); skip(1);
prout("SELF-DESTRUCT-SEQUENCE-ACTIVATED");
*/ prouts("---Ž†ˆ„€‰’…---"); skip(1);
prout("<EFBFBD><EFBFBD>Ž…„“<EFBFBD>€-€ŒŽ“<C5BD>ˆŽ†…<E280A0>ˆŸ-€Šˆˆ<E2809A>Ž<E2809A>");
prouts(" 10"); skip(1);
prouts(" 9"); skip(1);
prouts(" 8"); skip(1);
prouts(" 7"); skip(1);
prouts(" 6"); skip(1);
/* prout("ENTER-CORRECT-PASSWORD-TO-CONTINUE-");
prout("SELF-DESTRUCT-SEQUENCE-OTHERWISE-");
prout("SELF-DESTRUCT-SEQUENCE-WILL-BE-ABORTED");
*/ prout("‚‚…„ˆ’…-<2D><>ˆœ<E280B9>Ž-<2D><EFBFBD>Žœ-„‹Ÿ-<2D><>Ž„Ž†…<E280A0>ˆŸ-");
prout("‡€<EFBFBD>Š€-<2D><>Ž…„“<E2809E>-€ŒŽ“<C5BD>ˆŽ†…<E280A0>ˆŸ-ˆ<>€—…-");
prout("<EFBFBD><EFBFBD>Ž…„“<EFBFBD>€-€ŒŽ“<C5BD>ˆŽ†…<E280A0>ˆŸ-<2D>“„…-€<>Ž<EFBFBD>ˆ<E28099>Ž<E2809A>");
scan();
chew();
if (strcmp(passwd, citem) != 0) {
/* prouts("PASSWORD-REJECTED;"); skip(1);
prout("CONTINUITY-EFFECTED");
*/ prouts("<EFBFBD><EFBFBD>Žœ-<2D><E2809A><EFBFBD>;"); skip(1);
prout("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Žœ-<2D>””…Šˆ<CB86>");
skip(1);
return;
}
prouts("<EFBFBD><EFBFBD>Žœ-<2D><>ˆ<EFBFBD>Ÿ"); skip(1); /*PASSWORD-ACCEPTED*/
prouts(" 5"); skip(1);
prouts(" 4"); skip(1);
prouts(" 3"); skip(1);
prouts(" 2"); skip(1);
prouts(" 1"); skip(1);
if (Rand() < 0.15) {
prouts("<EFBFBD><EFBFBD>Ž™€‰-†…‘’ŽŠˆ‰-Œˆ<C592>"); /*GOODBYE-CRUEL-WORLD*/
skip(1);
}
skip(2);
kaboom();
}
void kaboom(void) {
stars();
if (ship==IHE) prouts("***");
prouts("********* <20>­âய¨ï ");/*Entropy of*/
crmshp();
prouts(" ¬ ªá¨¬¨§¨à®¢ ­  *********");/*maximized*/
skip(1);
stars();
skip(1);
if (nenhere != 0) {
double whammo = 25.0 * energy;
int l=1;
while (l <= nenhere) {
if (kpower[l]*kdist[l] <= whammo)
deadkl(kx[l],ky[l], quad[kx[l]][ky[l]], kx[l], ky[l]);
l++;
}
}
finish(FDILITHIUM);
}
void finish(FINTYPE ifin) {
int igotit = 0;
alldone = 1;
skip(3);
/* printf("It is stardate %.1f .\n\n", d.date); */
printf("‡¢¥§¤­®¥ ¢à¥¬ï %.1f .\n\n", d.date);
switch (ifin) {
case FWON: // Game has been won
if (d.nromrem != 0)
/* printf("The remaining %d Romulans surrender to Starfleet Command.\n", */
printf("<EFBFBD>®á«¥¤­¨¥ %d ஬㫠­æ¥¢ ᤠ«¨áì ­  ¬¨«®áâì ‡¢¥§¤­®£® Š®¬ ­¤®¢ ­¨ï.\n",
d.nromrem);
/* prout("You have smashed the Klingon invasion fleet and saved");
prout("the Federation.");
*/ prout("‚ë á«®¬ «¨ åॡ¥â ¢â®à¦¥­¨î ª«¨­£®­®¢ ¨ ᯠ᫨ ”¥¤¥à æ¨î.");
#ifdef CAPTURE
if (alive && brigcapacity-brigfree > 0) { // captured Klingon crew will get transfered to starbase
kcaptured += brigcapacity-brigfree;
/* printf("The %d captured Klingons are transferred to Star Fleet Command.\n", */
printf("‡ å¢ ç¥­­ë¥ ¢ ¯«¥­ %d ª«¨­£®­®¢ ¯¥à¥¤ ­ë ‡¢¥§¤­®¬ã Š®¬ ­¤®¢ ­¨î.\n",
brigcapacity-brigfree);
}
#endif
gamewon=1;
if (alive) {
double badpt;
badpt = 5.*d.starkl + casual + 10.*d.nplankl +
45.*nhelp+100.*d.basekl;
if (ship == IHF) badpt += 100.0;
else if (ship == 0) badpt += 200.0;
if (badpt < 100.0) badpt = 0.0; // Close enough!
if (d.date-indate < 5.0 ||
// killsPerDate >= RateMax
(d.killk+d.killc+d.nsckill)/(d.date-indate) >=
0.1*skill*(skill+1.0) + 0.1 + 0.008*badpt) {
skip(1);
/* prout("In fact, you have done so well that Starfleet Command"); */
prout("‚ë ­¥¯«®å® á¯à ¢¨«¨áì á § ¤ ­¨¥¬, ¨ ‡¢¥§¤­®¥ Š®¬ ­¤®¢ ­¨¥");
switch (skill) {
case SNOVICE:
/* prout("promotes you one step in rank from \"Novice\" to \"Fair\"."); */
prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ á \"<EFBFBD>®¢¨çª \" ¤® \"‘ « £¨\".");
break;
case SFAIR:
/* prout("promotes you one step in rank from \"Fair\" to \"Good\"."); */
prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ á \"Ž¡­ ¤¥¦¨¢ î饣®\" ¤® \"Žâ«¨ç­¨ª \".");
break;
case SGOOD:
/* prout("promotes you one step in rank from \"Good\" to \"Expert\"."); */
prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ á \"Žâ«¨ç­¨ª \" ¤® \"<EFBFBD>ªá¯¥àâ \".");
break;
case SEXPERT:
/* prout("promotes you to Commodore Emeritus."); */
prout("¯®¢ë蠥⠂ á ¢ §¢ ­¨¨ ¤® Š®¬¬ ­¤¥à  <20>¬¥à¨âãá.");
skip(1);
/* prout("Now that you think you're really good, try playing");
prout("the \"Emeritus\" game. It will splatter your ego.");
*/ prout("’¥¯¥àì, ¥á«¨ ‚ë áç¨â ¥â¥ ᥡ¥ ॠ«ì­® ªàãâë¬, ¯®¯à®¡ã©â¥");
prout("ã஢¥­ì á«®¦­®á⨠\"<EFBFBD>¬¥à¨âãá\". <20>â® ãâ¨å®¬¨à¨â ¢ è¥ í£®.");
break;
case SEMERITUS:
skip(1);
/* prout("Computer- ERROR-ERROR-ERROR-ERROR");
skip(1);
prout(" YOUR-SKILL-HAS-EXCEEDED-THE-CAPACITY-OF-THIS-PROGRAM");
prout(" THIS-PROGRAM-MUST-SURVIVE");
prout(" THIS-PROGRAM-MUST-SURVIVE");
prout(" THIS-PROGRAM-MUST-SURVIVE");
prout(" THIS-PROGRAM-MUST?- MUST ? - SUR? ? -? VI");
skip(1);
prout("Now you can retire and write your own Star Trek game!");
*/ prout("Š®¬¯ìîâ¥à- Ž˜ˆ<CB9C>Š€-Ž˜ˆ<CB9C>Š€-Ž˜ˆ<CB9C>Š€-Ž˜ˆ<CB9C>Š€");
skip(1);
prout(" ‚€˜-Ž<>-<2D><>˜€…-Ž‡ŒŽ†<C5BD>Žˆ-<2D>Ž‰-<2D><>Žƒ<C5BD>€ŒŒ");
prout(" <20><>Žƒ<C5BD>€ŒŒ€-„Ž<E280B9>€-‚›†ˆ’œ");
prout(" <20><>Žƒ<C5BD>€ŒŒ€-„Ž<E280B9>€-‚›†ˆ’œ");
prout(" <20><>Žƒ<C5BD>€ŒŒ€-„Ž<E280B9>€-‚›†ˆ’œ");
prout(" <20><>Žƒ<C5BD>€ŒŒ€-„Ž<E280B9>€-?- „Ž<E280B9>€ ? - ‚›†? ? -? ˆ’œ");
skip(1);
prout("’¥¯¥àì ¬®¦¥â¥ ᮠᯮª®©­®© ¤ã让 ã©â¨ ¢ ®âá ¢ªã ¨ ­ ¯¨á âì ᮡá⢥­­ãî ¨£àã ‘â à ’४!");
skip(1);
break;
}
if (skill > SGOOD) {
if (thawed
#ifdef DEBUG
&& !idebug
#endif
)
/* prout("You cannot get a citation, so..."); */
prout("‚ á ­¥ § ¯¨èãâ ¢  ­­ «ë, â ª çâ®...");
else {
/* prout("Do you want your Commodore Emeritus Citation printed?");
proutn("(You need a 132 column printer.)");
*/ prout("‚ë å®â¨â¥ ­ ¯¥ç â âì ᯨ᮪ ᢮¨å ¢ë᪠§ë¢ ­¨©, Š®¬ ­¤¥à <20>¬¥à¨âãá?");
proutn("(‚ ¬ ¯®âॡã¥âáï 132-ᨬ¢®«ì­ë© ¯à¨­â¥à.)");
chew();
if (ja()) {
igotit = 1;
}
}
}
}
// Only grant long life if alive (original didn't!)
skip(1);
/* prout("LIVE LONG AND PROSPER."); */
prout("„Ž‹ƒŽ‰ ‚€Œ †ˆ<CB86>ˆ ˆ <20><>Ž<E28099>ˆŸ.");
}
score(0);
if (igotit != 0) plaque();
return;
case FDEPLETE: // Federation Resources Depleted
/* prout("Your time has run out and the Federation has been");
prout("conquered. Your starship is now Klingon property,");
prout("and you are put on trial as a war criminal. On the");
proutn("basis of your record, you are ");
*/ prout("‚ è¥ ¢à¥¬ï ¢ëè«® ¨ ”¥¤¥à æ¨ï ¡ë«  § å¢ ç¥­ .");
prout("‚ è ª®à ¡«ì ⥯¥àì âà®ä¥© ª«¨­£®­®¢,");
prout("¨ ‚ á ¡ã¤ãâ á㤨âì ª ª ¢®¥­­®£® ¯à¥áâ㯭¨ª .");
proutn("<EFBFBD> áᬮâॢ ¢ è¨ ¤¥©á⢨ï, ‚ë ");
if (d.remkl*3.0 > inkling) {
prout("®¯à ¢¤ ­ë.");/*aquitted*/
skip(1);
prout("„Ž‹ƒŽ‰ ‚€Œ †ˆ<CB86>ˆ ˆ <20><>Ž<E28099>ˆŸ.");/*LIVE LONG AND PROSPER*/
}
else {
/* prout("found guilty and");
prout("sentenced to death by slow torture.");
*/ prout("¯à¨§­ ­ë ¢¨­®¢­ë¬");
prout("¨ ¯à¨£®¢®à¥­ë ª ᬥà⨠¯®¤ ¯ë⪠¬¨.");
alive = 0;
}
score(0);
return;
case FLIFESUP:
/* prout("Your life support reserves have run out, and");
prout("you die of thirst, starvation, and asphyxiation.");
prout("Your starship is a derelict in space.");
*/ prout("“ ¢ á ª®­ç¨«¨áì § ¯ áë ¢®§¤ãå  ¨ ¯¨é¨ ¨");
prout("¢ë á ª®¬ ­¤®© 㬥૨ ®â £®«®¤  ¨ ¦ ¦¤ë, § ¤ëå ïáì.");
prout("‚ è ¬¥àâ¢ë© ª®à ¡«ì ¤à¥©äã¥â ¢ ª®á¬®á¥.");
break;
case FNRG:
/* prout("Your energy supply is exhausted.");
skip(1);
prout("Your starship is a derelict in space.");
*/ prout("“ ª®à ¡«ï ª®­ç¨«¨áì § ¯ áë í­¥à£¨¨.");
skip(1);
prout("‚ è ¬¥àâ¢ë© ª®à ¡«ì ¤à¥©äã¥â ¢ ª®á¬®á¥.");
break;
case FBATTLE:
/* proutn("The ");
crmshp();
prout("has been destroyed in battle.");
skip(1);
prout("Dulce et decorum est pro patria mori.");
*/ proutn("‚ è ª®à ¡«ì ");
crmshp();
prout("¡ë« ã­¨ç⮦¥­ ¢ ¡®î.");
skip(1);
prout("Dulce et decorum est pro patria mori.");
prout("/‘« ¤ª  ¨ ¯à¥ªà á­  §  த¨­ã ᬥàâì./");
break;
case FNEG3:
/* prout("You have made three attempts to cross the negative energy");
prout("barrier which surrounds the galaxy.");
skip(1);
prout("Your navigation is abominable.");
*/ prout("‚ë ᤥ« «¨ âਠ¯®¯ë⪨ ¯¥à¥á¥çì ¡ àì¥à ®âà¨æ â¥«ì­®© í­¥à£¨¨");
prout(" ®ªà㦠î騩 £ « ªâ¨ªã.");
skip(1);
prout("‚ë 㦠á­ë© ­ ¢¨£ â®à.");
score(0);
return;
case FNOVA:
/* prout("Your starship has been destroyed by a nova.");
prout("That was a great shot.");
*/ prout("‚ è ª®à ¡«ì ¡ë« ã­¨ç⮦¥­ ­®¢®© §¢¥§¤®©.");
prout("•®à®è ï ¯®¯ë⪠.");
skip(1);
break;
case FSNOVAED:
/* proutn("The ");
crmshp();
prout(" has been fried by a supernova.");
prout("...Not even cinders remain...");
*/ proutn("‚ è ª®à ¡«ì ");
crmshp();
prout(" ¡ë« ã­¨ç⮦¥­ ᢥàå­®¢®©.");
prout("...ˆ ­¥ ®áâ «®áì ¤ ¦¥ ¯¥¯« ...");
break;
case FABANDN:
/* prout("You have been captured by the Klingons. If you still");
prout("had a starbase to be returned to, you would have been");
prout("repatriated and given another chance. Since you have");
prout("no starbases, you will be mercilessly tortured to death.");
*/ prout("‚ë ¡ë«¨ § å¢ ç¥­ë ª«¨­£®­ ¬¨. …᫨ ¡ë ã ¢ á ");
prout("®áâ « áì å®âì ®¤­  áâ ­æ¨ï ¤«ï ¢®§¢à é¥­¨ï, ¢ë ¬®£«¨ ¡ë");
prout("¯®«ãç¨âì ¢â®à®© è ­á. <20>® ¯®áª®«ìªã á⠭権 ¡®«ìè¥ ­¥â,");
prout("¢ á ¡¥á¯®é ¤­® § ¯ëâ îâ ¤® ᬥàâ¨.");
break;
case FDILITHIUM:
/* prout("Your starship is now an expanding cloud of subatomic particles"); */
prout("‚ è ª®à ¡«ì ¯à¥¢à â¨«áï ¢ ®¡« ª® á㡠⮬­ëå ç áâ¨æ");
break;
case FMATERIALIZE:
/* prout("Starbase was unable to re-materialize your starship.");
prout("Sic transit gloria muntdi");
*/ prout("‘â ­æ¨ï ­¥ ᬮ£«  ®¡à â­® ¬ â¥à¨ «¨§®¢ âì ¢ è ª®à ¡«ì.");
prout("Sic transit gloria muntdi");
prout("/’ ª ¯à®å®¤¨â ¬¨à᪠ï á« ¢ /");
break;
case FPHASER:
/* proutn("The ");
crmshp();
prout(" has been cremated by its own phasers.");
*/ proutn("‚ è ª®à ¡«ì ");
crmshp();
prout(" á ¬®ã­¨ç⮦¨«áï ®£­¥¬ ᮡá⢥­­ëå ä §¥à®¢.");
break;
case FLOST:
/* prout("You and your landing party have been");
prout("converted to energy, dissipating through space.");
*/ prout("‚ë ¨ £à㯯  ¢ëá ¤ª¨ ");
prout("¯à¥¢à â¨«¨áì ¢ ç¨áâãî í­¥à£¨î, à á¯ë«¥­­ãî ¢ ª®á¬®á¥.");
break;
case FMINING:
/* prout("You are left with your landing party on");
prout("a wild jungle planet inhabited by primitive cannibals.");
skip(1);
prout("They are very fond of \"Captain Kirk\" soup.");
skip(1);
proutn("Without your leadership, the ");
crmshp();
prout(" is destroyed.");
*/ prout("‚ë ®áâ «¨áì ¢¬¥áâ¥ á £à㯯®© ¢ëá ¤ª¨");
prout("­  ¤¨ª®© ¯« ­¥â¥, ­ á¥«¥­­®© ¤®¨áâ®à¨ç¥áª¨¬¨ ª ­­¨¡ « ¬¨.");
skip(1);
prout("Ž­¨ ®ç¥­ì «î¡ïâ á㯠\"Š ¯¨â ­ Š¨àª\".");
skip(1);
proutn("<EFBFBD>¥§ ‚ è¥£® ª®¬ ­¤®¢ ­¨ï, ª®à ¡«ì ");
crmshp();
prout(" ¡ë« ã­¨ç⮦¥­.");
break;
case FDPLANET:
/* prout("You and your mining party perish.");
skip(1);
prout("That was a great shot.");
*/ prout("‚ë ¡¥áá«¥¤­® ¯à®¯ «¨ ¢¬¥á⥠á è åâ¥à ¬¨.");
skip(1);
prout("<EFBFBD>â® ¡ë«  å®à®è ï ¯®¯ë⪠.");
skip(1);
break;
case FSSC:
/* prout("The Galileo is instantly annihilated by the supernova."); */
prout("ƒ «¨«¥® ¡ë« ¬£­®¢¥­­®  ­­¨£¨«¨à®¢ ­ á㯥୮¢®©.");
// no break;
case FPNOVA:
/* prout("You and your mining party are atomized.");
skip(1);
proutn("Mr. Spock takes command of the ");
crmshp();
prout(" and");
prout("joins the Romulans, reigning terror on the Federation.");
*/ prout("‚ë á £à㯯®© è åâ¥à®¢ à á¯ «¨áì ­   â®¬ë.");
skip(1);
proutn("Œ¨áâ¥à ‘¯®ª ¯à¨­ï« ª®¬ ­¤®¢ ­¨¥ ");
crmshp();
prout(" ¨");
prout("¯à¨á®¥¤¨­¨«áï ª ஬㫠­æ ¬, á¥ï à §àã襭¨¥ ¨ â¥àà®à ¯® ¢á¥© ”¥¤¥à æ¨¨.");
break;
case FSTRACTOR:
/* prout("The shuttle craft Galileo is also caught,");
prout("and breaks up under the strain.");
skip(1);
prout("Your debris is scattered for millions of miles.");
proutn("Without your leadership, the ");
crmshp();
prout(" is destroyed.");
*/ prout("˜ ââ« ƒ «¨«¥® ¯®¯ « ¢ ¯®«¥ ¤¥©á⢨ï ᨫ®¢®£® «ãç ,");
prout("¨ ¡ë« à §®à¢ ­ ᨫ ¬¨ â⥭¨ï.");
skip(1);
prout("‚ è¨ ®¡«®¬ª¨ à áá¥ï­ë ­  ¬¨««¨®­ë ¬¨«ì.");
proutn("<EFBFBD>¥§ ‚ è¥£® ª®¬ ­¤®¢ ­¨ï, ª®à ¡«ì ");
crmshp();
prout(" ¡ë« ã­¨ç⮦¥­.");
break;
case FDRAY:
/* prout("The mutants attack and kill Spock.");
prout("Your ship is captured by Klingons, and");
prout("your crew is put on display in a Klingon zoo.");
*/ prout("Œãâ ­âë  â ª®¢ «¨ ¨ 㡨«¨ ‘¯®ª .");
prout("‚ è ª®à ¡«ì ¡ë« § å¢ ç¥­ ª«¨­£®­ ¬¨ ¨ ⥯¥àì");
prout("¢ è  ª®¬ ­¤  ¯à¥¤áâ ¢«¥­  ¢ ª«¨­£®­áª®¬ §®®¯ àª¥.");
break;
case FTRIBBLE:
/* prout("Tribbles consume all remaining water,");
prout("food, and oxygen on your ship.");
skip(1);
prout("You die of thirst, starvation, and asphyxiation.");
prout("Your starship is a derelict in space.");
*/ prout("’ਡ¡«ë ᮦࠫ¨ ¢áî ®áâ ¢èãîáï ¢®¤ã,");
prout("¥¤ã ¨ ª¨á«®à®¤ ­  ¢ è¥¬ ª®à ¡«¥.");
skip(1);
prout("‚ë á ª®¬ ­¤®© 㬥૨ ®â £®«®¤  ¨ ¦ ¦¤ë, § ¤ëå ïáì.");
prout("‚ è ¬¥àâ¢ë© ª®à ¡«ì ¤à¥©äã¥â ¢ ª®á¬®á¥.");
break;
case FHOLE:
/* prout("Your ship is drawn to the center of the black hole.");
prout("You are crushed into extremely dense matter.");
*/ prout("‚ á § âï­ã«® ¢ 業âà ç¥à­®© ¤ëàë.");
prout("‚ë ⥯¥àì ¨áª«îç¨â¥«ì­® ¬ «¥­ìª ï ¨ ᢥàåâ¢¥à¤ ï ¯ë«¨­ª .");
break;
#ifdef CLOAKING
case FCLOAK:
ncviol++;
/* prout("You have violated the Treaty of Algeron.");
prout("The Romulan Empire can never trust you again.");
*/ prout("‚ë ­ àã訫¨ €«£¥à®­áª®¥ ‘®£« è¥­¨¥.");
prout("<EFBFBD>®¬ã« ­áª ï ˆ¬¯¥à¨ï ­¨ª®£¤  ¡®«ìè¥ ­¥ ¯®¢¥à¨â ¢ ¬.");
break;
#endif
}
#ifdef CLOAKING
if (ifin!=FWON && ifin!=FCLOAK && iscloaked!=0) {
/* prout("Your ship was cloaked so your subspace radio did not receive anything.");
prout("You may have missed some warning messages.");
*/ prout("‚ è ª®à ¡«ì ¡ë« ­¥¢¨¤¨¬, â ª çâ® ¯®¤¯à®áâ࠭ᢥ­­®¥ à ¤¨® ­¥ à ¡®â «®.");
prout("‚ë ¬®£«¨ ¯à®¯ãáâ¨âì ­¥ª®â®àë¥ ¯à¥¤ã¯à¥¤¨â¥«ì­ë¥ á®®¡é¥­¨ï.");
skip(1);
}
#endif
if (ship==IHF) ship= 0;
else if (ship == IHE) ship = IHF;
alive = 0;
if (d.remkl != 0) {
double goodies = d.remres/inresor;
double baddies = (d.remkl + 2.0*d.remcom)/(inkling+2.0*incom);
if (goodies/baddies >= 1.0+0.5*Rand()) {
/* prout("As a result of your actions, a treaty with the Klingon");
prout("Empire has been signed. The terms of the treaty are");
*/ prout(" १ã«ìâ â¥ ¢ è¨å ¤¥á⢨©, ¡ë«® ¯®¤¯¨á ­® ¬¨à­®¥");
prout("ᮣ« è¥­¨¥ á ª«¨­£®­ ¬¨. “á«®¢¨ï ᮣ« è¥­¨ï ¡ë«¨");
if (goodies/baddies >= 3.0+Rand()) {
/* prout("favorable to the Federation.");
skip(1);
prout("Congratulations!");
*/ prout("¢ë£®¤­ë¬¨ ¤«ï ”¥¤¥à æ¨¨.");
skip(1);
prout("<EFBFBD>®§¤à ¢«ï¥¬!");
}
else
/* prout("highly unfavorable to the Federation."); */
prout("¨áª«îç¨â¥«ì­® ­¥¢ë£®¤­ë¬¨ ¤«ï ”¥¤¥à æ¨¨.");
}
else
/* prout("The Federation will be destroyed."); */
prout("”¥¤¥à æ¨ï ¡ã¤¥â ã­¨ç⮦¥­ .");
}
else {
/* prout("Since you took the last Klingon with you, you are a");
prout("martyr and a hero. Someday maybe they'll erect a");
prout("statue in your memory. Rest in peace, and try not");
prout("to think about pigeons.");
*/ prout("‚ë § ¡à «¨ ¯®á«¥¤­¥£® ª«¨­£®­  á ᮡ®© ­  â®â ᢥâ.");
prout("‚ è  £¥à®¨ç¥áª ï ¦¥à⢠ ­¥ ¡ã¤¥â § ¡ëâ  ¨, ¢®§¬®¦­®, ¯®â®¬ª¨ ¤ ¦¥");
prout("¢®§¢¥¤ãâ áâ âî ¢ ‚ èã ç¥áâì. <20>®ª®©â¥áì á ¬¨à®¬ ¨ áâ à ©â¥áì");
prout("­¥ ¤ã¬ âì ® £®«ã¡ïå.");
gamewon = 1;
}
score(0);
}
void score(int inGame) {
double timused = d.date - indate;
int ithperd, iwon, klship;
int dnromrem = d.nromrem; // Leave global value alone
if (!inGame) pause(0);
iskill = skill;
if ((timused == 0 || d.remkl != 0) && timused < 5.0) timused = 5.0;
perdate = (d.killc + d.killk + d.nsckill)/timused;
ithperd = 500*perdate + 0.5;
iwon = 0;
if (gamewon) iwon = 100*skill;
if (ship == IHE) klship = 0;
else if (ship == IHF) klship = 1;
else klship = 2;
if (gamewon == 0 || inGame) dnromrem = 0; // None captured if no win or if still in the game
iscore = 10*d.killk + 50*d.killc + ithperd + iwon
- 100*d.basekl - 100*klship - 45*nhelp -5*d.starkl - casual
+ 20*d.nromkl + 200*d.nsckill - 10*d.nplankl + dnromrem;
#ifdef CLOAKING
iscore -= 100*ncviol;
#endif
#ifdef CAPTURE
iscore += 3*kcaptured;
#endif
if (alive == 0) iscore -= 200;
skip(2);
/* if (inGame) prout("Your score so far --");
else prout("Your score --");
*/ if (inGame) prout("<EFBFBD>  ¤ ­­ë© ¬®¬¥­â ¢ è¨ ¡ ««ë --");
else prout("‚ è¨ ¡ ««ë --");
if (d.nromkl)
/* printf(d.nromkl> 1 ? "%6d Romulan ships destroyed %5d\n" : "%6d Romulan ship destroyed %5d\n", */
printf(d.nromkl> 1 ? "%6d ஬㫠­áª¨å ª®à ¡«¥© ã­¨ç⮦¥­® %5d\n" : "%6d ஬㫠­áª¨å ª®à ¡«¥© ã­¨ç⮦¥­® %5d\n",
d.nromkl, 20*d.nromkl);
if (dnromrem)
/* printf(dnromrem > 1 ? "%6d Romulan ships captured %5d\n" : "%6d Romulan ship captured %5d\n", */
printf(dnromrem > 1 ? "%6d ஬㫠­áª¨å ª®à ¡«¥© § å¢ ç¥­® %5d\n" : "%6d ஬㫠­áª¨å ª®à ¡«¥© § å¢ ç¥­® %5d\n",
dnromrem, dnromrem);
if (d.killk)
/* printf(d.killk > 1 ? "%6d ordinary Klingon ships destroyed %5d\n" : "%6d ordinary Klingon ship destroyed %5d\n", */
printf(d.killk > 1 ? "%6d ¡®¥¢ëå ª®à ¡«¥© ª«¨­£®­®¢ ã­¨ç⮦¥­® %5d\n" : "%6d ¡®¥¢ëå ª®à ¡«¥© ª«¨­£®­®¢ ã­¨ç⮦¥­® %5d\n",
d.killk, 10*d.killk);
if (d.killc)
/* printf(d.killc > 1 ? "%6d Klingon Commander ships destroyed %5d\n" : "%6d Klingon Commander ship destroyed %5d\n", */
printf(d.killc > 1 ? "%6d ª«¨­£®­áª¨å Š®¬ ­¤¥à®¢ ã­¨ç⮦¥­® %5d\n" : "%6d ª«¨­£®­áª¨å Š®¬ ­¤¥à®¢ ã­¨ç⮦¥­® %5d\n",
d.killc, 50*d.killc);
if (d.nsckill)
/* printf("%6d Super-Commander ship destroyed %5d\n", */
printf("%6d ‘ã¯¥àŠ®¬¬ ­¤¥à®¢ ã­¨ç⮦¥­® %5d\n",
d.nsckill, 200*d.nsckill);
if (ithperd)
/* printf("%6.2f Klingons per stardate %5d\n", */
printf("%6.2f ª«¨­£®­®¢ ¢ á।­¥¬ §  ¤ âã %5d\n",
perdate, ithperd);
#ifdef CAPTURE
if (kcaptured)
/* printf(kcaptured > 1 ? "%6d Klingons captured %5d\n" : "%6d Klingon captured %5d\n", */
printf(kcaptured > 1 ? "%6d ª«¨­£®­®¢ § å¢ ç¥­® %5d\n" : "%6d ª«¨­£®­®¢ § å¢ ç¥­® %5d\n",
kcaptured, 3*kcaptured);
#endif
if (d.starkl)
/* printf(d.starkl > 1 ? "%6d stars destroyed by your action %5d\n" : "%6d star destroyed by your action %5d\n", */
printf(d.starkl > 1 ? "%6d §¢¥§¤ ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ %5d\n" : "%6d §¢¥§¤ ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ %5d\n",
d.starkl, -5*d.starkl);
if (d.nplankl)
/* printf(d.nplankl > 1 ? "%6d planets destroyed by your action %5d\n" : "%6d planet destroyed by your action %5d\n", */
printf(d.nplankl > 1 ? "%6d ¯« ­¥â ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ %5d\n" : "%6d ¯« ­¥â ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ %5d\n",
d.nplankl, -10*d.nplankl);
if (d.basekl)
printf(d.basekl > 1 ? "%6d á⠭権 ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ %5d\n" : "%6d á⠭権 ã­¨ç⮦¥­® ¢ è¨¬¨ ¤¥©á⢨ﬨ %5d\n",
d.basekl, -100*d.basekl);
if (nhelp)
printf(nhelp > 1 ? "%6d ¢ë§®¢®¢ ® ¯®¬®é¨ á® á⠭権 %5d\n" : "%6d ¢ë§®¢®¢ ® ¯®¬®é¨ á® á⠭権 %5d\n",
nhelp, -45*nhelp);
if (casual)
printf(casual > 1 ? "%6d ¯®â¥àì á।¨ íª¨¯ ¦  %5d\n" : "%6d ¯®â¥àì á।¨ íª¨¯ ¦  %5d\n",
casual, -casual);
if (klship)
printf(klship > 1 ? "%6d ª®à ¡«¥© ¯®â¥àï­® ¨«¨ ã­¨ç⮦¥­® %5d\n" : "%6d ª®à ¡«¥© ¯®â¥àï­® ¨«¨ ã­¨ç⮦¥­® %5d\n",
klship, -100*klship);
#ifdef CLOAKING
if (ncviol>0)
printf(ncviol > 1 ? "%6d ­ àã襭¨© €«£¥à®­áª®£® ᮣ« è¥­¨ï %5d\n" : "%6d ­ àã襭¨© €«£¥à®­áª®£® ᮣ« è¥­¨ï %5d\n",
ncviol, -100*ncviol);
#endif
if (alive==0)
/* prout("Penalty for getting yourself killed -200"); */
prout("˜âà ä §  â®, çâ® ‚ë ¤ «¨ ᥡï 㡨âì -200");
if (gamewon) {
skip(1);
/* proutn("Bonus for winning "); */
proutn("<EFBFBD>®­ãá §  ¯®¡¥¤ã ");
switch (skill) {
/* case SNOVICE: proutn("Novice game "); break;
case SFAIR: proutn("Fair game "); break;
case SGOOD: proutn("Good game "); break;
case SEXPERT: proutn("Expert game "); break;
case SEMERITUS: proutn("Emeritus game"); break;
*/ case SNOVICE: proutn("ˆ£à  <20>®¢¨çª  "); break;
case SFAIR: proutn("ˆ£à  ‘ « £¨ "); break;
case SGOOD: proutn("ˆ£à  Žâ«¨ç­¨ª  "); break;
case SEXPERT: proutn("ˆ£à  <20>ªá¯¥àâ  "); break;
case SEMERITUS: proutn("ˆ£à  <20>¬¥à¨âãá "); break;
}
printf(" %5d\n", iwon);
}
skip(2);
printf("ˆâ®£®¢ë© ¡ «« %5d\n", iscore);/*TOTAL SCORE*/
/* if (inGame && skill < SGOOD) printf("REMEMBER--The score doesn't really matter until the mission is accomplished!\n"); */
if (inGame && skill < SGOOD) printf("<EFBFBD>ŽŒ<EFBFBD>ˆ…--<2D> ««ë ­¨ç¥£® ­¥ §­ ç â, ¯®ª  ¬¨áá¨ï ­¥ ®ª®­ç¥­ !\n");
}
void plaque(void) {
FILE *fp=NULL;
#ifndef KOS32
time_t t;
#else
int kos_date, kos_time;
#endif
char *timestring;
int nskip;
char winner[128];
skip(2);
while (fp == NULL) {
/* printf("File or device name for your plaque:"); */
printf("‚¢¥¤¨â¥ ¨¬ï ä ©«  ¤«ï ¢ è¨å ¤®á⨦¥­¨©:");
#ifndef KOS32
fgets(winner, 128, stdin);
#else
gets(winner);
#endif
winner[strlen(winner)-1] = '\0';
fp = fopen(winner, "w");
if (fp==NULL) {
printf("<EFBFBD>¥¢¥à­®¥ ¨¬ï.\n");/*Invalid name*/
}
}
/* printf("Enter name to go on plaque (up to 30 characters):"); */
printf("‚¢¥¤¨â¥ ¨¬ï ¤«ï ¯ ¬ïâ­®£® §­ çª  (¬ ªá¨¬ã¬ 30 ᨬ¢®«®¢):");
#ifndef KOS32
fgets(winner, 128, stdin);
#else
gets(winner);
#endif
winner[strlen(winner)-1] = '\0';
winner[30] = '\0';
nskip = 64 - strlen(winner)/2;
fprintf(fp,"\n\n\n\n");
/* --------DRAW ENTERPRISE PICTURE. */
fprintf(fp, " EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n" );
fprintf(fp, " EEE E : : : E\n" );
fprintf(fp, " EE EEE E : : NCC-1701 : E\n");
fprintf(fp, " EEEEEEEEEEEEEEEE EEEEEEEEEEEEEEE E : : : E\n");
fprintf(fp, " E E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n");
fprintf(fp, " EEEEEEEEE EEEEEEEEEEEEE E E\n");
fprintf(fp, " EEEEEEE EEEEE E E E E\n");
fprintf(fp, " EEE E E E E\n");
fprintf(fp, " E E E E\n");
fprintf(fp, " EEEEEEEEEEEEE E E\n");
fprintf(fp, " EEE : EEEEEEE EEEEEEEE\n");
fprintf(fp, " :E : EEEE E\n");
fprintf(fp, " .-E -:----- E\n");
fprintf(fp, " :E : E\n");
fprintf(fp, " EE : EEEEEEEE\n");
fprintf(fp, " EEEEEEEEEEEEEEEEEEEEEEE\n");
fprintf(fp, "\n\n\n");
fprintf(fp, " U. S. S. ENTERPRISE\n");
fprintf(fp, "\n\n\n\n");
/* fprintf(fp, " For demonstrating outstanding ability as a starship captain\n"); */
fprintf(fp, " ‡  ¯à®ï¢«¥­­ë¥ ¢ë¤ î騥áï ¤®á⨦¥­¨ï ¢ ¤®«¦­®á⨠ª ¯¨â ­  ª®á¬¨ç¥áª®£® ª®à ¡«ï\n");
fprintf(fp, "\n");
/* fprintf(fp, " Starfleet Command bestows to you\n"); */
fprintf(fp, " ‡¢¥§¤­®¥ Š®¬ ­¤®¢ ­¨¥ ¯à¥¤áâ ¢«ï¥â ‚ á\n");
fprintf(fp, "\n");
fprintf(fp,"%*s%s\n\n", nskip, "", winner);
/* fprintf(fp, " the rank of\n\n");
fprintf(fp, " \"Commodore Emeritus\"\n\n");
*/ fprintf(fp, " ª §¢ ­¨î\n\n");
fprintf(fp, " \"Š®¬ ­¤®à <20>¬¥à¨âãá\"\n\n");
fprintf(fp, " ");
switch (iskill) {
/* case SEXPERT: fprintf(fp," Expert level\n\n"); break;
case SEMERITUS: fprintf(fp,"Emeritus level\n\n"); break;
default: fprintf(fp," Cheat level\n\n"); break;
*/ case SEXPERT: fprintf(fp," ã஢¥­ì <20>ªá¯¥àâ \n\n"); break;
case SEMERITUS: fprintf(fp,"ã஢¥­ì <20>¬¥à¨âãá \n\n"); break;
default: fprintf(fp," ®¡ëç­ë© ç¨â¥à᪨© ã஢¥­ì\n\n"); break;
}
#ifndef KOS32
t = time(NULL);
timestring = ctime(&t);
/* fprintf(fp, " This day of %.6s %.4s, %.8s\n\n", */
fprintf(fp, " <20>â®â ¤¥­ì %.6s %.4s, %.8s\n\n",
timestring+4, timestring+20, timestring+11);
#else
kos_date = _ksys_get_date();
kos_time = _ksys_get_system_clock();
/* fprintf(fp, " This day of %02i/%02i/%02i %02i:%02i:%02i\n\n", */
fprintf(fp, " <20>â®â ¤¥­ì %02i/%02i/%02i %02i:%02i:%02i\n\n",
kos_date >> 16, (kos_date & 0xFF00) >> 8, (kos_date & 0xFF) + 2000,
kos_time & 0xFF, (kos_time & 0xFF00) >> 8, kos_time >> 16 );
#endif
/* fprintf(fp," Your score: %d\n\n", iscore);
fprintf(fp," Klingons per stardate: %.2f\n", perdate);
*/ fprintf(fp," ‚ è ¡ ««: %d\n\n", iscore);
fprintf(fp," Š«¨­£®­®¢ ­  ¤ âã: %.2f\n", perdate);
fclose(fp);
}