3a4ccc4ac4
git-svn-id: svn://kolibrios.org@7185 a494cfbc-eb01-0410-851d-a64ba20cac60
670 lines
27 KiB
C
670 lines
27 KiB
C
#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);
|
||
}
|