1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32: #include <sys/cdefs.h>
33: #ifndef lint
34: #if 0
35: static char sccsid[] = "@(#)srscan.c 8.1 (Berkeley) 5/31/93";
36: #else
37: __RCSID("$NetBSD: srscan.c,v 1.6 2003/08/07 09:37:54 agc Exp $");
38: #endif
39: #endif
40:
41: #include <stdio.h>
42: #include "trek.h"
43: #include "getpar.h"
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60: const char *const Color[4] =
61: {
62: "GREEN",
63: "DOCKED",
64: "YELLOW",
65: "RED"
66: };
67:
68: void
69: srscan(f)
70: int f;
71: {
72: int i, j;
73: int statinfo;
74: const char *s;
75: int percent;
76: struct quad *q = NULL;
77: const struct cvntab *p;
78:
79: if (f >= 0 && check_out(SRSCAN))
80: {
81: return;
82: }
83: if (f)
84: statinfo = 1;
85: else
86: {
87: if (!testnl())
88: Etc.statreport = getynpar("status report");
89: statinfo = Etc.statreport;
90: }
91: if (f > 0)
92: {
93: Etc.statreport = 1;
94: if (!Etc.fast)
95: return;
96: }
97: if (f >= 0)
98: {
99: printf("\nShort range sensor scan\n");
100: q = &Quad[Ship.quadx][Ship.quady];
101: q->scanned = q->klings * 100 + q->bases * 10 + q->stars;
102: printf(" ");
103: for (i = 0; i < NSECTS; i++)
104: {
105: printf("%d ", i);
106: }
107: printf("\n");
108: }
109:
110: for (i = 0; i < NSECTS; i++)
111: {
112: if (f >= 0)
113: {
114: printf("%d ", i);
115: for (j = 0; j < NSECTS; j++)
116: printf("%c ", Sect[i][j]);
117: printf("%d", i);
118: if (statinfo)
119: printf(" ");
120: }
121: if (statinfo)
122: switch (i)
123: {
124: case 0:
125: printf("stardate %.2f", Now.date);
126: break;
127: case 1:
128: printf("condition %s", Color[Ship.cond]);
129: if (Ship.cloaked)
130: printf(", CLOAKED");
131: break;
132: case 2:
133: printf("position %d,%d/%d,%d",Ship.quadx, Ship.quady, Ship.sectx, Ship.secty);
134: break;
135: case 3:
136: printf("warp factor %.1f", Ship.warp);
137: break;
138: case 4:
139: printf("total energy %d", Ship.energy);
140: break;
141: case 5:
142: printf("torpedoes %d", Ship.torped);
143: break;
144: case 6:
145: s = "down";
146: if (Ship.shldup)
147: s = "up";
148: if (damaged(SHIELD))
149: s = "damaged";
150: percent = 100.0 * Ship.shield / Param.shield;
151: printf("shields %s, %d%%", s, percent);
152: break;
153: case 7:
154: printf("Klingons left %d", Now.klings);
155: break;
156: case 8:
157: printf("time left %.2f", Now.time);
158: break;
159: case 9:
160: printf("life support ");
161: if (damaged(LIFESUP))
162: {
163: printf("damaged, reserves = %.2f", Ship.reserves);
164: break;
165: }
166: printf("active");
167: break;
168: }
169: printf("\n");
170: }
171: if (f < 0)
172: {
173: printf("current crew %d\n", Ship.crew);
174: printf("brig space %d\n", Ship.brigfree);
175: printf("Klingon power %d\n", Param.klingpwr);
176: p = &Lentab[Game.length - 1];
177: if (Game.length > 2)
178: p--;
179: printf("Length, Skill %s%s, ", p->abrev, p->full);
180: p = &Skitab[Game.skill - 1];
181: printf("%s%s\n", p->abrev, p->full);
182: return;
183: }
184: printf(" ");
185: for (i = 0; i < NSECTS; i++)
186: printf("%d ", i);
187: printf("\n");
188:
189: if (q->qsystemname & Q_DISTRESSED)
190: printf("Distressed ");
191: if (q->qsystemname)
192: printf("Starsystem %s\n", systemname(q));
193: }