Commit | Line | Data |
---|---|---|
d8ada91f | 1 | #ifndef lint |
066b3d96 | 2 | static char *sccsid = "@(#)pl_4.c 2.2 83/11/14"; |
d8ada91f EW |
3 | #endif |
4 | ||
5 | #include "player.h" | |
6 | ||
7 | changesail() | |
8 | { | |
9 | int rig, full; | |
10 | ||
11 | rig = mc->rig1; | |
12 | full = mf->FS; | |
13 | if (windspeed == 6 || windspeed == 5 && mc->class > 4) | |
14 | rig = 0; | |
15 | if (mc->crew3 && rig) { | |
16 | if (!full) { | |
789d5e82 EW |
17 | if (sgetch("Increase to Full sails? ", |
18 | (struct ship *)0, 1) == 'y') { | |
d8ada91f EW |
19 | changed = 1; |
20 | Write(W_FS, ms, 0, 1, 0, 0, 0); | |
21 | } | |
22 | } else { | |
789d5e82 EW |
23 | if (sgetch("Reduce to Battle sails? ", |
24 | (struct ship *)0, 1) == 'y') { | |
d8ada91f EW |
25 | Write(W_FS, ms, 0, 0, 0, 0, 0); |
26 | changed = 1; | |
27 | } | |
28 | } | |
29 | } else if (!rig) | |
30 | Signal("Sails rent to pieces", (struct ship *)0); | |
31 | } | |
32 | ||
d8ada91f EW |
33 | acceptsignal() |
34 | { | |
35 | char buf[60]; | |
36 | register char *p = buf; | |
37 | ||
d8ada91f | 38 | *p++ = '"'; |
789d5e82 | 39 | sgetstr("Mesage? ", p, sizeof buf - 2); |
d8ada91f EW |
40 | while (*p++) |
41 | ; | |
42 | p[-1] = '"'; | |
066b3d96 | 43 | *p = 0; |
d8ada91f EW |
44 | Write(W_SIGNAL, ms, 1, (int)buf, 0, 0, 0); |
45 | } | |
46 | ||
fe0cae24 | 47 | lookout() |
d8ada91f EW |
48 | { |
49 | register struct ship *sp; | |
fe0cae24 EW |
50 | char buf[3]; |
51 | register char c; | |
d8ada91f | 52 | |
fe0cae24 | 53 | sgetstr("What ship? ", buf, sizeof buf); |
d8ada91f | 54 | foreachship(sp) { |
fe0cae24 EW |
55 | c = *countryname[sp->nationality]; |
56 | if ((c == *buf || tolower(c) == *buf || colours(sp) == *buf) | |
57 | && (sp->file->stern == buf[1] || sterncolour(sp) == buf[1] | |
58 | || buf[1] == '?')) { | |
59 | eyeball(sp); | |
d8ada91f EW |
60 | } |
61 | } | |
d8ada91f EW |
62 | } |
63 | ||
fe0cae24 EW |
64 | char * |
65 | saywhat(sp, flag) | |
66 | register struct ship *sp; | |
67 | char flag; | |
d8ada91f | 68 | { |
fe0cae24 EW |
69 | if (sp->file->captain[0]) |
70 | return sp->file->captain; | |
71 | else if (sp->file->struck) | |
72 | return "(struck)"; | |
73 | else if (sp->file->captured != 0) | |
74 | return "(captured)"; | |
75 | else if (flag) | |
76 | return "(available)"; | |
d8ada91f | 77 | else |
fe0cae24 | 78 | return "(computer)"; |
d8ada91f EW |
79 | } |
80 | ||
fe0cae24 EW |
81 | eyeball(ship) |
82 | register struct ship *ship; | |
d8ada91f | 83 | { |
fe0cae24 EW |
84 | int i; |
85 | ||
86 | if (ship->file->dir != 0) { | |
87 | Signal("Sail ho! (range %d, %s)", | |
88 | (struct ship *)0, range(ms, ship), saywhat(ship, 0)); | |
89 | i = portside(ms, ship, 1) - mf->dir; | |
90 | if (i <= 0) | |
91 | i += 8; | |
92 | Signal("%s (%c%c) %s %s %s.", | |
93 | ship, countryname[ship->nationality], | |
94 | classname[ship->specs->class], directionname[i]); | |
d8ada91f | 95 | } |
d8ada91f | 96 | } |