X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/b4bb83fd34ab5386afa1b8af8e0956ff7953d0e0..c8f75ed90de51b0cc71da2c6c9d5fc42192076f8:/battlestar/com6.c diff --git a/battlestar/com6.c b/battlestar/com6.c index 58a6e0a0..5bd9ebdc 100644 --- a/battlestar/com6.c +++ b/battlestar/com6.c @@ -1,4 +1,4 @@ -/* $NetBSD: com6.c,v 1.7 1997/10/10 11:39:32 lukem Exp $ */ +/* $NetBSD: com6.c,v 1.16 2000/09/10 10:51:17 jsm Exp $ */ /* * Copyright (c) 1983, 1993 @@ -38,9 +38,9 @@ #if 0 static char sccsid[] = "@(#)com6.c 8.2 (Berkeley) 4/28/95"; #else -__RCSID("$NetBSD: com6.c,v 1.7 1997/10/10 11:39:32 lukem Exp $"); +__RCSID("$NetBSD: com6.c,v 1.16 2000/09/10 10:51:17 jsm Exp $"); #endif -#endif /* not lint */ +#endif /* not lint */ #include "extern.h" #include "pathnames.h" @@ -48,46 +48,43 @@ __RCSID("$NetBSD: com6.c,v 1.7 1997/10/10 11:39:32 lukem Exp $"); int launch() { - if (testbit(location[position].objects,VIPER) && !notes[CANTLAUNCH]){ - if (fuel > 4){ - clearbit(location[position].objects,VIPER); + if (testbit(location[position].objects, VIPER) && !notes[CANTLAUNCH]) { + if (fuel > 4) { + clearbit(location[position].objects, VIPER); position = location[position].up; notes[LAUNCHED] = 1; ourtime++; fuel -= 4; puts("You climb into the viper and prepare for launch."); puts("With a touch of your thumb the turbo engines ignite, thrusting you back into\nyour seat."); - return(1); - } - else + return (1); + } else puts("Not enough fuel to launch."); - } - else + } else puts("Can't launch."); - return(0); + return (0); } int land() { - if (notes[LAUNCHED] && testbit(location[position].objects,LAND) && - location[position].down){ + if (notes[LAUNCHED] && testbit(location[position].objects, LAND) && + location[position].down) { notes[LAUNCHED] = 0; position = location[position].down; - setbit(location[position].objects,VIPER); + setbit(location[position].objects, VIPER); fuel -= 2; ourtime++; puts("You are down."); - return(1); - } - else + return (1); + } else puts("You can't land here."); - return(0); + return (0); } void -die() /* endgame */ -{ +die() +{ /* endgame */ printf("bye.\nYour rating was %s.\n", rate()); post(' '); exit(0); @@ -95,7 +92,7 @@ die() /* endgame */ void diesig(dummy) - int dummy; + int dummy __attribute__((__unused__)); { die(); } @@ -108,124 +105,146 @@ live() exit(0); } +static FILE *score_fp; + +void +open_score_file() +{ + score_fp = fopen(_PATH_SCORE, "a"); + if (score_fp == NULL) + warn("open %s for append", _PATH_SCORE); + if (score_fp != NULL && fileno(score_fp) < 3) + exit(1); +} + void post(ch) - char ch; + char ch; { - FILE *fp; - struct timeval tv; - char *date; + time_t tv; + char *date; sigset_t sigset, osigset; sigemptyset(&sigset); sigaddset(&sigset, SIGINT); sigprocmask(SIG_BLOCK, &sigset, &osigset); - gettimeofday(&tv, (struct timezone *)0); /* can't call time */ - date = ctime(&tv.tv_sec); + tv = time(NULL); + date = ctime(&tv); date[24] = '\0'; - if ((fp = fopen(_PATH_SCORE,"a")) != NULL) { - fprintf(fp, "%s %8s %c%20s", date, uname, ch, rate()); + if (score_fp != NULL) { + fprintf(score_fp, "%s %8s %c%20s", date, username, ch, rate()); if (wiz) - fprintf(fp, " wizard\n"); - else if (tempwiz) - fprintf(fp, " WIZARD!\n"); + fprintf(score_fp, " wizard\n"); else - fprintf(fp, "\n"); - } else - perror(_PATH_SCORE); - sigprocmask(SIG_SETMASK, &osigset, (sigset_t *)0); + if (tempwiz) + fprintf(score_fp, " WIZARD!\n"); + else + fprintf(score_fp, "\n"); + } + sigprocmask(SIG_SETMASK, &osigset, (sigset_t *) 0); } -char * +const char * rate() { - int score; + int score; - score = max(max(pleasure,power),ego); - if (score == pleasure){ + score = max(max(pleasure, power), ego); + if (score == pleasure) { if (score < 5) - return("novice"); - else if (score < 20) - return("junior voyeur"); - else if (score < 35) - return("Don Juan"); - else return("Marquis De Sade"); - } - else if (score == power){ - if (score < 5) - return("serf"); - else if (score < 8) - return("Samurai"); - else if (score < 13) - return("Klingon"); - else if (score < 22) - return("Darth Vader"); - else return("Sauron the Great"); - } - else{ - if (score < 5) - return("Polyanna"); - else if (score < 10) - return("philanthropist"); - else if (score < 20) - return("Tattoo"); - else return("Mr. Roarke"); - } + return ("novice"); + else + if (score < 20) + return ("junior voyeur"); + else + if (score < 35) + return ("Don Juan"); + else + return ("Marquis De Sade"); + } else + if (score == power) { + if (score < 5) + return ("serf"); + else + if (score < 8) + return ("Samurai"); + else + if (score < 13) + return ("Klingon"); + else + if (score < 22) + return ("Darth Vader"); + else + return ("Sauron the Great"); + } else { + if (score < 5) + return ("Polyanna"); + else + if (score < 10) + return ("philanthropist"); + else + if (score < 20) + return ("Tattoo"); + else + return ("Mr. Roarke"); + } } int drive() { - if (testbit(location[position].objects,CAR)){ + if (testbit(location[position].objects, CAR)) { puts("You hop in the car and turn the key. There is a perceptible grating noise,"); puts("and an explosion knocks you unconscious..."); - clearbit(location[position].objects,CAR); - setbit(location[position].objects,CRASH); + clearbit(location[position].objects, CAR); + setbit(location[position].objects, CRASH); injuries[5] = injuries[6] = injuries[7] = injuries[8] = 1; ourtime += 15; zzz(); - return(0); - } - else + return (0); + } else puts("There is nothing to drive here."); - return(-1); + return (-1); } int ride() { - if (testbit(location[position].objects,HORSE)){ + if (testbit(location[position].objects, HORSE)) { puts("You climb onto the stallion and kick it in the guts. The stupid steed launches"); - puts("forward through bush and fern. You are thrown and the horse gallups off."); - clearbit(location[position].objects,HORSE); - while (!(position = rnd(NUMOFROOMS+1)) || !OUTSIDE || !beenthere[position] || location[position].flyhere); - setbit(location[position].objects,HORSE); + puts("forward through bush and fern. You are thrown and the horse gallops off."); + clearbit(location[position].objects, HORSE); + while (!(position = rnd(NUMOFROOMS + 1)) || !OUTSIDE || !beenthere[position] || location[position].flyhere); + setbit(location[position].objects, HORSE); if (location[position].north) position = location[position].north; - else if (location[position].south) - position = location[position].south; - else if (location[position].east) - position = location[position].east; else - position = location[position].west; - return(0); - } - else puts("There is no horse here."); - return(-1); + if (location[position].south) + position = location[position].south; + else + if (location[position].east) + position = location[position].east; + else + position = location[position].west; + return (0); + } else + puts("There is no horse here."); + return (-1); } void -light() /* synonyms = {strike, smoke} */ -{ /* for matches, cigars */ - if (testbit(inven,MATCHES) && matchcount){ +light() +{ /* synonyms = {strike, smoke} *//* for + * matches, cigars */ + if (testbit(inven, MATCHES) && matchcount) { puts("Your match splutters to life."); ourtime++; matchlight = 1; matchcount--; - if (position == 217){ + if (position == 217) { puts("The whole bungalow explodes with an intense blast."); die(); } - } - else puts("You're out of matches."); + } else + puts("You're out of matches."); }