|
|
1.1 root 1: # include "trek.h"
2:
3: /**
4: ** dock to starbase
5: **/
6:
7: dock()
8: {
9: register int i, j;
10: int ok;
11: register EVENT *e;
12:
13: if (Status.cond == DOCKED) {
14: printf("Chekov: But captain, we are already docked\n");
15: return;
16: }
17: /* check for ok to dock */
18: ok = 0;
19: for (i = Sectx - 1; i <= Sectx + 1 && !ok; i++)
20: {
21: if (i < 0 || i >= NSECTS)
22: continue;
23: for (j = Secty - 1; j <= Secty + 1; j++)
24: {
25: if (j < 0 || j >= NSECTS)
26: continue;
27: if (Sect[i][j] == BASE)
28: {
29: ok = 1;
30: break;
31: }
32: }
33: }
34: if (!ok) {
35: printf("Chekov: But captain, we are not adjacent to a starbase.\n");
36: return;
37: }
38:
39: Status.energy = Initial.energy;
40: Status.torped = Initial.torped;
41: Status.shield = Initial.shield;
42: Status.crew = Initial.crew;
43: Status.brigfree = Initial.brigfree;
44: Status.shldup = 0;
45: Status.cloaked = 0;
46: Status.cond = DOCKED;
47: Status.reserves = Initial.reserves;
48: Status.sinsbad = 0;
49: dumpssradio();
50: /* reschedule any device repairs */
51: for (i = 0; i < MAXEVENTS; i++)
52: {
53: e = &Event[i];
54: if (e->evcode != E_FIXDV)
55: continue;
56: reschedule(e, (Status.date - e->date)*(1 - Param.dockfac));
57: }
58: return;
59: }
60:
61:
62: /**
63: ** leave a starbase
64: **/
65:
66: undock()
67: {
68: register EVENT *e;
69: register int i;
70:
71: if (Status.cond != DOCKED)
72: {
73: printf("Sulu: Pardon me captain, but we are not docked.\n");
74: return;
75: }
76: Status.cond = GREEN;
77: Move.free = 0;
78: /* reschedule device repair times (again) */
79: for (i = 0; i < MAXEVENTS; i++)
80: {
81: e = &Event[i];
82: if (e->evcode != E_FIXDV)
83: continue;
84: reschedule(e, (Status.date - e->date)*(1 - 1 / Param.dockfac));
85: }
86: return;
87: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.