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