Commit | Line | Data |
---|---|---|
5f9f07ce | 1 | #ifndef lint |
490c485f | 2 | static char *sccsid = "@(#)pl_2.c 2.3 83/12/09"; |
5f9f07ce | 3 | #endif |
7fc06086 | 4 | |
5f9f07ce CL |
5 | #include "player.h" |
6 | ||
fe0cae24 | 7 | play() |
5f9f07ce | 8 | { |
fe0cae24 | 9 | register struct ship *sp; |
5f9f07ce | 10 | |
fe0cae24 EW |
11 | for (;;) { |
12 | switch (sgetch("~\b", (struct ship *)0, 0)) { | |
13 | case 'm': | |
14 | acceptmove(); | |
b3a57661 | 15 | break; |
fe0cae24 EW |
16 | case 's': |
17 | acceptsignal(); | |
b3a57661 | 18 | break; |
fe0cae24 EW |
19 | case 'g': |
20 | grapungrap(); | |
b3a57661 | 21 | break; |
fe0cae24 EW |
22 | case 'u': |
23 | unfoulplayer(); | |
b3a57661 | 24 | break; |
fe0cae24 EW |
25 | case 'v': |
26 | Signal("%s", (struct ship *)0, version); | |
b3a57661 | 27 | break; |
fe0cae24 EW |
28 | case 'b': |
29 | acceptboard(); | |
b3a57661 | 30 | break; |
fe0cae24 EW |
31 | case 'f': |
32 | acceptcombat(); | |
33 | break; | |
34 | case 'l': | |
35 | loadplayer(); | |
36 | break; | |
37 | case 'c': | |
38 | changesail(); | |
b3a57661 EW |
39 | break; |
40 | case 'r': | |
fe0cae24 | 41 | repair(); |
b3a57661 | 42 | break; |
fe0cae24 EW |
43 | case 'B': |
44 | Signal("'Hands to stations!'", (struct ship *)0); | |
45 | unboard(ms, ms, 1); /* cancel DBP's */ | |
46 | unboard(ms, ms, 0); /* cancel offense */ | |
b3a57661 | 47 | break; |
fe0cae24 EW |
48 | case '\f': |
49 | centerview(); | |
490c485f | 50 | blockalarm(); |
fe0cae24 EW |
51 | draw_board(); |
52 | draw_screen(); | |
490c485f | 53 | unblockalarm(); |
b3a57661 | 54 | break; |
fe0cae24 EW |
55 | case 'L': |
56 | mf->loadL = L_EMPTY; | |
57 | mf->loadR = L_EMPTY; | |
58 | mf->readyL = R_EMPTY; | |
59 | mf->readyR = R_EMPTY; | |
60 | Signal("Broadsides unloaded", (struct ship *)0); | |
61 | break; | |
62 | case 'q': | |
63 | Signal("Type 'Q' to quit", (struct ship *)0); | |
64 | break; | |
65 | case 'Q': | |
66 | leave(LEAVE_QUIT); | |
67 | break; | |
68 | case 'I': | |
69 | foreachship(sp) | |
70 | if (sp != ms) | |
71 | eyeball(sp); | |
72 | break; | |
73 | case 'i': | |
74 | if ((sp = closestenemy(ms, 0, 1)) == 0) | |
75 | Signal("No more ships left."); | |
b3a57661 | 76 | else |
fe0cae24 | 77 | eyeball(sp); |
b3a57661 | 78 | break; |
fe0cae24 EW |
79 | case 'C': |
80 | centerview(); | |
490c485f | 81 | blockalarm(); |
fe0cae24 | 82 | draw_view(); |
490c485f | 83 | unblockalarm(); |
5f9f07ce | 84 | break; |
fe0cae24 EW |
85 | case 'U': |
86 | upview(); | |
490c485f | 87 | blockalarm(); |
fe0cae24 | 88 | draw_view(); |
490c485f | 89 | unblockalarm(); |
5f9f07ce | 90 | break; |
fe0cae24 EW |
91 | case 'D': |
92 | case 'N': | |
93 | downview(); | |
490c485f | 94 | blockalarm(); |
fe0cae24 | 95 | draw_view(); |
490c485f | 96 | unblockalarm(); |
5f9f07ce | 97 | break; |
fe0cae24 EW |
98 | case 'H': |
99 | leftview(); | |
490c485f | 100 | blockalarm(); |
fe0cae24 | 101 | draw_view(); |
490c485f | 102 | unblockalarm(); |
fe0cae24 EW |
103 | break; |
104 | case 'J': | |
105 | rightview(); | |
490c485f | 106 | blockalarm(); |
fe0cae24 | 107 | draw_view(); |
490c485f | 108 | unblockalarm(); |
fe0cae24 EW |
109 | break; |
110 | case 'F': | |
111 | lookout(); | |
112 | break; | |
113 | case 'S': | |
114 | dont_adjust = !dont_adjust; | |
490c485f | 115 | blockalarm(); |
04bbf8e2 | 116 | draw_turn(); |
490c485f | 117 | unblockalarm(); |
5f9f07ce | 118 | break; |
b3a57661 | 119 | } |
5f9f07ce | 120 | } |
5f9f07ce | 121 | } |