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[] = "@(#)pl_2.c 8.1 (Berkeley) 5/31/93";
36: #else
37: __RCSID("$NetBSD: pl_2.c,v 1.11 2003/08/07 09:37:43 agc Exp $");
38: #endif
39: #endif
40:
41: #include <signal.h>
42: #include "extern.h"
43: #include "player.h"
44:
45: void
46: play(void)
47: {
48: struct ship *sp;
49:
50: for (;;) {
51: switch (sgetch("~\b", (struct ship *)0, 0)) {
52: case 'm':
53: acceptmove();
54: break;
55: case 's':
56: acceptsignal();
57: break;
58: case 'g':
59: grapungrap();
60: break;
61: case 'u':
62: unfoulplayer();
63: break;
64: case 'v':
65: Msg("%s", version);
66: break;
67: case 'b':
68: acceptboard();
69: break;
70: case 'f':
71: acceptcombat();
72: break;
73: case 'l':
74: loadplayer();
75: break;
76: case 'c':
77: changesail();
78: break;
79: case 'r':
80: repair();
81: break;
82: case 'B':
83: Msg("'Hands to stations!'");
84: unboard(ms, ms, 1);
85: unboard(ms, ms, 0);
86: break;
87: case '\f':
88: centerview();
89: blockalarm();
90: draw_board();
91: draw_screen();
92: unblockalarm();
93: break;
94: case 'L':
95: mf->loadL = L_EMPTY;
96: mf->loadR = L_EMPTY;
97: mf->readyL = R_EMPTY;
98: mf->readyR = R_EMPTY;
99: Msg("Broadsides unloaded");
100: break;
101: case 'q':
102: Msg("Type 'Q' to quit");
103: break;
104: case 'Q':
105: leave(LEAVE_QUIT);
106: break;
107: case 'I':
108: foreachship(sp)
109: if (sp != ms)
110: eyeball(sp);
111: break;
112: case 'i':
113: if ((sp = closestenemy(ms, 0, 1)) == 0)
114: Msg("No more ships left.");
115: else
116: eyeball(sp);
117: break;
118: case 'C':
119: centerview();
120: blockalarm();
121: draw_view();
122: unblockalarm();
123: break;
124: case 'U':
125: upview();
126: blockalarm();
127: draw_view();
128: unblockalarm();
129: break;
130: case 'D':
131: case 'N':
132: downview();
133: blockalarm();
134: draw_view();
135: unblockalarm();
136: break;
137: case 'H':
138: leftview();
139: blockalarm();
140: draw_view();
141: unblockalarm();
142: break;
143: case 'J':
144: rightview();
145: blockalarm();
146: draw_view();
147: unblockalarm();
148: break;
149: case 'F':
150: lookout();
151: break;
152: case 'S':
153: dont_adjust = !dont_adjust;
154: blockalarm();
155: draw_turn();
156: unblockalarm();
157: break;
158: }
159: }
160: }