|
|
1.1 root 1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that the above copyright notice and this paragraph are
7: * duplicated in all such forms and that any documentation,
8: * advertising materials, and other materials related to such
9: * distribution and use acknowledge that the software was developed
10: * by the University of California, Berkeley. The name of the
11: * University may not be used to endorse or promote products derived
12: * from this software without specific prior written permission.
13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: */
17:
18: #ifndef lint
19: static char sccsid[] = "@(#)pl_4.c 5.3 (Berkeley) 6/18/88";
20: #endif /* not lint */
21:
22: #include "player.h"
23:
24: changesail()
25: {
26: int rig, full;
27:
28: rig = mc->rig1;
29: full = mf->FS;
30: if (windspeed == 6 || windspeed == 5 && mc->class > 4)
31: rig = 0;
32: if (mc->crew3 && rig) {
33: if (!full) {
34: if (sgetch("Increase to Full sails? ",
35: (struct ship *)0, 1) == 'y') {
36: changed = 1;
37: Write(W_FS, ms, 0, 1, 0, 0, 0);
38: }
39: } else {
40: if (sgetch("Reduce to Battle sails? ",
41: (struct ship *)0, 1) == 'y') {
42: Write(W_FS, ms, 0, 0, 0, 0, 0);
43: changed = 1;
44: }
45: }
46: } else if (!rig)
47: Signal("Sails rent to pieces", (struct ship *)0);
48: }
49:
50: acceptsignal()
51: {
52: char buf[60];
53: register char *p = buf;
54:
55: *p++ = '"';
56: sgetstr("Message? ", p, sizeof buf - 2);
57: while (*p++)
58: ;
59: p[-1] = '"';
60: *p = 0;
61: Write(W_SIGNAL, ms, 1, (int)buf, 0, 0, 0);
62: }
63:
64: lookout()
65: {
66: register struct ship *sp;
67: char buf[3];
68: register char c;
69:
70: sgetstr("What ship? ", buf, sizeof buf);
71: foreachship(sp) {
72: c = *countryname[sp->nationality];
73: if ((c == *buf || tolower(c) == *buf || colours(sp) == *buf)
74: && (sp->file->stern == buf[1] || sterncolour(sp) == buf[1]
75: || buf[1] == '?')) {
76: eyeball(sp);
77: }
78: }
79: }
80:
81: char *
82: saywhat(sp, flag)
83: register struct ship *sp;
84: char flag;
85: {
86: if (sp->file->captain[0])
87: return sp->file->captain;
88: else if (sp->file->struck)
89: return "(struck)";
90: else if (sp->file->captured != 0)
91: return "(captured)";
92: else if (flag)
93: return "(available)";
94: else
95: return "(computer)";
96: }
97:
98: eyeball(ship)
99: register struct ship *ship;
100: {
101: int i;
102:
103: if (ship->file->dir != 0) {
104: Signal("Sail ho! (range %d, %s)",
105: (struct ship *)0, range(ms, ship), saywhat(ship, 0));
106: i = portside(ms, ship, 1) - mf->dir;
107: if (i <= 0)
108: i += 8;
109: Signal("%s (%c%c) %s %s %s.",
110: ship, countryname[ship->nationality],
111: classname[ship->specs->class], directionname[i]);
112: }
113: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.