use -10 for sterncolour
[unix-history] / usr / src / games / sail / pl_4.c
CommitLineData
d8ada91f 1#ifndef lint
ce837792 2static char *sccsid = "@(#)pl_4.c 2.1 83/10/31";
d8ada91f
EW
3#endif
4
5#include "player.h"
6
7changesail()
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
33acceptsignal()
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] = '"';
43 Write(W_SIGNAL, ms, 1, (int)buf, 0, 0, 0);
44}
45
fe0cae24 46lookout()
d8ada91f
EW
47{
48 register struct ship *sp;
fe0cae24
EW
49 char buf[3];
50 register char c;
d8ada91f 51
fe0cae24 52 sgetstr("What ship? ", buf, sizeof buf);
d8ada91f 53 foreachship(sp) {
fe0cae24
EW
54 c = *countryname[sp->nationality];
55 if ((c == *buf || tolower(c) == *buf || colours(sp) == *buf)
56 && (sp->file->stern == buf[1] || sterncolour(sp) == buf[1]
57 || buf[1] == '?')) {
58 eyeball(sp);
d8ada91f
EW
59 }
60 }
d8ada91f
EW
61}
62
fe0cae24
EW
63char *
64saywhat(sp, flag)
65register struct ship *sp;
66char flag;
d8ada91f 67{
fe0cae24
EW
68 if (sp->file->captain[0])
69 return sp->file->captain;
70 else if (sp->file->struck)
71 return "(struck)";
72 else if (sp->file->captured != 0)
73 return "(captured)";
74 else if (flag)
75 return "(available)";
d8ada91f 76 else
fe0cae24 77 return "(computer)";
d8ada91f
EW
78}
79
fe0cae24
EW
80eyeball(ship)
81register struct ship *ship;
d8ada91f 82{
fe0cae24
EW
83 int i;
84
85 if (ship->file->dir != 0) {
86 Signal("Sail ho! (range %d, %s)",
87 (struct ship *)0, range(ms, ship), saywhat(ship, 0));
88 i = portside(ms, ship, 1) - mf->dir;
89 if (i <= 0)
90 i += 8;
91 Signal("%s (%c%c) %s %s %s.",
92 ship, countryname[ship->nationality],
93 classname[ship->specs->class], directionname[i]);
d8ada91f 94 }
d8ada91f 95}