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