|
|
1.1 root 1: # include "trek.h"
2:
3: /**
4: ** shield and cloaking device control
5: **/
6:
7: CVNTAB Udtab[]
8: {
9: "d", "own",
10: "u", "p",
11: 0
12: };
13:
14: shield()
15: {
16: protect(SHIELD);
17: }
18:
19: cloak()
20: {
21: protect(CLOAK);
22: }
23:
24: protect(sw)
25: int sw;
26: {
27: register int i;
28: char *device;
29: int ind;
30: char *stat;
31:
32: if (sw == CLOAK)
33: {
34: /* cloaking device */
35: if (Status.ship == QUEENE) {
36: error("Ye Faire Queene does not have the cloaking device.\n");
37: return;
38: }
39: device = "Cloaking device";
40: ind = CLOAK;
41: stat = &Status.cloaked;
42: }
43: else
44: {
45: /* shields */
46: device = "Shields";
47: ind = SHIELD;
48: stat = &Status.shldup;
49: }
50: if (Damage[ind])
51: {
52: error(device, " inoperable\n");
53: return;
54: }
55: if(sw) {
56: if(lineended()) {
57: printf("%s %s; ", device,
58: (*stat?"up":"down")
59: );
60: }
61: if((i=getcodpar("Up or down", Udtab))<0) return;
62: } else {
63: i = !*stat;
64: }
65: if(*stat==i)
66: return;
67: if (i)
68: if(sw!=CLOAK)
69: Status.energy =- Param.shupengy;
70: else
71: Status.cloakdate = Status.date;
72: Move.free = 0;
73: if(sw!=CLOAK)
74: Move.shldchg = 1;
75: *stat = i;
76: return;
77: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.