|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)win.c 4.1 (Berkeley) 3/23/83";
3: #endif not lint
4:
5: # include "trek.h"
6: # include "getpar.h"
7:
8: /*
9: ** Signal game won
10: **
11: ** This routine prints out the win message, arranges to print out
12: ** your score, tells you if you have a promotion coming to you,
13: ** cleans up the current input line, and arranges to have you
14: ** asked whether or not you want another game (via the reset()
15: ** call).
16: **
17: ** Pretty straightforward, although the promotion algorithm is
18: ** pretty off the wall.
19: */
20:
21: win()
22: {
23: long s;
24: extern long score();
25: extern struct cvntab Skitab[];
26: register struct cvntab *p;
27:
28: sleep(1);
29: printf("\nCongratulations, you have saved the Federation\n");
30: Move.endgame = 1;
31:
32: /* print and return the score */
33: s = score();
34:
35: /* decide if she gets a promotion */
36: if (Game.helps == 0 && Game.killb == 0 && Game.killinhab == 0 && 5 * Game.kills + Game.deaths < 100 &&
37: s >= 1000 && Ship.ship == ENTERPRISE)
38: {
39: printf("In fact, you are promoted one step in rank,\n");
40: if (Game.skill >= 6)
41: printf("to the exalted rank of Commodore Emeritus\n");
42: else
43: {
44: p = &Skitab[Game.skill - 1];
45: printf("from %s%s ", p->abrev, p->full);
46: p++;
47: printf("to %s%s\n", p->abrev, p->full);
48: }
49: }
50:
51: /* clean out input, and request new game */
52: skiptonl(0);
53: reset();
54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.