more cleanup; sail, driver, sail.log merged into single program
[unix-history] / usr / src / games / sail / pl_2.c
CommitLineData
5f9f07ce 1#ifndef lint
490c485f 2static char *sccsid = "@(#)pl_2.c 2.3 83/12/09";
5f9f07ce 3#endif
7fc06086 4
5f9f07ce
CL
5#include "player.h"
6
fe0cae24 7play()
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}