|
|
1.1 root 1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that the above copyright notice and this paragraph are
7: * duplicated in all such forms and that any documentation,
8: * advertising materials, and other materials related to such
9: * distribution and use acknowledge that the software was developed
10: * by the University of California, Berkeley. The name of the
11: * University may not be used to endorse or promote products derived
12: * from this software without specific prior written permission.
13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: */
17:
18: #ifndef lint
19: static char sccsid[] = "@(#)win.c 5.3 (Berkeley) 6/18/88";
20: #endif /* not lint */
21:
22: # include "trek.h"
23: # include "getpar.h"
24:
25: /*
26: ** Signal game won
27: **
28: ** This routine prints out the win message, arranges to print out
29: ** your score, tells you if you have a promotion coming to you,
30: ** cleans up the current input line, and arranges to have you
31: ** asked whether or not you want another game (via the reset()
32: ** call).
33: **
34: ** Pretty straightforward, although the promotion algorithm is
35: ** pretty off the wall.
36: */
37:
38: win()
39: {
40: long s;
41: extern long score();
42: extern struct cvntab Skitab[];
43: register struct cvntab *p;
44:
45: sleep(1);
46: printf("\nCongratulations, you have saved the Federation\n");
47: Move.endgame = 1;
48:
49: /* print and return the score */
50: s = score();
51:
52: /* decide if she gets a promotion */
53: if (Game.helps == 0 && Game.killb == 0 && Game.killinhab == 0 && 5 * Game.kills + Game.deaths < 100 &&
54: s >= 1000 && Ship.ship == ENTERPRISE)
55: {
56: printf("In fact, you are promoted one step in rank,\n");
57: if (Game.skill >= 6)
58: printf("to the exalted rank of Commodore Emeritus\n");
59: else
60: {
61: p = &Skitab[Game.skill - 1];
62: printf("from %s%s ", p->abrev, p->full);
63: p++;
64: printf("to %s%s\n", p->abrev, p->full);
65: }
66: }
67:
68: /* clean out input, and request new game */
69: skiptonl(0);
70: reset();
71: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.