1 #ifndef lint 2 static char sccsid[] = "@(#)score.c 4.1 (Berkeley) 03/23/83"; 3 #endif not lint 4 5 # include "trek.h" 6 # include "getpar.h" 7 8 /* 9 ** PRINT OUT THE CURRENT SCORE 10 */ 11 12 long score() 13 { 14 register int u; 15 register int t; 16 long s; 17 double r; 18 extern struct cvntab Skitab[]; 19 20 printf("\n*** Your score:\n"); 21 s = t = Param.klingpwr / 4 * (u = Game.killk); 22 if (t != 0) 23 printf("%d Klingons killed\t\t\t%6d\n", u, t); 24 r = Now.date - Param.date; 25 if (r < 1.0) 26 r = 1.0; 27 r = Game.killk / r; 28 s =+ (t = 400 * r); 29 if (t != 0) 30 printf("Kill rate %.2f Klingons/stardate \t%6d\n", r, t); 31 r = Now.klings; 32 r =/ Game.killk + 1; 33 s =+ (t = -400 * r); 34 if (t != 0) 35 printf("Penalty for %d klingons remaining\t%6d\n", Now.klings, t); 36 if (Move.endgame > 0) 37 { 38 s =+ (t = 100 * (u = Game.skill)); 39 printf("Bonus for winning a %s%s game\t\t%6d\n", Skitab[u - 1].abrev, Skitab[u - 1].full, t); 40 } 41 if (Game.killed) 42 { 43 s =- 500; 44 printf("Penalty for getting killed\t\t -500\n"); 45 } 46 s =+ (t = -100 * (u = Game.killb)); 47 if (t != 0) 48 printf("%d starbases killed\t\t\t%6d\n", u, t); 49 s =+ (t = -100 * (u = Game.helps)); 50 if (t != 0) 51 printf("%d calls for help\t\t\t%6d\n", u, t); 52 s =+ (t = -5 * (u = Game.kills)); 53 if (t != 0) 54 printf("%d stars destroyed\t\t\t%6d\n", u, t); 55 s =+ (t = -150 * (u = Game.killinhab)); 56 if (t != 0) 57 printf("%d inhabited starsystems destroyed\t%6d\n", u, t); 58 if (Ship.ship != ENTERPRISE) 59 { 60 s =- 200; 61 printf("penalty for abandoning ship\t\t -200\n"); 62 } 63 s =+ (t = 3 * (u = Game.captives)); 64 if (t != 0) 65 printf("%d Klingons captured\t\t\t%6d\n", u, t); 66 s =+ (t = -(u = Game.deaths)); 67 if (t != 0) 68 printf("%d casualties\t\t\t\t%6d\n", u, t); 69 printf("\n*** TOTAL\t\t\t%14ld\n", s); 70 return (s); 71 } 72