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