#include <string.h>
#include <time.h>
-void dstrct()
+void selfdestruct(void)
+/* self-destruct maneuver */
{
/* Finish with a BANG! */
chew();
- if (game.damage[DCOMPTR] != 0.0) {
+ if (damaged(DCOMPTR)) {
prout(_("Computer damaged; cannot execute destruct sequence."));
return;
}
}
-void finish(FINTYPE ifin)
+void finish(FINTYPE ifin)
+/* end the game, with appropriate notfications */
{
bool igotit = false;
game.alldone = true;
if (game.alive) {
double badpt;
badpt = 5.0*game.state.starkl + game.casual + 10.0*game.state.nplankl +
- 45.*game.nhelp+100.*game.state.basekl;
+ 45.*game.nhelp+100.*game.state.basekl+3.*game.abandoned;
if (game.ship == IHF) badpt += 100.0;
else if (game.ship == 0) badpt += 200.0;
if (badpt < 100.0) badpt = 0.0; // Close enough!
else {
proutn(_("Do you want your Commodore Emeritus Citation printed? "));
chew();
- if (ja()) {
+ if (ja() == true) {
igotit = 1;
}
}
prout(_("Your ship is drawn to the center of the black hole."));
prout(_("You are crushed into extremely dense matter."));
break;
+ case FCREW:
+ prout(_("Your last crew member has died."));
+ break;
}
if (game.ship==IHF) game.ship= 0;
else if (game.ship == IHE) game.ship = IHF;
}
void score(void)
+/* compute player's score */
{
double timused = game.state.date - game.indate;
int ithperd, iwon, klship;
if (game.casual)
prout(_("%6d casualties incurred %5d"),
game.casual, -game.casual);
+ if (game.abandoned)
+ prout(_("%6d crew abandoned in space %5d"),
+ game.abandoned, -3*game.abandoned);
if (klship)
prout(_("%6d ship(s) lost or destroyed %5d"),
klship, -100*klship);
prout(_("TOTAL SCORE %5d"), iscore);
}
-void plaque(void) {
+void plaque(void)
+/* emit winner's commemmorative plaque */
+{
FILE *fp=NULL;
time_t t;
char *timestring;