X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/7e5c0c57606f0f1e9335aa74ef5ea8c8048a9b2c..7a0e87ac5574e7cf3a527b5d9c93d97fdee6dee8:/sail/dr_3.c diff --git a/sail/dr_3.c b/sail/dr_3.c index 8dd6ed28..147c8fb1 100644 --- a/sail/dr_3.c +++ b/sail/dr_3.c @@ -1,4 +1,4 @@ -/* $NetBSD: dr_3.c,v 1.4 1997/10/13 19:43:32 christos Exp $ */ +/* $NetBSD: dr_3.c,v 1.15 2003/08/07 09:37:42 agc Exp $ */ /* * Copyright (c) 1983, 1993 @@ -12,11 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -38,15 +34,23 @@ #if 0 static char sccsid[] = "@(#)dr_3.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: dr_3.c,v 1.4 1997/10/13 19:43:32 christos Exp $"); +__RCSID("$NetBSD: dr_3.c,v 1.15 2003/08/07 09:37:42 agc Exp $"); #endif #endif /* not lint */ -#include "driver.h" #include +#include +#include "extern.h" +#include "driver.h" +static int stillmoving(int); +static int is_isolated(struct ship *); +static int push(struct ship *, struct ship *); +static void step(struct ship *, int, char *); + +/* move all comp ships */ void -moveall() /* move all comp ships */ +moveall(void) { struct ship *sp, *sq; int n; @@ -86,10 +90,10 @@ moveall() /* move all comp ships */ n = 0; foreachship(sp) { if (snagged(sp)) - (void) strcpy(sp->file->movebuf, "d"); + strcpy(sp->file->movebuf, "d"); else if (*sp->file->movebuf != 'd') - (void) strcat(sp->file->movebuf, "d"); + strcat(sp->file->movebuf, "d"); row[n] = sp->file->row; col[n] = sp->file->col; dir[n] = sp->file->dir; @@ -111,7 +115,7 @@ moveall() /* move all comp ships */ if (!sp->file->movebuf[k]) sp->file->movebuf[k+1] = '\0'; else if (sp->file->dir) - step(sp->file->movebuf[k], sp, &moved[n]); + step(sp, sp->file->movebuf[k], &moved[n]); n++; } /* @@ -119,7 +123,7 @@ moveall() /* move all comp ships */ */ n = 0; foreachship(sp) { - if (sp->file->dir == 0 || isolated(sp)) + if (sp->file->dir == 0 || is_isolated(sp)) goto cont1; l = 0; foreachship(sq) { @@ -134,14 +138,12 @@ moveall() /* move all comp ships */ if (snagged2(sp, sq) && range(sp, sq) > 1) snap++; if (!range(sp, sq) && !fouled2(sp, sq)) { - makesignal(sp, - "collision with %s (%c%c)", sq); - if (die() < 4) { - makesignal(sp, - "fouled with %s (%c%c)", - sq); - Write(W_FOUL, sp, 0, l, 0, 0, 0); - Write(W_FOUL, sq, 0, n, 0, 0, 0); + makesignal(sp, "collision with $$", sq); + if (dieroll() < 4) { + makesignal(sp, "fouled with $$", + sq); + Write(W_FOUL, sp, l, 0, 0, 0); + Write(W_FOUL, sq, n, 0, 0, 0); } snap++; } @@ -172,21 +174,20 @@ moveall() /* move all comp ships */ if (sp->file->dir != 0) { *sp->file->movebuf = 0; if (row[n] != sp->file->row) - Write(W_ROW, sp, 0, sp->file->row, 0, 0, 0); + Write(W_ROW, sp, sp->file->row, 0, 0, 0); if (col[n] != sp->file->col) - Write(W_COL, sp, 0, sp->file->col, 0, 0, 0); + Write(W_COL, sp, sp->file->col, 0, 0, 0); if (dir[n] != sp->file->dir) - Write(W_DIR, sp, 0, sp->file->dir, 0, 0, 0); + Write(W_DIR, sp, sp->file->dir, 0, 0, 0); if (drift[n] != sp->file->drift) - Write(W_DRIFT, sp, 0, sp->file->drift, 0, 0, 0); + Write(W_DRIFT, sp, sp->file->drift, 0, 0, 0); } n++; } } -int -stillmoving(k) -int k; +static int +stillmoving(int k) { struct ship *sp; @@ -196,9 +197,8 @@ int k; return 0; } -int -isolated(ship) -struct ship *ship; +static int +is_isolated(struct ship *ship) { struct ship *sp; @@ -209,9 +209,8 @@ struct ship *ship; return 1; } -int -push(from, to) -struct ship *from, *to; +static int +push(struct ship *from, struct ship *to) { int bs, sb; @@ -224,11 +223,8 @@ struct ship *from, *to; return from < to; } -void -step(com, sp, moved) -char com; -struct ship *sp; -char *moved; +static void +step(struct ship *sp, int com, char *moved) { int dist; @@ -268,10 +264,7 @@ char *moved; } void -sendbp(from, to, sections, isdefense) -struct ship *from, *to; -int sections; -char isdefense; +sendbp(struct ship *from, struct ship *to, int sections, int isdefense) { int n; struct BP *bp; @@ -280,20 +273,17 @@ char isdefense; for (n = 0; n < NBP && bp[n].turnsent; n++) ; if (n < NBP && sections) { - Write(isdefense ? W_DBP : W_OBP, from, 0, + Write(isdefense ? W_DBP : W_OBP, from, n, turn, to->file->index, sections); if (isdefense) - makesignal(from, "repelling boarders", - (struct ship *)0); + makemsg(from, "repelling boarders"); else - makesignal(from, "boarding the %s (%c%c)", to); + makesignal(from, "boarding the $$", to); } } int -toughmelee(ship, to, isdefense, count) -struct ship *ship, *to; -int isdefense, count; +is_toughmelee(struct ship *ship, struct ship *to, int isdefense, int count) { struct BP *bp; int obp = 0; @@ -314,9 +304,9 @@ int isdefense, count; } if (count || isdefense) return obp; - OBP = toughmelee(to, ship, 0, count + 1); - dbp = toughmelee(ship, to, 1, count + 1); - DBP = toughmelee(to, ship, 1, count + 1); + OBP = is_toughmelee(to, ship, 0, count + 1); + dbp = is_toughmelee(ship, to, 1, count + 1); + DBP = is_toughmelee(to, ship, 1, count + 1); if (OBP > obp + 10 || OBP + DBP >= obp + dbp + 10) return 1; else @@ -324,7 +314,7 @@ int isdefense, count; } void -reload() +reload(void) { struct ship *sp; @@ -334,7 +324,7 @@ reload() } void -checksails() +checksails(void) { struct ship *sp; int rig, full; @@ -358,6 +348,6 @@ checksails() } else full = 0; if ((sp->file->FS != 0) != full) - Write(W_FS, sp, 0, full, 0, 0, 0); + Write(W_FS, sp, full, 0, 0, 0); } }