Warns fixes:
use varargs properly use unsigned chars where appropriate fix typos eliminate gcc warnings
This commit is contained in:
parent
e95c79e586
commit
bf72b656b0
|
@ -1,7 +1,6 @@
|
|||
# $NetBSD: Makefile,v 1.6 1997/10/12 14:21:50 lukem Exp $
|
||||
# $NetBSD: Makefile,v 1.7 1997/10/13 19:42:53 christos Exp $
|
||||
# @(#)Makefile 8.1 (Berkeley) 5/31/93
|
||||
|
||||
WARNS=0
|
||||
PROG= sail
|
||||
SRCS= main.c pl_main.c pl_1.c pl_2.c pl_3.c pl_4.c pl_5.c pl_6.c pl_7.c \
|
||||
dr_main.c dr_1.c dr_2.c dr_3.c dr_4.c dr_5.c lo_main.c \
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: assorted.c,v 1.4 1997/01/07 12:42:14 tls Exp $ */
|
||||
/* $NetBSD: assorted.c,v 1.5 1997/10/13 19:43:05 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,25 +33,32 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)assorted.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: assorted.c,v 1.4 1997/01/07 12:42:14 tls Exp $";
|
||||
__RCSID("$NetBSD: assorted.c,v 1.5 1997/10/13 19:43:05 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "extern.h"
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <err.h>
|
||||
|
||||
static void strike __P((struct ship *, struct ship *));
|
||||
|
||||
void
|
||||
table(rig, shot, hittable, on, from, roll)
|
||||
struct ship *on, *from;
|
||||
int rig, shot, hittable, roll;
|
||||
{
|
||||
register int hhits = 0, chits = 0, ghits = 0, rhits = 0;
|
||||
int hhits = 0, chits = 0, ghits = 0, rhits = 0;
|
||||
int Ghit = 0, Hhit = 0, Rhit = 0, Chit = 0;
|
||||
int guns, car, pc, hull;
|
||||
int crew[3];
|
||||
register int n;
|
||||
int n;
|
||||
int rigg[4];
|
||||
char *message;
|
||||
struct Tables *tp;
|
||||
|
@ -158,6 +165,10 @@ int rig, shot, hittable, roll;
|
|||
break;
|
||||
case L_EXPLODE:
|
||||
message = "exploding shot on %s (%c%c)";
|
||||
break;
|
||||
default:
|
||||
errx(1, "Unknown shot type %d", shot);
|
||||
|
||||
}
|
||||
makesignal(from, message, on);
|
||||
if (roll == 6 && rig) {
|
||||
|
@ -183,6 +194,8 @@ int rig, shot, hittable, roll;
|
|||
case 7:
|
||||
message = "main topmast and mizzen mast shattered";
|
||||
break;
|
||||
default:
|
||||
errx(1, "Bad Rhit = %d", Rhit);
|
||||
}
|
||||
makesignal(on, message, (struct ship *)0);
|
||||
} else if (roll == 6) {
|
||||
|
@ -209,6 +222,8 @@ int rig, shot, hittable, roll;
|
|||
case 6:
|
||||
message = "shot holes below the water line";
|
||||
break;
|
||||
default:
|
||||
errx(1, "Bad Hhit = %d", Hhit);
|
||||
}
|
||||
makesignal(on, message, (struct ship *)0);
|
||||
}
|
||||
|
@ -228,8 +243,9 @@ int rig, shot, hittable, roll;
|
|||
strike(on, from);
|
||||
}
|
||||
|
||||
void
|
||||
Cleansnag(from, to, all, flag)
|
||||
register struct ship *from, *to;
|
||||
struct ship *from, *to;
|
||||
char all, flag;
|
||||
{
|
||||
if (flag & 1) {
|
||||
|
@ -254,8 +270,9 @@ char all, flag;
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
strike(ship, from)
|
||||
register struct ship *ship, *from;
|
||||
struct ship *ship, *from;
|
||||
{
|
||||
int points;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dr_1.c,v 1.4 1995/04/24 12:25:10 cgd Exp $ */
|
||||
/* $NetBSD: dr_1.c,v 1.5 1997/10/13 19:43:14 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,22 +33,25 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)dr_1.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: dr_1.c,v 1.4 1995/04/24 12:25:10 cgd Exp $";
|
||||
__RCSID("$NetBSD: dr_1.c,v 1.5 1997/10/13 19:43:14 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "driver.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void
|
||||
unfoul()
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
struct ship *to;
|
||||
register int nat;
|
||||
register i;
|
||||
int nat;
|
||||
int i;
|
||||
|
||||
foreachship(sp) {
|
||||
if (sp->file->captain[0])
|
||||
|
@ -65,10 +68,11 @@ unfoul()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
boardcomp()
|
||||
{
|
||||
int crew[3];
|
||||
register struct ship *sp, *sq;
|
||||
struct ship *sp, *sq;
|
||||
|
||||
foreachship(sp) {
|
||||
if (*sp->file->captain)
|
||||
|
@ -129,6 +133,7 @@ boardcomp()
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
fightitout(from, to, key)
|
||||
struct ship *from, *to;
|
||||
int key;
|
||||
|
@ -162,7 +167,7 @@ int key;
|
|||
fromstrength = menfrom * fromcap->specs->qual;
|
||||
strengthto = mento * tocap->specs->qual;
|
||||
for (count = 0;
|
||||
(fromstrength < strengthto * 3 && strengthto < fromstrength * 3
|
||||
((fromstrength < strengthto * 3 && strengthto < fromstrength * 3)
|
||||
|| fromstrength == -1) && count < 4;
|
||||
count++) {
|
||||
index = fromstrength/10;
|
||||
|
@ -230,10 +235,11 @@ int key;
|
|||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
resolve()
|
||||
{
|
||||
int thwart;
|
||||
register struct ship *sp, *sq;
|
||||
struct ship *sp, *sq;
|
||||
|
||||
foreachship(sp) {
|
||||
if (sp->file->dir == 0)
|
||||
|
@ -260,10 +266,11 @@ resolve()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
compcombat()
|
||||
{
|
||||
register n;
|
||||
register struct ship *sp;
|
||||
int n;
|
||||
struct ship *sp;
|
||||
struct ship *closest;
|
||||
int crew[3], men = 0, target, temp;
|
||||
int r, guns, ready, load, car;
|
||||
|
@ -389,6 +396,7 @@ compcombat()
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
next()
|
||||
{
|
||||
if (++turn % 55 == 0)
|
||||
|
@ -397,8 +405,8 @@ next()
|
|||
else
|
||||
people = 0;
|
||||
if (people <= 0 || windspeed == 7) {
|
||||
register struct ship *s;
|
||||
struct ship *bestship;
|
||||
struct ship *s;
|
||||
struct ship *bestship = NULL;
|
||||
float net, best = 0.0;
|
||||
foreachship(s) {
|
||||
if (*s->file->captain)
|
||||
|
@ -419,7 +427,7 @@ next()
|
|||
sizeof bestship->file->captain);
|
||||
bestship->file->captain
|
||||
[sizeof bestship->file->captain - 1] = 0;
|
||||
log(bestship);
|
||||
logger(bestship);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dr_2.c,v 1.4 1995/04/24 12:25:12 cgd Exp $ */
|
||||
/* $NetBSD: dr_2.c,v 1.5 1997/10/13 19:43:23 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,21 +33,24 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)dr_2.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: dr_2.c,v 1.4 1995/04/24 12:25:12 cgd Exp $";
|
||||
__RCSID("$NetBSD: dr_2.c,v 1.5 1997/10/13 19:43:23 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "driver.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
#define couldwin(f,t) (f->specs->crew2 > t->specs->crew2 * 1.5)
|
||||
|
||||
void
|
||||
thinkofgrapples()
|
||||
{
|
||||
register struct ship *sp, *sq;
|
||||
struct ship *sp, *sq;
|
||||
char friendly;
|
||||
|
||||
foreachship(sp) {
|
||||
|
@ -75,10 +78,11 @@ thinkofgrapples()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
checkup()
|
||||
{
|
||||
register struct ship *sp, *sq;
|
||||
register char explode, sink;
|
||||
struct ship *sp, *sq;
|
||||
char explode, sink;
|
||||
|
||||
foreachship(sp) {
|
||||
if (sp->file->dir == 0)
|
||||
|
@ -105,9 +109,10 @@ checkup()
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
prizecheck()
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
|
||||
foreachship(sp) {
|
||||
if (sp->file->captured == 0)
|
||||
|
@ -123,18 +128,20 @@ prizecheck()
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
strend(str)
|
||||
char *str;
|
||||
{
|
||||
register char *p;
|
||||
char *p;
|
||||
|
||||
for (p = str; *p; p++)
|
||||
;
|
||||
return p == str ? 0 : p[-1];
|
||||
}
|
||||
|
||||
void
|
||||
closeon(from, to, command, ta, ma, af)
|
||||
register struct ship *from, *to;
|
||||
struct ship *from, *to;
|
||||
char command[];
|
||||
int ma, ta, af;
|
||||
{
|
||||
|
@ -148,14 +155,15 @@ int ma, ta, af;
|
|||
|
||||
int dtab[] = {0,1,1,2,3,4,4,5}; /* diagonal distances in x==y */
|
||||
|
||||
int
|
||||
score(movement, ship, to, onlytemp)
|
||||
char movement[];
|
||||
register struct ship *ship, *to;
|
||||
struct ship *ship, *to;
|
||||
char onlytemp;
|
||||
{
|
||||
char drift;
|
||||
int row, col, dir, total, ran;
|
||||
register struct File *fp = ship->file;
|
||||
struct File *fp = ship->file;
|
||||
|
||||
if ((dir = fp->dir) == 0)
|
||||
return 0;
|
||||
|
@ -181,12 +189,13 @@ char onlytemp;
|
|||
return total;
|
||||
}
|
||||
|
||||
void
|
||||
move(p, ship, dir, row, col, drift)
|
||||
register char *p;
|
||||
register struct ship *ship;
|
||||
register char *dir;
|
||||
register short *row, *col;
|
||||
register char *drift;
|
||||
char *p;
|
||||
struct ship *ship;
|
||||
unsigned char *dir;
|
||||
short *row, *col;
|
||||
char *drift;
|
||||
{
|
||||
int dist;
|
||||
char moved = 0;
|
||||
|
@ -215,7 +224,7 @@ register char *drift;
|
|||
}
|
||||
if (!moved) {
|
||||
if (windspeed != 0 && ++*drift > 2) {
|
||||
if (ship->specs->class >= 3 && !snagged(ship)
|
||||
if ((ship->specs->class >= 3 && !snagged(ship))
|
||||
|| (turn & 1) == 0) {
|
||||
*row -= dr[winddir];
|
||||
*col -= dc[winddir];
|
||||
|
@ -225,12 +234,13 @@ register char *drift;
|
|||
*drift = 0;
|
||||
}
|
||||
|
||||
void
|
||||
try(command, temp, ma, ta, af, vma, dir, f, t, high, rakeme)
|
||||
register struct ship *f, *t;
|
||||
struct ship *f, *t;
|
||||
int ma, ta, af, *high, rakeme;
|
||||
char command[], temp[];
|
||||
{
|
||||
register int new, n;
|
||||
int new, n;
|
||||
char st[4];
|
||||
#define rakeyou (gunsbear(f, t) && !gunsbear(t, f))
|
||||
|
||||
|
@ -247,10 +257,10 @@ char command[], temp[];
|
|||
dir, f, t, high, rakeme);
|
||||
rmend(temp);
|
||||
}
|
||||
if (ma > 0 && ta > 0 && (n = strend(temp)) != 'l' && n != 'r' || !strlen(temp)) {
|
||||
if ((ma > 0 && ta > 0 && (n = strend(temp)) != 'l' && n != 'r') || !strlen(temp)) {
|
||||
(void) strcat(temp, "r");
|
||||
new = score(temp, f, t, rakeme);
|
||||
if (new > *high && (!rakeme || gunsbear(f, t) && !gunsbear(t, f))) {
|
||||
if (new > *high && (!rakeme || (gunsbear(f, t) && !gunsbear(t, f)))) {
|
||||
*high = new;
|
||||
(void) strcpy(command, temp);
|
||||
}
|
||||
|
@ -269,10 +279,11 @@ char command[], temp[];
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
rmend(str)
|
||||
char *str;
|
||||
{
|
||||
register char *p;
|
||||
char *p;
|
||||
|
||||
for (p = str; *p; p++)
|
||||
;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dr_3.c,v 1.3 1995/04/22 10:36:49 cgd Exp $ */
|
||||
/* $NetBSD: dr_3.c,v 1.4 1997/10/13 19:43:32 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,21 +33,24 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)dr_3.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: dr_3.c,v 1.3 1995/04/22 10:36:49 cgd Exp $";
|
||||
__RCSID("$NetBSD: dr_3.c,v 1.4 1997/10/13 19:43:32 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "driver.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void
|
||||
moveall() /* move all comp ships */
|
||||
{
|
||||
register struct ship *sp, *sq; /* r11, r10 */
|
||||
register int n; /* r9 */
|
||||
register int k, l; /* r8, r7 */
|
||||
struct ship *sp, *sq;
|
||||
int n;
|
||||
int k, l;
|
||||
int row[NSHIP], col[NSHIP], dir[NSHIP], drift[NSHIP];
|
||||
char moved[NSHIP];
|
||||
|
||||
|
@ -181,10 +184,11 @@ moveall() /* move all comp ships */
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
stillmoving(k)
|
||||
register int k;
|
||||
int k;
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
|
||||
foreachship(sp)
|
||||
if (sp->file->movebuf[k])
|
||||
|
@ -192,10 +196,11 @@ register int k;
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
isolated(ship)
|
||||
register struct ship *ship;
|
||||
struct ship *ship;
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
|
||||
foreachship(sp) {
|
||||
if (ship != sp && range(ship, sp) <= 10)
|
||||
|
@ -204,10 +209,11 @@ register struct ship *ship;
|
|||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
push(from, to)
|
||||
register struct ship *from, *to;
|
||||
struct ship *from, *to;
|
||||
{
|
||||
register int bs, sb;
|
||||
int bs, sb;
|
||||
|
||||
sb = to->specs->guns;
|
||||
bs = from->specs->guns;
|
||||
|
@ -218,12 +224,13 @@ register struct ship *from, *to;
|
|||
return from < to;
|
||||
}
|
||||
|
||||
void
|
||||
step(com, sp, moved)
|
||||
char com;
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
char *moved;
|
||||
{
|
||||
register int dist;
|
||||
int dist;
|
||||
|
||||
switch (com) {
|
||||
case 'r':
|
||||
|
@ -249,7 +256,7 @@ char *moved;
|
|||
case 'd':
|
||||
if (!*moved) {
|
||||
if (windspeed != 0 && ++sp->file->drift > 2 &&
|
||||
(sp->specs->class >= 3 && !snagged(sp)
|
||||
((sp->specs->class >= 3 && !snagged(sp))
|
||||
|| (turn & 1) == 0)) {
|
||||
sp->file->row -= dr[winddir];
|
||||
sp->file->col -= dc[winddir];
|
||||
|
@ -260,13 +267,14 @@ char *moved;
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
sendbp(from, to, sections, isdefense)
|
||||
register struct ship *from, *to;
|
||||
struct ship *from, *to;
|
||||
int sections;
|
||||
char isdefense;
|
||||
{
|
||||
int n;
|
||||
register struct BP *bp;
|
||||
struct BP *bp;
|
||||
|
||||
bp = isdefense ? from->file->DBP : from->file->OBP;
|
||||
for (n = 0; n < NBP && bp[n].turnsent; n++)
|
||||
|
@ -282,12 +290,13 @@ char isdefense;
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
toughmelee(ship, to, isdefense, count)
|
||||
register struct ship *ship, *to;
|
||||
struct ship *ship, *to;
|
||||
int isdefense, count;
|
||||
{
|
||||
register struct BP *bp;
|
||||
register obp = 0;
|
||||
struct BP *bp;
|
||||
int obp = 0;
|
||||
int n, OBP = 0, DBP = 0, dbp = 0;
|
||||
int qual;
|
||||
|
||||
|
@ -314,26 +323,28 @@ int isdefense, count;
|
|||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
reload()
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
|
||||
foreachship(sp) {
|
||||
sp->file->loadwith = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
checksails()
|
||||
{
|
||||
register struct ship *sp;
|
||||
register int rig, full;
|
||||
struct ship *sp;
|
||||
int rig, full;
|
||||
struct ship *close;
|
||||
|
||||
foreachship(sp) {
|
||||
if (sp->file->captain[0] != 0)
|
||||
continue;
|
||||
rig = sp->specs->rig1;
|
||||
if (windspeed == 6 || windspeed == 5 && sp->specs->class > 4)
|
||||
if (windspeed == 6 || (windspeed == 5 && sp->specs->class > 4))
|
||||
rig = 0;
|
||||
if (rig && sp->specs->crew3) {
|
||||
close = closestenemy(sp, 0, 0);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dr_4.c,v 1.4 1997/01/07 12:42:15 tls Exp $ */
|
||||
/* $NetBSD: dr_4.c,v 1.5 1997/10/13 19:43:39 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,20 +33,23 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)dr_4.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: dr_4.c,v 1.4 1997/01/07 12:42:15 tls Exp $";
|
||||
__RCSID("$NetBSD: dr_4.c,v 1.5 1997/10/13 19:43:39 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "extern.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void
|
||||
ungrap(from, to)
|
||||
register struct ship *from, *to;
|
||||
struct ship *from, *to;
|
||||
{
|
||||
register k;
|
||||
int k;
|
||||
char friend;
|
||||
|
||||
if ((k = grappled2(from, to)) == 0)
|
||||
|
@ -60,8 +63,9 @@ register struct ship *from, *to;
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
grap(from, to)
|
||||
register struct ship *from, *to;
|
||||
struct ship *from, *to;
|
||||
{
|
||||
if (capship(from)->nationality != capship(to)->nationality && die() > 2)
|
||||
return;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dr_5.c,v 1.4 1997/01/07 12:42:15 tls Exp $ */
|
||||
/* $NetBSD: dr_5.c,v 1.5 1997/10/13 19:43:47 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,22 +33,24 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)dr_5.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: dr_5.c,v 1.4 1997/01/07 12:42:15 tls Exp $";
|
||||
__RCSID("$NetBSD: dr_5.c,v 1.5 1997/10/13 19:43:47 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "extern.h"
|
||||
|
||||
void
|
||||
subtract(from, totalfrom, crewfrom, fromcap, pcfrom)
|
||||
struct ship *from, *fromcap;
|
||||
int pcfrom;
|
||||
register int totalfrom, crewfrom[3];
|
||||
int totalfrom, crewfrom[3];
|
||||
{
|
||||
register int n;
|
||||
int n;
|
||||
|
||||
if (fromcap == from && totalfrom) { /* if not captured */
|
||||
for (n = 0; n < 3; n++) {
|
||||
|
@ -68,15 +70,16 @@ register int totalfrom, crewfrom[3];
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
mensent(from, to, crew, captured, pc, isdefense)
|
||||
struct ship *from, *to, **captured;
|
||||
int crew[3], *pc;
|
||||
char isdefense;
|
||||
{ /* returns # of crew squares sent */
|
||||
int men = 0;
|
||||
register int n;
|
||||
int n;
|
||||
int c1, c2, c3;
|
||||
register struct BP *bp;
|
||||
struct BP *bp;
|
||||
|
||||
*pc = from->file->pcrew;
|
||||
*captured = from->file->captured;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dr_main.c,v 1.4 1995/04/22 10:36:52 cgd Exp $ */
|
||||
/* $NetBSD: dr_main.c,v 1.5 1997/10/13 19:43:54 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,20 +33,24 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)dr_main.c 8.2 (Berkeley) 4/16/94";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: dr_main.c,v 1.4 1995/04/22 10:36:52 cgd Exp $";
|
||||
__RCSID("$NetBSD: dr_main.c,v 1.5 1997/10/13 19:43:54 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "driver.h"
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int
|
||||
dr_main()
|
||||
{
|
||||
register int n;
|
||||
register struct ship *sp;
|
||||
int n;
|
||||
struct ship *sp;
|
||||
int nat[NNATION];
|
||||
int value = 0;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: extern.h,v 1.3 1997/04/19 07:35:33 thorpej Exp $ */
|
||||
/* $NetBSD: extern.h,v 1.4 1997/10/13 19:44:01 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -185,10 +185,10 @@ struct File {
|
|||
int index;
|
||||
char captain[20]; /* 0 */
|
||||
short points; /* 20 */
|
||||
char loadL; /* 22 */
|
||||
char loadR; /* 24 */
|
||||
char readyL; /* 26 */
|
||||
char readyR; /* 28 */
|
||||
unsigned char loadL; /* 22 */
|
||||
unsigned char loadR; /* 24 */
|
||||
unsigned char readyL; /* 26 */
|
||||
unsigned char readyR; /* 28 */
|
||||
struct BP OBP[NBP]; /* 30 */
|
||||
struct BP DBP[NBP]; /* 48 */
|
||||
char struck; /* 66 */
|
||||
|
@ -206,7 +206,7 @@ struct File {
|
|||
char FS; /* 230 */
|
||||
char explode; /* 232 */
|
||||
char sink; /* 234 */
|
||||
char dir;
|
||||
unsigned char dir;
|
||||
short col;
|
||||
short row;
|
||||
char loadwith;
|
||||
|
@ -216,7 +216,7 @@ struct File {
|
|||
struct ship {
|
||||
char *shipname; /* 0 */
|
||||
struct shipspecs *specs; /* 2 */
|
||||
char nationality; /* 4 */
|
||||
unsigned char nationality; /* 4 */
|
||||
short shiprow; /* 6 */
|
||||
short shipcol; /* 8 */
|
||||
char shipdir; /* 10 */
|
||||
|
@ -227,7 +227,7 @@ struct scenario {
|
|||
char winddir; /* 0 */
|
||||
char windspeed; /* 2 */
|
||||
char windchange; /* 4 */
|
||||
char vessels; /* 12 */
|
||||
unsigned char vessels; /* 12 */
|
||||
char *name; /* 14 */
|
||||
struct ship ship[NSHIP]; /* 16 */
|
||||
};
|
||||
|
@ -239,9 +239,9 @@ struct shipspecs {
|
|||
char fs;
|
||||
char ta;
|
||||
short guns;
|
||||
char class;
|
||||
unsigned char class;
|
||||
char hull;
|
||||
char qual;
|
||||
unsigned char qual;
|
||||
char crew1;
|
||||
char crew2;
|
||||
char crew3;
|
||||
|
@ -298,16 +298,138 @@ int alive;
|
|||
int people;
|
||||
char hasdriver;
|
||||
|
||||
char *info();
|
||||
char *quality();
|
||||
double arctan();
|
||||
char *saywhat();
|
||||
struct ship *closestenemy();
|
||||
/* assorted.c */
|
||||
void table __P((int, int, int, struct ship *, struct ship *, int));
|
||||
void Cleansnag __P((struct ship *, struct ship *, int, int));
|
||||
|
||||
char *calloc();
|
||||
char *rindex();
|
||||
char *strcpy();
|
||||
char *strcat();
|
||||
char *strncpy();
|
||||
char *getenv();
|
||||
char *gets();
|
||||
/* dr_1.c */
|
||||
void unfoul __P((void));
|
||||
void boardcomp __P((void));
|
||||
int fightitout __P((struct ship *, struct ship *, int));
|
||||
void resolve __P((void));
|
||||
void compcombat __P((void));
|
||||
int next __P((void));
|
||||
|
||||
/* dr_2.c */
|
||||
void thinkofgrapples __P((void));
|
||||
void checkup __P((void));
|
||||
void prizecheck __P((void));
|
||||
int strend __P((char *));
|
||||
void closeon __P((struct ship *, struct ship *, char[], int, int, int));
|
||||
int score __P((char[], struct ship *, struct ship *, int));
|
||||
void move __P((char *, struct ship *, unsigned char *, short *, short *, char *));
|
||||
void try __P((char[], char [], int, int, int, int, int, struct ship *,
|
||||
struct ship *, int *, int));
|
||||
void rmend __P((char *));
|
||||
|
||||
/* dr_3.c */
|
||||
void moveall __P((void));
|
||||
int stillmoving __P((int));
|
||||
int isolated __P((struct ship *));
|
||||
int push __P((struct ship *, struct ship *));
|
||||
void step __P((int, struct ship *, char *));
|
||||
void sendbp __P((struct ship *, struct ship *, int, int));
|
||||
int toughmelee __P((struct ship *, struct ship *, int, int));
|
||||
void reload __P((void));
|
||||
void checksails __P((void));
|
||||
|
||||
/* dr_4.c */
|
||||
void ungrap __P((struct ship *, struct ship *));
|
||||
void grap __P((struct ship *, struct ship *));
|
||||
|
||||
/* dr_5.c */
|
||||
void subtract __P((struct ship *, int, int [3], struct ship *, int));
|
||||
int mensent __P((struct ship *, struct ship *, int[3], struct ship **, int *,
|
||||
int));
|
||||
|
||||
/* dr_main.c */
|
||||
int dr_main __P((void));
|
||||
|
||||
/* game.c */
|
||||
int maxturns __P((struct ship *, char *));
|
||||
int maxmove __P((struct ship *, int, int));
|
||||
|
||||
/* lo_main.c */
|
||||
int lo_main __P((void));
|
||||
|
||||
/* misc.c */
|
||||
int range __P((struct ship *, struct ship *));
|
||||
struct ship *closestenemy __P((struct ship *, int, int));
|
||||
int angle __P((int, int));
|
||||
int gunsbear __P((struct ship *, struct ship *));
|
||||
int portside __P((struct ship *, struct ship *, int));
|
||||
int colours __P((struct ship *));
|
||||
void logger __P((struct ship *));
|
||||
|
||||
/* parties.c */
|
||||
int meleeing __P((struct ship *, struct ship *));
|
||||
int boarding __P((struct ship *, int));
|
||||
void unboard __P((struct ship *, struct ship *, int));
|
||||
|
||||
/* pl_1.c */
|
||||
void leave __P((int));
|
||||
void choke __P((int));
|
||||
void child __P((int));
|
||||
|
||||
/* pl_2.c */
|
||||
void play __P((void));
|
||||
|
||||
/* pl_3.c */
|
||||
void acceptcombat __P((void));
|
||||
void grapungrap __P((void));
|
||||
void unfoulplayer __P((void));
|
||||
|
||||
/* pl_4.c */
|
||||
void changesail __P((void));
|
||||
void acceptsignal __P((void));
|
||||
void lookout __P((void));
|
||||
char *saywhat __P((struct ship *, int));
|
||||
void eyeball __P((struct ship *));
|
||||
|
||||
/* pl_5.c */
|
||||
void acceptmove __P((void));
|
||||
void acceptboard __P((void));
|
||||
void parties __P((int[3], struct ship *, int, int));
|
||||
|
||||
/* pl_6.c */
|
||||
void repair __P((void));
|
||||
int turned __P((void));
|
||||
void loadplayer __P((void));
|
||||
|
||||
/* pl_7.c */
|
||||
void initscreen __P((void));
|
||||
void cleanupscreen __P((void));
|
||||
void newturn __P((int));
|
||||
void Signal __P((const char *, struct ship *, ...));
|
||||
void Msg __P((const char *, ...));
|
||||
void Scroll __P((void));
|
||||
void prompt __P((char *, struct ship *));
|
||||
void endprompt __P((int));
|
||||
int sgetch __P((char *, struct ship *, int));
|
||||
void sgetstr __P((char *, char *, int));
|
||||
void draw_screen __P((void));
|
||||
void draw_view __P((void));
|
||||
void draw_turn __P((void));
|
||||
void draw_stat __P((void));
|
||||
void draw_slot __P((void));
|
||||
void draw_board __P((void));
|
||||
void centerview __P((void));
|
||||
void upview __P((void));
|
||||
void downview __P((void));
|
||||
void leftview __P((void));
|
||||
void rightview __P((void));
|
||||
void adjustview __P((void));
|
||||
|
||||
/* pl_main.c */
|
||||
int pl_main __P((void));
|
||||
void initialize __P((void));
|
||||
|
||||
/* sync.c */
|
||||
void fmtship __P((char *, size_t, const char *, struct ship *));
|
||||
void makesignal __P((struct ship *, const char *, struct ship *, ...));
|
||||
int sync_exists __P((int));
|
||||
int sync_open __P((void));
|
||||
void sync_close __P((int));
|
||||
void Write __P((int, struct ship *, int, long, long, long, long));
|
||||
int Sync __P((void));
|
||||
int sync_update __P((int, struct ship *, long, long, long, long));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: game.c,v 1.4 1997/01/07 12:42:19 tls Exp $ */
|
||||
/* $NetBSD: game.c,v 1.5 1997/10/13 19:44:09 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,24 +33,26 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)game.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: game.c,v 1.4 1997/01/07 12:42:19 tls Exp $";
|
||||
__RCSID("$NetBSD: game.c,v 1.5 1997/10/13 19:44:09 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "extern.h"
|
||||
|
||||
int
|
||||
maxturns(ship, af)
|
||||
register struct ship *ship;
|
||||
struct ship *ship;
|
||||
char *af;
|
||||
{
|
||||
register int turns;
|
||||
int turns;
|
||||
|
||||
turns = ship->specs->ta;
|
||||
if (*af = (ship->file->drift > 1 && turns)) {
|
||||
if ((*af = (ship->file->drift > 1 && turns)) != NULL) {
|
||||
turns--;
|
||||
if (ship->file->FS == 1)
|
||||
turns = 0;
|
||||
|
@ -58,11 +60,12 @@ char *af;
|
|||
return turns;
|
||||
}
|
||||
|
||||
int
|
||||
maxmove(ship, dir, fs)
|
||||
register struct ship *ship;
|
||||
struct ship *ship;
|
||||
int dir, fs;
|
||||
{
|
||||
register int riggone = 0, Move, flank = 0;
|
||||
int riggone = 0, Move, flank = 0;
|
||||
|
||||
Move = ship->specs->bs;
|
||||
if (!ship->specs->rig1)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: globals.c,v 1.5 1997/01/07 12:42:20 tls Exp $ */
|
||||
/* $NetBSD: globals.c,v 1.6 1997/10/13 19:44:17 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,11 +33,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)globals.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: globals.c,v 1.5 1997/01/07 12:42:20 tls Exp $";
|
||||
__RCSID("$NetBSD: globals.c,v 1.6 1997/10/13 19:44:17 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -52,232 +53,264 @@ struct scenario scene[] = {
|
|||
* char *name;
|
||||
* struct ship ship[NSHIP];
|
||||
*/
|
||||
5, 3, 5, 2, "Ranger vs. Drake",
|
||||
{
|
||||
{ "Ranger", specs+0, N_A, 7, 20, 4, 0 },
|
||||
{ "Drake", specs+1, N_B, 7, 31, 5, 0 }
|
||||
{ 5, 3, 5, 2, "Ranger vs. Drake",
|
||||
{
|
||||
{ "Ranger", specs+0, N_A, 7, 20, 4, 0 },
|
||||
{ "Drake", specs+1, N_B, 7, 31, 5, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 6, 2, "The Battle of Flamborough Head",
|
||||
{
|
||||
{ "Bonhomme Rich", specs+2, N_A, 13, 40, 2, 0 },
|
||||
{ "Serapis", specs+3, N_B, 2, 42, 2, 0 }
|
||||
{ 1, 3, 6, 2, "The Battle of Flamborough Head",
|
||||
{
|
||||
{ "Bonhomme Rich", specs+2, N_A, 13, 40, 2, 0 },
|
||||
{ "Serapis", specs+3, N_B, 2, 42, 2, 0 }
|
||||
}
|
||||
},
|
||||
5, 5, 5, 10, "Arbuthnot and Des Touches",
|
||||
{
|
||||
{ "America", specs+4, N_B, 7, 37, 4, 0 },
|
||||
{ "Befford", specs+5, N_B, 5, 35, 4, 0 },
|
||||
{ "Adamant", specs+6, N_B, 3, 33, 4, 0 },
|
||||
{ "London", specs+7, N_B, 1, 31, 4, 0 },
|
||||
{ "Royal Oak", specs+8, N_B, -1, 29, 4, 0 },
|
||||
{ "Neptune", specs+9, N_F, 6, 44, 4, 0 },
|
||||
{ "Duc Bougogne", specs+10, N_F, 8, 46, 4, 0 },
|
||||
{ "Conquerant", specs+48, N_F, 10, 48, 4, 0 },
|
||||
{ "Provence", specs+11, N_F, 12, 50, 4, 0 },
|
||||
{ "Romulus", specs+12, N_F, 20, 58, 4, 0 }
|
||||
{ 5, 5, 5, 10, "Arbuthnot and Des Touches",
|
||||
{
|
||||
{ "America", specs+4, N_B, 7, 37, 4, 0 },
|
||||
{ "Befford", specs+5, N_B, 5, 35, 4, 0 },
|
||||
{ "Adamant", specs+6, N_B, 3, 33, 4, 0 },
|
||||
{ "London", specs+7, N_B, 1, 31, 4, 0 },
|
||||
{ "Royal Oak", specs+8, N_B, -1, 29, 4, 0 },
|
||||
{ "Neptune", specs+9, N_F, 6, 44, 4, 0 },
|
||||
{ "Duc Bougogne", specs+10, N_F, 8, 46, 4, 0 },
|
||||
{ "Conquerant", specs+48, N_F, 10, 48, 4, 0 },
|
||||
{ "Provence", specs+11, N_F, 12, 50, 4, 0 },
|
||||
{ "Romulus", specs+12, N_F, 20, 58, 4, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 5, 10, "Suffren and Hughes",
|
||||
{
|
||||
{ "Monmouth", specs+52, N_B, 9, 45, 2, 0 },
|
||||
{ "Hero", specs+5, N_B, 13, 49, 2, 0 },
|
||||
{ "Isis", specs+6, N_B, 12, 48, 2, 0 },
|
||||
{ "Superb", specs+50, N_B, 10, 46, 2, 0 },
|
||||
{ "Burford", specs+48, N_B, 11, 47, 2, 0 },
|
||||
{ "Flamband", specs+13, N_F, 7, 59, 4, 0 },
|
||||
{ "Annibal", specs+9, N_F, 4, 56, 4, 0 },
|
||||
{ "Severe", specs+11, N_F, 2, 54, 4, 0 },
|
||||
{ "Brilliant", specs+49, N_F, -1, 51, 4, 0 },
|
||||
{ "Sphinx", specs+51, N_F, -5, 47, 4, 0 }
|
||||
{ 1, 3, 5, 10, "Suffren and Hughes",
|
||||
{
|
||||
{ "Monmouth", specs+52, N_B, 9, 45, 2, 0 },
|
||||
{ "Hero", specs+5, N_B, 13, 49, 2, 0 },
|
||||
{ "Isis", specs+6, N_B, 12, 48, 2, 0 },
|
||||
{ "Superb", specs+50, N_B, 10, 46, 2, 0 },
|
||||
{ "Burford", specs+48, N_B, 11, 47, 2, 0 },
|
||||
{ "Flamband", specs+13, N_F, 7, 59, 4, 0 },
|
||||
{ "Annibal", specs+9, N_F, 4, 56, 4, 0 },
|
||||
{ "Severe", specs+11, N_F, 2, 54, 4, 0 },
|
||||
{ "Brilliant", specs+49, N_F, -1, 51, 4, 0 },
|
||||
{ "Sphinx", specs+51, N_F, -5, 47, 4, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 4, 2, "Nymphe vs. Cleopatre",
|
||||
{
|
||||
{ "Nymphe", specs+14, N_B, 13, 30, 2, 0 },
|
||||
{ "Cleopatre", specs+15, N_F, 3, 41, 2, 0 }
|
||||
{ 1, 3, 4, 2, "Nymphe vs. Cleopatre",
|
||||
{
|
||||
{ "Nymphe", specs+14, N_B, 13, 30, 2, 0 },
|
||||
{ "Cleopatre", specs+15, N_F, 3, 41, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 5, 2, "Mars vs. Hercule",
|
||||
{
|
||||
{ "Mars", specs+16, N_B, 13, 30, 2, 0 },
|
||||
{ "Hercule", specs+17, N_F, 3, 41, 2, 0 }
|
||||
{ 1, 3, 5, 2, "Mars vs. Hercule",
|
||||
{
|
||||
{ "Mars", specs+16, N_B, 13, 30, 2, 0 },
|
||||
{ "Hercule", specs+17, N_F, 3, 41, 2, 0 }
|
||||
}
|
||||
},
|
||||
5, 3, 5, 2, "Ambuscade vs. Baionnaise",
|
||||
{
|
||||
{ "Ambuscade", specs+18, N_B, 13, 30, 2, 0 },
|
||||
{ "Baionnaise", specs+19, N_F, 3, 41, 2, 0 }
|
||||
{ 5, 3, 5, 2, "Ambuscade vs. Baionnaise",
|
||||
{
|
||||
{ "Ambuscade", specs+18, N_B, 13, 30, 2, 0 },
|
||||
{ "Baionnaise", specs+19, N_F, 3, 41, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 5, 6, 2, "Constellation vs. Insurgent",
|
||||
{
|
||||
{ "Constellation", specs+20, N_A, 9, 50, 8, 0 },
|
||||
{ "Insurgent", specs+22, N_F, 4, 24, 2, 0 }
|
||||
{ 1, 5, 6, 2, "Constellation vs. Insurgent",
|
||||
{
|
||||
{ "Constellation", specs+20, N_A, 9, 50, 8, 0 },
|
||||
{ "Insurgent", specs+22, N_F, 4, 24, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 5, 2, "Constellation vs. Vengeance",
|
||||
{
|
||||
{ "Constellation", specs+20, N_A, 12, 40, 2, 0 },
|
||||
{ "Vengeance", specs+21, N_F, 1, 43, 2, 0 }
|
||||
{ 1, 3, 5, 2, "Constellation vs. Vengeance",
|
||||
{
|
||||
{ "Constellation", specs+20, N_A, 12, 40, 2, 0 },
|
||||
{ "Vengeance", specs+21, N_F, 1, 43, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 6, 10, "The Battle of Lissa",
|
||||
{
|
||||
{ "Amphion", specs+23, N_B, 8, 50, 4, 0 },
|
||||
{ "Active", specs+24, N_B, 6, 48, 4, 0 },
|
||||
{ "Volage", specs+25, N_B, 4, 46, 4, 0 },
|
||||
{ "Cerberus", specs+26, N_B, 2, 44, 4, 0 },
|
||||
{ "Favorite", specs+27, N_F, 9, 34, 2, 0 },
|
||||
{ "Flore", specs+21, N_F, 13, 39, 2, 0 },
|
||||
{ "Danae", specs+64, N_F, 15, 37, 2, 0 },
|
||||
{ "Bellona", specs+28, N_F, 17, 35, 2, 0 },
|
||||
{ "Corona", specs+29, N_F, 12, 31, 2, 0 },
|
||||
{ "Carolina", specs+30, N_F, 15, 28, 2, 0 }
|
||||
{ 1, 3, 6, 10, "The Battle of Lissa",
|
||||
{
|
||||
{ "Amphion", specs+23, N_B, 8, 50, 4, 0 },
|
||||
{ "Active", specs+24, N_B, 6, 48, 4, 0 },
|
||||
{ "Volage", specs+25, N_B, 4, 46, 4, 0 },
|
||||
{ "Cerberus", specs+26, N_B, 2, 44, 4, 0 },
|
||||
{ "Favorite", specs+27, N_F, 9, 34, 2, 0 },
|
||||
{ "Flore", specs+21, N_F, 13, 39, 2, 0 },
|
||||
{ "Danae", specs+64, N_F, 15, 37, 2, 0 },
|
||||
{ "Bellona", specs+28, N_F, 17, 35, 2, 0 },
|
||||
{ "Corona", specs+29, N_F, 12, 31, 2, 0 },
|
||||
{ "Carolina", specs+30, N_F, 15, 28, 2, 0 }
|
||||
}
|
||||
},
|
||||
2, 5, 6, 2, "Constitution vs. Guerriere",
|
||||
{
|
||||
{ "Constitution", specs+31, N_A, 7, 35, 1, 0 },
|
||||
{ "Guerriere", specs+32, N_B, 7, 47, 4, 0 }
|
||||
{ 2, 5, 6, 2, "Constitution vs. Guerriere",
|
||||
{
|
||||
{ "Constitution", specs+31, N_A, 7, 35, 1, 0 },
|
||||
{ "Guerriere", specs+32, N_B, 7, 47, 4, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 5, 2, "United States vs. Macedonian",
|
||||
{
|
||||
{ "United States", specs+33, N_A, 1, 52, 6, 0 },
|
||||
{ "Macedonian", specs+34, N_B, 14, 40, 1, 0 }
|
||||
{ 1, 3, 5, 2, "United States vs. Macedonian",
|
||||
{
|
||||
{ "United States", specs+33, N_A, 1, 52, 6, 0 },
|
||||
{ "Macedonian", specs+34, N_B, 14, 40, 1, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 6, 2, "Constitution vs. Java",
|
||||
{
|
||||
{ "Constitution", specs+31, N_A, 1, 40, 2, 0 },
|
||||
{ "Java", specs+35, N_B, 11, 40, 2, 0 }
|
||||
{ 1, 3, 6, 2, "Constitution vs. Java",
|
||||
{
|
||||
{ "Constitution", specs+31, N_A, 1, 40, 2, 0 },
|
||||
{ "Java", specs+35, N_B, 11, 40, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 5, 2, "Chesapeake vs. Shannon",
|
||||
{
|
||||
{ "Chesapeake", specs+36, N_A, 13, 40, 2, 0 },
|
||||
{ "Shannon", specs+37, N_B, 1, 42, 2, 0 }
|
||||
{ 1, 3, 5, 2, "Chesapeake vs. Shannon",
|
||||
{
|
||||
{ "Chesapeake", specs+36, N_A, 13, 40, 2, 0 },
|
||||
{ "Shannon", specs+37, N_B, 1, 42, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 1, 6, 5, "The Battle of Lake Erie",
|
||||
{
|
||||
{ "Lawrence", specs+38, N_A, 4, 55, 8, 0 },
|
||||
{ "Niagara", specs+42, N_A, 7, 61, 8, 0 },
|
||||
{ "Lady Prevost", specs+39, N_B, 4, 25, 2, 0 },
|
||||
{ "Detroit", specs+40, N_B, 7, 22, 2, 0 },
|
||||
{ "Q. Charlotte", specs+41, N_B, 10, 19, 2, 0 }
|
||||
{ 1, 1, 6, 5, "The Battle of Lake Erie",
|
||||
{
|
||||
{ "Lawrence", specs+38, N_A, 4, 55, 8, 0 },
|
||||
{ "Niagara", specs+42, N_A, 7, 61, 8, 0 },
|
||||
{ "Lady Prevost", specs+39, N_B, 4, 25, 2, 0 },
|
||||
{ "Detroit", specs+40, N_B, 7, 22, 2, 0 },
|
||||
{ "Q. Charlotte", specs+41, N_B, 10, 19, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 1, 5, 2, "Wasp vs. Reindeer",
|
||||
{
|
||||
{ "Wasp", specs+42, N_A, 3, 41, 2, 0 },
|
||||
{ "Reindeer", specs+43, N_B, 10, 48, 2, 0 }
|
||||
{ 1, 1, 5, 2, "Wasp vs. Reindeer",
|
||||
{
|
||||
{ "Wasp", specs+42, N_A, 3, 41, 2, 0 },
|
||||
{ "Reindeer", specs+43, N_B, 10, 48, 2, 0 }
|
||||
}
|
||||
},
|
||||
1, 2, 5, 3, "Constitution vs. Cyane and Levant",
|
||||
{
|
||||
{ "Constitution", specs+31, N_A, 10, 45, 2, 0 },
|
||||
{ "Cyane", specs+44, N_B, 3, 37, 2, 0 },
|
||||
{ "Levant", specs+45, N_B, 5, 35, 2, 0 }
|
||||
{ 1, 2, 5, 3, "Constitution vs. Cyane and Levant",
|
||||
{
|
||||
{ "Constitution", specs+31, N_A, 10, 45, 2, 0 },
|
||||
{ "Cyane", specs+44, N_B, 3, 37, 2, 0 },
|
||||
{ "Levant", specs+45, N_B, 5, 35, 2, 0 }
|
||||
}
|
||||
},
|
||||
5, 5, 5, 3, "Pellew vs. Droits de L'Homme",
|
||||
{
|
||||
{ "Indefatigable", specs+46, N_B, 12, 45, 6, 0 },
|
||||
{ "Amazon", specs+47, N_B, 9, 48, 6, 0 },
|
||||
{ "Droits L'Hom", specs+48, N_F, 3, 28, 5, 0 }
|
||||
{ 5, 5, 5, 3, "Pellew vs. Droits de L'Homme",
|
||||
{
|
||||
{ "Indefatigable", specs+46, N_B, 12, 45, 6, 0 },
|
||||
{ "Amazon", specs+47, N_B, 9, 48, 6, 0 },
|
||||
{ "Droits L'Hom", specs+48, N_F, 3, 28, 5, 0 }
|
||||
}
|
||||
},
|
||||
2, 2, 3, 10, "Algeciras",
|
||||
{
|
||||
{ "Caesar", specs+49, N_B, 7, 70, 6, 0 },
|
||||
{ "Pompee", specs+50, N_B, 5, 72, 6, 0 },
|
||||
{ "Spencer", specs+5, N_B, 3, 74, 6, 0 },
|
||||
{ "Hannibal", specs+7, N_B, 1, 76, 6, 0 },
|
||||
{ "Real-Carlos", specs+53, N_S, 9, 20, 3, 0 },
|
||||
{ "San Fernando", specs+54, N_S, 11, 16, 3, 0 },
|
||||
{ "Argonauta", specs+55, N_S, 10, 14, 4, 0 },
|
||||
{ "San Augustine", specs+56, N_S, 6, 22, 4, 0 },
|
||||
{ "Indomptable", specs+51, N_F, 7, 23, 5, 0 },
|
||||
{ "Desaix", specs+52, N_F, 7, 27, 7, 0 }
|
||||
{ 2, 2, 3, 10, "Algeciras",
|
||||
{
|
||||
{ "Caesar", specs+49, N_B, 7, 70, 6, 0 },
|
||||
{ "Pompee", specs+50, N_B, 5, 72, 6, 0 },
|
||||
{ "Spencer", specs+5, N_B, 3, 74, 6, 0 },
|
||||
{ "Hannibal", specs+7, N_B, 1, 76, 6, 0 },
|
||||
{ "Real-Carlos", specs+53, N_S, 9, 20, 3, 0 },
|
||||
{ "San Fernando", specs+54, N_S, 11, 16, 3, 0 },
|
||||
{ "Argonauta", specs+55, N_S, 10, 14, 4, 0 },
|
||||
{ "San Augustine", specs+56, N_S, 6, 22, 4, 0 },
|
||||
{ "Indomptable", specs+51, N_F, 7, 23, 5, 0 },
|
||||
{ "Desaix", specs+52, N_F, 7, 27, 7, 0 }
|
||||
}
|
||||
},
|
||||
5, 3, 6, 7, "Lake Champlain",
|
||||
{
|
||||
{ "Saratoga", specs+60, N_A, 8, 10, 1, 0 },
|
||||
{ "Eagle", specs+61, N_A, 9, 13, 2, 0 },
|
||||
{ "Ticonderoga", specs+62, N_A, 12, 17, 3, 0 },
|
||||
{ "Preble", specs+63, N_A, 14, 20, 2, 0 },
|
||||
{ "Confiance", specs+57, N_B, 4, 70, 6, 0 },
|
||||
{ "Linnet", specs+58, N_B, 7, 68, 6, 0 },
|
||||
{ "Chubb", specs+59, N_B, 10, 65, 6, 0 }
|
||||
{ 5, 3, 6, 7, "Lake Champlain",
|
||||
{
|
||||
{ "Saratoga", specs+60, N_A, 8, 10, 1, 0 },
|
||||
{ "Eagle", specs+61, N_A, 9, 13, 2, 0 },
|
||||
{ "Ticonderoga", specs+62, N_A, 12, 17, 3, 0 },
|
||||
{ "Preble", specs+63, N_A, 14, 20, 2, 0 },
|
||||
{ "Confiance", specs+57, N_B, 4, 70, 6, 0 },
|
||||
{ "Linnet", specs+58, N_B, 7, 68, 6, 0 },
|
||||
{ "Chubb", specs+59, N_B, 10, 65, 6, 0 }
|
||||
}
|
||||
},
|
||||
5, 3, 6, 4, "Last Voyage of the USS President",
|
||||
{
|
||||
{ "President", specs+67, N_A, 12, 42, 5, 0 },
|
||||
{ "Endymion", specs+64, N_B, 5, 42, 5, 0 },
|
||||
{ "Pomone", specs+65, N_B, 7, 82, 6, 0 },
|
||||
{ "Tenedos", specs+66, N_B, 7, -1, 4, 0 }
|
||||
{ 5, 3, 6, 4, "Last Voyage of the USS President",
|
||||
{
|
||||
{ "President", specs+67, N_A, 12, 42, 5, 0 },
|
||||
{ "Endymion", specs+64, N_B, 5, 42, 5, 0 },
|
||||
{ "Pomone", specs+65, N_B, 7, 82, 6, 0 },
|
||||
{ "Tenedos", specs+66, N_B, 7, -1, 4, 0 }
|
||||
}
|
||||
},
|
||||
7, 5, 5, 2, "Hornblower and the Natividad",
|
||||
{
|
||||
{ "Lydia", specs+68, N_B, 12, 40, 2, 0 },
|
||||
{ "Natividad", specs+69, N_S, 2, 40, 4, 0 }
|
||||
{ 7, 5, 5, 2, "Hornblower and the Natividad",
|
||||
{
|
||||
{ "Lydia", specs+68, N_B, 12, 40, 2, 0 },
|
||||
{ "Natividad", specs+69, N_S, 2, 40, 4, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 6, 2, "Curse of the Flying Dutchman",
|
||||
{
|
||||
{ "Piece of Cake", specs+19, N_S, 7, 40, 2, 0 },
|
||||
{ "Flying Dutchy", specs+71, N_F, 7, 41, 1, 0 }
|
||||
{ 1, 3, 6, 2, "Curse of the Flying Dutchman",
|
||||
{
|
||||
{ "Piece of Cake", specs+19, N_S, 7, 40, 2, 0 },
|
||||
{ "Flying Dutchy", specs+71, N_F, 7, 41, 1, 0 }
|
||||
}
|
||||
},
|
||||
1, 4, 1, 4, "The South Pacific",
|
||||
{
|
||||
{ "USS Scurvy", specs+70, N_A, 7, 40, 1, 0 },
|
||||
{ "HMS Tahiti", specs+71, N_B, 12, 60, 1, 0 },
|
||||
{ "Australian", specs+18, N_S, 5, 20, 8, 0 },
|
||||
{ "Bikini Atoll", specs+63, N_F, 2, 60, 4, 0 }
|
||||
{ 1, 4, 1, 4, "The South Pacific",
|
||||
{
|
||||
{ "USS Scurvy", specs+70, N_A, 7, 40, 1, 0 },
|
||||
{ "HMS Tahiti", specs+71, N_B, 12, 60, 1, 0 },
|
||||
{ "Australian", specs+18, N_S, 5, 20, 8, 0 },
|
||||
{ "Bikini Atoll", specs+63, N_F, 2, 60, 4, 0 }
|
||||
}
|
||||
},
|
||||
7, 3, 6, 5, "Hornblower and the battle of Rosas bay",
|
||||
{
|
||||
{ "Sutherland", specs+5, N_B, 13, 30, 2, 0 },
|
||||
{ "Turenne", specs+10, N_F, 9, 35, 6, 0 },
|
||||
{ "Nightmare", specs+9, N_F, 7, 37, 6, 0 },
|
||||
{ "Paris", specs+53, N_F, 3, 45, 4, 0 },
|
||||
{ "Napoleon", specs+56, N_F, 1, 40, 6, 0 }
|
||||
{ 7, 3, 6, 5, "Hornblower and the battle of Rosas bay",
|
||||
{
|
||||
{ "Sutherland", specs+5, N_B, 13, 30, 2, 0 },
|
||||
{ "Turenne", specs+10, N_F, 9, 35, 6, 0 },
|
||||
{ "Nightmare", specs+9, N_F, 7, 37, 6, 0 },
|
||||
{ "Paris", specs+53, N_F, 3, 45, 4, 0 },
|
||||
{ "Napoleon", specs+56, N_F, 1, 40, 6, 0 }
|
||||
}
|
||||
},
|
||||
6, 4, 7, 5, "Cape Horn",
|
||||
{
|
||||
{ "Concord", specs+51, N_A, 3, 20, 4, 0 },
|
||||
{ "Berkeley", specs+7, N_A, 5, 50, 5, 0 },
|
||||
{ "Thames", specs+71, N_B, 10, 40, 1, 0 },
|
||||
{ "Madrid", specs+53, N_S, 13, 60, 8, 0 },
|
||||
{ "Musket", specs+10, N_F, 10, 60, 7, 0 }
|
||||
{ 6, 4, 7, 5, "Cape Horn",
|
||||
{
|
||||
{ "Concord", specs+51, N_A, 3, 20, 4, 0 },
|
||||
{ "Berkeley", specs+7, N_A, 5, 50, 5, 0 },
|
||||
{ "Thames", specs+71, N_B, 10, 40, 1, 0 },
|
||||
{ "Madrid", specs+53, N_S, 13, 60, 8, 0 },
|
||||
{ "Musket", specs+10, N_F, 10, 60, 7, 0 }
|
||||
}
|
||||
},
|
||||
8, 3, 7, 3, "New Orleans",
|
||||
{
|
||||
{ "Alligator", specs+71, N_A, 13, 5, 1, 0 },
|
||||
{ "Firefly", specs+50, N_B, 10, 20, 8, 0 },
|
||||
{ "Cypress", specs+46, N_B, 5, 10, 6, 0 }
|
||||
{ 8, 3, 7, 3, "New Orleans",
|
||||
{
|
||||
{ "Alligator", specs+71, N_A, 13, 5, 1, 0 },
|
||||
{ "Firefly", specs+50, N_B, 10, 20, 8, 0 },
|
||||
{ "Cypress", specs+46, N_B, 5, 10, 6, 0 }
|
||||
}
|
||||
},
|
||||
5, 3, 7, 3, "Botany Bay",
|
||||
{
|
||||
{ "Shark", specs+11, N_B, 6, 15, 4, 0 },
|
||||
{ "Coral Snake", specs+31, N_F, 3, 30, 6, 0 },
|
||||
{ "Sea Lion", specs+33, N_F, 13, 50, 8, 0 }
|
||||
{ 5, 3, 7, 3, "Botany Bay",
|
||||
{
|
||||
{ "Shark", specs+11, N_B, 6, 15, 4, 0 },
|
||||
{ "Coral Snake", specs+31, N_F, 3, 30, 6, 0 },
|
||||
{ "Sea Lion", specs+33, N_F, 13, 50, 8, 0 }
|
||||
}
|
||||
},
|
||||
4, 3, 6, 4, "Voyage to the Bottom of the Sea",
|
||||
{
|
||||
{ "Seaview", specs+71, N_A, 6, 3, 3, 0 },
|
||||
{ "Flying Sub", specs+64, N_A, 8, 3, 3, 0 },
|
||||
{ "Mermaid", specs+70, N_B, 2, 5, 5, 0 },
|
||||
{ "Giant Squid", specs+53, N_S, 10, 30, 8, 0 }
|
||||
{ 4, 3, 6, 4, "Voyage to the Bottom of the Sea",
|
||||
{
|
||||
{ "Seaview", specs+71, N_A, 6, 3, 3, 0 },
|
||||
{ "Flying Sub", specs+64, N_A, 8, 3, 3, 0 },
|
||||
{ "Mermaid", specs+70, N_B, 2, 5, 5, 0 },
|
||||
{ "Giant Squid", specs+53, N_S, 10, 30, 8, 0 }
|
||||
}
|
||||
},
|
||||
7, 3, 6, 3, "Frigate Action",
|
||||
{
|
||||
{ "Killdeer", specs+21, N_A, 7, 20, 8, 0 },
|
||||
{ "Sandpiper", specs+27, N_B, 5, 40, 8, 0 },
|
||||
{ "Curlew", specs+34, N_S, 10, 60, 8, 0 }
|
||||
{ 7, 3, 6, 3, "Frigate Action",
|
||||
{
|
||||
{ "Killdeer", specs+21, N_A, 7, 20, 8, 0 },
|
||||
{ "Sandpiper", specs+27, N_B, 5, 40, 8, 0 },
|
||||
{ "Curlew", specs+34, N_S, 10, 60, 8, 0 }
|
||||
}
|
||||
},
|
||||
7, 2, 5, 6, "The Battle of Midway",
|
||||
{
|
||||
{ "Enterprise", specs+49, N_A, 10, 70, 8, 0 },
|
||||
{ "Yorktown", specs+51, N_A, 3, 70, 7, 0 },
|
||||
{ "Hornet", specs+52, N_A, 6, 70, 7, 0 },
|
||||
{ "Akagi", specs+53, N_J, 6, 10, 4, 0 },
|
||||
{ "Kaga", specs+54, N_J, 4, 12, 4, 0 },
|
||||
{ "Soryu", specs+55, N_J, 2, 14, 4, 0 }
|
||||
{ 7, 2, 5, 6, "The Battle of Midway",
|
||||
{
|
||||
{ "Enterprise", specs+49, N_A, 10, 70, 8, 0 },
|
||||
{ "Yorktown", specs+51, N_A, 3, 70, 7, 0 },
|
||||
{ "Hornet", specs+52, N_A, 6, 70, 7, 0 },
|
||||
{ "Akagi", specs+53, N_J, 6, 10, 4, 0 },
|
||||
{ "Kaga", specs+54, N_J, 4, 12, 4, 0 },
|
||||
{ "Soryu", specs+55, N_J, 2, 14, 4, 0 }
|
||||
}
|
||||
},
|
||||
1, 3, 4, 8, "Star Trek",
|
||||
{
|
||||
{ "Enterprise", specs+76, N_D,-10, 60, 7, 0 },
|
||||
{ "Yorktown", specs+77, N_D, 0, 70, 7, 0 },
|
||||
{ "Reliant", specs+78, N_D, 10, 70, 7, 0 },
|
||||
{ "Galileo", specs+79, N_D, 20, 60, 7, 0 },
|
||||
{ "Kobayashi Maru", specs+80, N_K, 0,120, 7, 0 },
|
||||
{ "Klingon II", specs+81, N_K, 10,120, 7, 0 },
|
||||
{ "Red Orion", specs+82, N_O, 0, 0, 3, 0 },
|
||||
{ "Blue Orion", specs+83, N_O, 10, 0, 3, 0 }
|
||||
{ 1, 3, 4, 8, "Star Trek",
|
||||
{
|
||||
{ "Enterprise", specs+76, N_D,-10, 60, 7, 0 },
|
||||
{ "Yorktown", specs+77, N_D, 0, 70, 7, 0 },
|
||||
{ "Reliant", specs+78, N_D, 10, 70, 7, 0 },
|
||||
{ "Galileo", specs+79, N_D, 20, 60, 7, 0 },
|
||||
{ "Kobayashi Maru", specs+80, N_K, 0,120, 7, 0 },
|
||||
{ "Klingon II", specs+81, N_K, 10,120, 7, 0 },
|
||||
{ "Red Orion", specs+82, N_O, 0, 0, 3, 0 },
|
||||
{ "Blue Orion", specs+83, N_O, 10, 0, 3, 0 }
|
||||
}
|
||||
}
|
||||
};
|
||||
int nscene = sizeof scene / sizeof (struct scenario);
|
||||
|
@ -285,90 +318,90 @@ int nscene = sizeof scene / sizeof (struct scenario);
|
|||
struct shipspecs specs[] = {
|
||||
/* bs fs ta guns hull crew1 crew3 gunR carR rig2 rig4 pts */
|
||||
/* class qual crew2 gunL carL rig1 rig3 */
|
||||
/*00*/ 4, 7, 3, 19, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 4, 4, 4, 4, 7,
|
||||
/*01*/ 4, 7, 3, 17, 5, 5, 4, 2, 2, 2, 0, 0, 4, 4, 3, 3, 3, 3, 6,
|
||||
/*02*/ 3, 5, 2, 42, 4, 7, 4, 2, 2, 2, 2, 2, 0, 0, 5, 5, 5, -1, 11,
|
||||
/*03*/ 4, 6, 3, 44, 3, 7, 4, 2, 2, 2, 3, 3, 0, 0, 5, 5, 5, 5, 12,
|
||||
/*04*/ 3, 5, 2, 64, 2, 17, 4, 8, 6, 6, 12, 12, 2, 2, 7, 7, 7, -1, 20,
|
||||
/*05*/ 3, 5, 2, 74, 2, 20, 4, 8, 8, 8, 16, 16, 2, 2, 7, 7, 7, -1, 26,
|
||||
/*06*/ 3, 5, 2, 50, 2, 12, 4, 6, 4, 4, 8, 8, 2, 2, 6, 6, 6, -1, 17,
|
||||
/*07*/ 3, 5, 1, 98, 1, 23, 4, 10, 10, 10, 18, 18, 2, 2, 8, 8, 8, -1, 28,
|
||||
/*08*/ 3, 5, 2, 74, 2, 20, 4, 8, 8, 8, 16, 16, 2, 2, 7, 7, 7, -1, 26,
|
||||
/*09*/ 3, 5, 2, 74, 2, 21, 3, 10, 10, 8, 20, 20, 0, 0, 7, 7, 7, -1, 24,
|
||||
/*10*/ 3, 5, 1, 80, 1, 23, 3, 12, 12, 10, 22, 22, 0, 0, 7, 7, 7, -1, 27,
|
||||
/*11*/ 3, 5, 2, 64, 2, 18, 3, 8, 8, 6, 12, 12, 0, 0, 7, 7, 7, -1, 18,
|
||||
/*12*/ 3, 5, 2, 44, 2, 11, 3, 4, 4, 4, 6, 6, 2, 2, 5, 5, 5, -1, 10,
|
||||
/*13*/ 3, 5, 2, 50, 2, 14, 3, 6, 6, 4, 8, 8, 0, 0, 6, 6, 6, -1, 14,
|
||||
/*14*/ 4, 6, 3, 36, 3, 11, 4, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 11,
|
||||
/*15*/ 4, 6, 3, 36, 3, 11, 3, 4, 4, 4, 4, 4, 2, 2, 5, 5, 5, 5, 10,
|
||||
/*16*/ 3, 5, 2, 74, 2, 21, 4, 10, 8, 8, 18, 18, 2, 2, 7, 7, 7, -1, 26,
|
||||
/*17*/ 3, 5, 2, 74, 2, 21, 3, 10, 10, 8, 20, 20, 2, 2, 7, 7, 7, -1, 23,
|
||||
/*18*/ 4, 6, 3, 32, 3, 8, 3, 4, 2, 2, 4, 4, 2, 2, 5, 5, 5, 5, 9,
|
||||
/*19*/ 4, 6, 3, 24, 4, 6, 3, 4, 4, 4, 2, 2, 0, 0, 4, 4, 4, 4, 9,
|
||||
/*20*/ 4, 7, 3, 38, 4, 14, 5, 6, 4, 4, 4, 4, 6, 6, 5, 5, 5, 5, 17,
|
||||
/*21*/ 4, 6, 3, 40, 3, 15, 3, 8, 6, 6, 6, 6, 4, 4, 5, 5, 5, 5, 15,
|
||||
/*22*/ 4, 7, 3, 36, 4, 11, 3, 6, 6, 4, 4, 4, 2, 2, 5, 5, 5, 5, 11,
|
||||
/*23*/ 4, 6, 3, 32, 3, 11, 5, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 13,
|
||||
/*24*/ 4, 6, 3, 38, 3, 14, 5, 4, 4, 4, 6, 6, 4, 4, 5, 5, 5, 5, 18,
|
||||
/*25*/ 4, 6, 3, 22, 3, 6, 5, 2, 2, 2, 0, 0, 8, 8, 4, 4, 4, 4, 11,
|
||||
/*26*/ 4, 6, 3, 32, 3, 11, 5, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 13,
|
||||
/*27*/ 4, 6, 3, 40, 3, 14, 3, 6, 6, 4, 6, 6, 4, 4, 5, 5, 5, 5, 15,
|
||||
/*28*/ 4, 6, 3, 32, 3, 11, 2, 4, 4, 4, 4, 4, 0, 0, 5, 5, 5, 5, 9,
|
||||
/*29*/ 4, 6, 3, 40, 3, 14, 2, 6, 6, 4, 6, 6, 4, 4, 5, 5, 5, 5, 12,
|
||||
/*30*/ 4, 6, 3, 32, 3, 8, 2, 4, 4, 1, 2, 2, 0, 0, 4, 4, 4, 4, 7,
|
||||
/*31*/ 4, 7, 3, 44, 4, 18, 5, 6, 6, 6, 8, 8, 6, 6, 6, 6, 6, 6, 24,
|
||||
/*32*/ 4, 6, 3, 38, 3, 14, 4, 4, 4, 2, 6, 6, 4, 4, 5, 5, 5, 5, 15,
|
||||
/*33*/ 4, 5, 3, 44, 3, 18, 5, 8, 6, 6, 8, 8, 8, 8, 6, 6, 6, 6, 24,
|
||||
/*34*/ 4, 6, 3, 38, 3, 14, 4, 4, 4, 4, 6, 6, 4, 4, 5, 5, 5, 5, 16,
|
||||
/*35*/ 4, 7, 3, 38, 4, 14, 4, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 19,
|
||||
/*36*/ 4, 6, 3, 38, 3, 14, 3, 6, 6, 4, 6, 6, 6, 6, 5, 5, 5, 5, 14,
|
||||
/*37*/ 4, 6, 3, 38, 3, 14, 5, 6, 4, 4, 6, 6, 6, 6, 5, 5, 5, 5, 17,
|
||||
/*38*/ 4, 7, 3, 20, 5, 6, 4, 4, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 9,
|
||||
/*39*/ 4, 7, 3, 13, 6, 3, 4, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 5,
|
||||
/*40*/ 4, 7, 3, 19, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 4, 4, 4, 4, 7,
|
||||
/*41*/ 4, 7, 3, 17, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 3, 3, 3, 3, 6,
|
||||
/*42*/ 4, 7, 3, 20, 5, 6, 5, 4, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 12,
|
||||
/*43*/ 4, 7, 3, 18, 5, 5, 5, 2, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 9,
|
||||
/*44*/ 4, 7, 3, 24, 5, 6, 4, 4, 2, 2, 0, 0,10,10, 4, 4, 4, 4, 11,
|
||||
/*45*/ 4, 7, 3, 20, 5, 6, 4, 2, 2, 2, 0, 0, 8, 8, 4, 4, 4, 4, 10,
|
||||
/*46*/ 4, 6, 3, 44, 3, 11, 5, 4, 4, 4, 4, 4, 2, 2, 5, 5, 5, 5, 14,
|
||||
/*47*/ 4, 6, 3, 36, 3, 12, 4, 4, 4, 4, 6, 6, 2, 2, 5, 5, 5, 5, 14,
|
||||
/*48*/ 3, 5, 2, 74, 2, 21, 3, 10, 8, 8, 20, 20, 2, 2, 4, 4, 7, -1, 24,
|
||||
/*49*/ 3, 5, 2, 80, 2, 24, 4, 10, 8, 8, 20, 20, 2, 2, 8, 8, 8, -1, 31,
|
||||
/*50*/ 3, 5, 2, 74, 2, 21, 4, 8, 8, 6, 16, 16, 4, 4, 7, 7, 7, -1, 27,
|
||||
/*51*/ 3, 5, 2, 80, 2, 24, 3, 12, 12, 10, 22, 22, 2, 2, 7, 7, 7, -1, 27,
|
||||
/*52*/ 3, 5, 2, 74, 2, 21, 3, 10, 10, 8, 20, 20, 2, 2, 7, 7, 7, -1, 24,
|
||||
/*53*/ 3, 5, 1, 112, 1, 27, 2, 12, 12, 12, 24, 24, 0, 0, 9, 9, 9, -1, 27,
|
||||
/*54*/ 3, 5, 1, 96, 1, 24, 2, 12, 12, 10, 20, 20, 0, 0, 8, 8, 8, -1, 24,
|
||||
/*55*/ 3, 5, 2, 80, 2, 23, 2, 10, 10, 8, 20, 20, 0, 0, 7, 7, 7, -1, 23,
|
||||
/*56*/ 3, 5, 2, 74, 2, 21, 2, 10, 8, 8, 16, 16, 4, 4, 7, 7, 7, -1, 20,
|
||||
/*57*/ 4, 6, 3, 37, 3, 12, 4, 4, 4, 2, 6, 6, 4, 4, 5, 5, 5, 5, 14,
|
||||
/*58*/ 4, 7, 3, 16, 5, 5, 5, 2, 2, 2, 0, 0, 4, 4, 4, 4, 4, 4, 10,
|
||||
/*59*/ 4, 7, 3, 11, 6, 3, 4, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 5,
|
||||
/*60*/ 4, 7, 3, 26, 5, 6, 4, 4, 2, 2, 2, 2, 6, 6, 4, 4, 4, 4, 12,
|
||||
/*61*/ 4, 7, 3, 20, 5, 6, 4, 4, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 11,
|
||||
/*62*/ 4, 7, 3, 17, 5, 5, 4, 2, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 9,
|
||||
/*63*/ 4, 7, 3, 7, 6, 3, 4, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 4,
|
||||
/*64*/ 4, 6, 3, 40, 3, 15, 4, 4, 4, 4, 8, 8, 6, 6, 5, 5, 5, 5, 17,
|
||||
/*65*/ 4, 6, 3, 44, 3, 15, 4, 8, 8, 6, 10, 10, 2, 2, 6, 6, 6, 6, 20,
|
||||
/*66*/ 4, 6, 3, 38, 3, 14, 4, 4, 4, 4, 6, 6, 6, 6, 5, 5, 5, 5, 15,
|
||||
/*67*/ 4, 5, 3, 44, 3, 18, 5, 8, 6, 6, 8, 8, 8, 8, 6, 6, 6, 6, 24,
|
||||
/*68*/ 4, 6, 3, 36, 3, 9, 5, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 13,
|
||||
/*69*/ 3, 5, 2, 50, 2, 14, 2, 6, 6, 6, 8, 8, 0, 0, 6, 6, 6, -1, 14,
|
||||
/*70*/ 3, 5, 1, 136, 1, 30, 1, 8, 14, 14, 28, 28, 0, 0, 9, 9, 9, -1, 27,
|
||||
/*71*/ 3, 5, 1, 120, 1, 27, 5, 16, 14, 14, 28, 28, 2, 2, 9, 9, 9, -1, 43,
|
||||
/*72*/ 3, 5, 1, 120, 2, 21, 5, 15, 17, 15, 25, 25, 7, 7, 9, 9, 9, -1, 36,
|
||||
/*73*/ 3, 5, 1, 90, 3, 18, 4, 13, 15, 13, 20, 20, 6, 6, 5, 5, 5, 5, 28,
|
||||
/*74*/ 4, 7, 3, 6, 6, 3, 4, 2, 2, 2, 20, 20, 6, 6, 2, 2, 3, 3, 5,
|
||||
/*75*/ 3, 5, 1, 110, 2, 20, 4, 14, 15, 11, 26, 26, 8, 8, 7, 8, 9, -1, 34,
|
||||
/*76*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*77*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*78*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*79*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*80*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*81*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*82*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*83*/ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75,
|
||||
/*00*/{ 4, 7, 3, 19, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 4, 4, 4, 4, 7 },
|
||||
/*01*/{ 4, 7, 3, 17, 5, 5, 4, 2, 2, 2, 0, 0, 4, 4, 3, 3, 3, 3, 6 },
|
||||
/*02*/{ 3, 5, 2, 42, 4, 7, 4, 2, 2, 2, 2, 2, 0, 0, 5, 5, 5, -1, 11 },
|
||||
/*03*/{ 4, 6, 3, 44, 3, 7, 4, 2, 2, 2, 3, 3, 0, 0, 5, 5, 5, 5, 12 },
|
||||
/*04*/{ 3, 5, 2, 64, 2, 17, 4, 8, 6, 6, 12, 12, 2, 2, 7, 7, 7, -1, 20 },
|
||||
/*05*/{ 3, 5, 2, 74, 2, 20, 4, 8, 8, 8, 16, 16, 2, 2, 7, 7, 7, -1, 26 },
|
||||
/*06*/{ 3, 5, 2, 50, 2, 12, 4, 6, 4, 4, 8, 8, 2, 2, 6, 6, 6, -1, 17 },
|
||||
/*07*/{ 3, 5, 1, 98, 1, 23, 4, 10, 10, 10, 18, 18, 2, 2, 8, 8, 8, -1, 28 },
|
||||
/*08*/{ 3, 5, 2, 74, 2, 20, 4, 8, 8, 8, 16, 16, 2, 2, 7, 7, 7, -1, 26 },
|
||||
/*09*/{ 3, 5, 2, 74, 2, 21, 3, 10, 10, 8, 20, 20, 0, 0, 7, 7, 7, -1, 24 },
|
||||
/*10*/{ 3, 5, 1, 80, 1, 23, 3, 12, 12, 10, 22, 22, 0, 0, 7, 7, 7, -1, 27 },
|
||||
/*11*/{ 3, 5, 2, 64, 2, 18, 3, 8, 8, 6, 12, 12, 0, 0, 7, 7, 7, -1, 18 },
|
||||
/*12*/{ 3, 5, 2, 44, 2, 11, 3, 4, 4, 4, 6, 6, 2, 2, 5, 5, 5, -1, 10 },
|
||||
/*13*/{ 3, 5, 2, 50, 2, 14, 3, 6, 6, 4, 8, 8, 0, 0, 6, 6, 6, -1, 14 },
|
||||
/*14*/{ 4, 6, 3, 36, 3, 11, 4, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 11 },
|
||||
/*15*/{ 4, 6, 3, 36, 3, 11, 3, 4, 4, 4, 4, 4, 2, 2, 5, 5, 5, 5, 10 },
|
||||
/*16*/{ 3, 5, 2, 74, 2, 21, 4, 10, 8, 8, 18, 18, 2, 2, 7, 7, 7, -1, 26 },
|
||||
/*17*/{ 3, 5, 2, 74, 2, 21, 3, 10, 10, 8, 20, 20, 2, 2, 7, 7, 7, -1, 23 },
|
||||
/*18*/{ 4, 6, 3, 32, 3, 8, 3, 4, 2, 2, 4, 4, 2, 2, 5, 5, 5, 5, 9 },
|
||||
/*19*/{ 4, 6, 3, 24, 4, 6, 3, 4, 4, 4, 2, 2, 0, 0, 4, 4, 4, 4, 9 },
|
||||
/*20*/{ 4, 7, 3, 38, 4, 14, 5, 6, 4, 4, 4, 4, 6, 6, 5, 5, 5, 5, 17 },
|
||||
/*21*/{ 4, 6, 3, 40, 3, 15, 3, 8, 6, 6, 6, 6, 4, 4, 5, 5, 5, 5, 15 },
|
||||
/*22*/{ 4, 7, 3, 36, 4, 11, 3, 6, 6, 4, 4, 4, 2, 2, 5, 5, 5, 5, 11 },
|
||||
/*23*/{ 4, 6, 3, 32, 3, 11, 5, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 13 },
|
||||
/*24*/{ 4, 6, 3, 38, 3, 14, 5, 4, 4, 4, 6, 6, 4, 4, 5, 5, 5, 5, 18 },
|
||||
/*25*/{ 4, 6, 3, 22, 3, 6, 5, 2, 2, 2, 0, 0, 8, 8, 4, 4, 4, 4, 11 },
|
||||
/*26*/{ 4, 6, 3, 32, 3, 11, 5, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 13 },
|
||||
/*27*/{ 4, 6, 3, 40, 3, 14, 3, 6, 6, 4, 6, 6, 4, 4, 5, 5, 5, 5, 15 },
|
||||
/*28*/{ 4, 6, 3, 32, 3, 11, 2, 4, 4, 4, 4, 4, 0, 0, 5, 5, 5, 5, 9 },
|
||||
/*29*/{ 4, 6, 3, 40, 3, 14, 2, 6, 6, 4, 6, 6, 4, 4, 5, 5, 5, 5, 12 },
|
||||
/*30*/{ 4, 6, 3, 32, 3, 8, 2, 4, 4, 1, 2, 2, 0, 0, 4, 4, 4, 4, 7 },
|
||||
/*31*/{ 4, 7, 3, 44, 4, 18, 5, 6, 6, 6, 8, 8, 6, 6, 6, 6, 6, 6, 24 },
|
||||
/*32*/{ 4, 6, 3, 38, 3, 14, 4, 4, 4, 2, 6, 6, 4, 4, 5, 5, 5, 5, 15 },
|
||||
/*33*/{ 4, 5, 3, 44, 3, 18, 5, 8, 6, 6, 8, 8, 8, 8, 6, 6, 6, 6, 24 },
|
||||
/*34*/{ 4, 6, 3, 38, 3, 14, 4, 4, 4, 4, 6, 6, 4, 4, 5, 5, 5, 5, 16 },
|
||||
/*35*/{ 4, 7, 3, 38, 4, 14, 4, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 19 },
|
||||
/*36*/{ 4, 6, 3, 38, 3, 14, 3, 6, 6, 4, 6, 6, 6, 6, 5, 5, 5, 5, 14 },
|
||||
/*37*/{ 4, 6, 3, 38, 3, 14, 5, 6, 4, 4, 6, 6, 6, 6, 5, 5, 5, 5, 17 },
|
||||
/*38*/{ 4, 7, 3, 20, 5, 6, 4, 4, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 9 },
|
||||
/*39*/{ 4, 7, 3, 13, 6, 3, 4, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 5 },
|
||||
/*40*/{ 4, 7, 3, 19, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 4, 4, 4, 4, 7 },
|
||||
/*41*/{ 4, 7, 3, 17, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 3, 3, 3, 3, 6 },
|
||||
/*42*/{ 4, 7, 3, 20, 5, 6, 5, 4, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 12 },
|
||||
/*43*/{ 4, 7, 3, 18, 5, 5, 5, 2, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 9 },
|
||||
/*44*/{ 4, 7, 3, 24, 5, 6, 4, 4, 2, 2, 0, 0,10,10, 4, 4, 4, 4, 11 },
|
||||
/*45*/{ 4, 7, 3, 20, 5, 6, 4, 2, 2, 2, 0, 0, 8, 8, 4, 4, 4, 4, 10 },
|
||||
/*46*/{ 4, 6, 3, 44, 3, 11, 5, 4, 4, 4, 4, 4, 2, 2, 5, 5, 5, 5, 14 },
|
||||
/*47*/{ 4, 6, 3, 36, 3, 12, 4, 4, 4, 4, 6, 6, 2, 2, 5, 5, 5, 5, 14 },
|
||||
/*48*/{ 3, 5, 2, 74, 2, 21, 3, 10, 8, 8, 20, 20, 2, 2, 4, 4, 7, -1, 24 },
|
||||
/*49*/{ 3, 5, 2, 80, 2, 24, 4, 10, 8, 8, 20, 20, 2, 2, 8, 8, 8, -1, 31 },
|
||||
/*50*/{ 3, 5, 2, 74, 2, 21, 4, 8, 8, 6, 16, 16, 4, 4, 7, 7, 7, -1, 27 },
|
||||
/*51*/{ 3, 5, 2, 80, 2, 24, 3, 12, 12, 10, 22, 22, 2, 2, 7, 7, 7, -1, 27 },
|
||||
/*52*/{ 3, 5, 2, 74, 2, 21, 3, 10, 10, 8, 20, 20, 2, 2, 7, 7, 7, -1, 24 },
|
||||
/*53*/{ 3, 5, 1, 112, 1, 27, 2, 12, 12, 12, 24, 24, 0, 0, 9, 9, 9, -1, 27 },
|
||||
/*54*/{ 3, 5, 1, 96, 1, 24, 2, 12, 12, 10, 20, 20, 0, 0, 8, 8, 8, -1, 24 },
|
||||
/*55*/{ 3, 5, 2, 80, 2, 23, 2, 10, 10, 8, 20, 20, 0, 0, 7, 7, 7, -1, 23 },
|
||||
/*56*/{ 3, 5, 2, 74, 2, 21, 2, 10, 8, 8, 16, 16, 4, 4, 7, 7, 7, -1, 20 },
|
||||
/*57*/{ 4, 6, 3, 37, 3, 12, 4, 4, 4, 2, 6, 6, 4, 4, 5, 5, 5, 5, 14 },
|
||||
/*58*/{ 4, 7, 3, 16, 5, 5, 5, 2, 2, 2, 0, 0, 4, 4, 4, 4, 4, 4, 10 },
|
||||
/*59*/{ 4, 7, 3, 11, 6, 3, 4, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 5 },
|
||||
/*60*/{ 4, 7, 3, 26, 5, 6, 4, 4, 2, 2, 2, 2, 6, 6, 4, 4, 4, 4, 12 },
|
||||
/*61*/{ 4, 7, 3, 20, 5, 6, 4, 4, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 11 },
|
||||
/*62*/{ 4, 7, 3, 17, 5, 5, 4, 2, 2, 2, 0, 0, 6, 6, 4, 4, 4, 4, 9 },
|
||||
/*63*/{ 4, 7, 3, 7, 6, 3, 4, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 4 },
|
||||
/*64*/{ 4, 6, 3, 40, 3, 15, 4, 4, 4, 4, 8, 8, 6, 6, 5, 5, 5, 5, 17 },
|
||||
/*65*/{ 4, 6, 3, 44, 3, 15, 4, 8, 8, 6, 10, 10, 2, 2, 6, 6, 6, 6, 20 },
|
||||
/*66*/{ 4, 6, 3, 38, 3, 14, 4, 4, 4, 4, 6, 6, 6, 6, 5, 5, 5, 5, 15 },
|
||||
/*67*/{ 4, 5, 3, 44, 3, 18, 5, 8, 6, 6, 8, 8, 8, 8, 6, 6, 6, 6, 24 },
|
||||
/*68*/{ 4, 6, 3, 36, 3, 9, 5, 4, 4, 2, 4, 4, 2, 2, 5, 5, 5, 5, 13 },
|
||||
/*69*/{ 3, 5, 2, 50, 2, 14, 2, 6, 6, 6, 8, 8, 0, 0, 6, 6, 6, -1, 14 },
|
||||
/*70*/{ 3, 5, 1, 136, 1, 30, 1, 8, 14, 14, 28, 28, 0, 0, 9, 9, 9, -1, 27 },
|
||||
/*71*/{ 3, 5, 1, 120, 1, 27, 5, 16, 14, 14, 28, 28, 2, 2, 9, 9, 9, -1, 43 },
|
||||
/*72*/{ 3, 5, 1, 120, 2, 21, 5, 15, 17, 15, 25, 25, 7, 7, 9, 9, 9, -1, 36 },
|
||||
/*73*/{ 3, 5, 1, 90, 3, 18, 4, 13, 15, 13, 20, 20, 6, 6, 5, 5, 5, 5, 28 },
|
||||
/*74*/{ 4, 7, 3, 6, 6, 3, 4, 2, 2, 2, 20, 20, 6, 6, 2, 2, 3, 3, 5 },
|
||||
/*75*/{ 3, 5, 1, 110, 2, 20, 4, 14, 15, 11, 26, 26, 8, 8, 7, 8, 9, -1, 34 },
|
||||
/*76*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 },
|
||||
/*77*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 },
|
||||
/*78*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 },
|
||||
/*79*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 },
|
||||
/*80*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 },
|
||||
/*81*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 },
|
||||
/*82*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 },
|
||||
/*83*/{ 4, 7, 3, 450, 1, 99, 5, 50, 40, 40, 50, 50,25,25, 9, 9, 9, -1, 75 }
|
||||
/* bs fs ta guns hull crew1 crew3 gunR carR rig2 rig4 pts */
|
||||
/* class qual crew2 gunL carL rig1 rig3 */
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: lo_main.c,v 1.4 1997/01/07 12:42:21 tls Exp $ */
|
||||
/* $NetBSD: lo_main.c,v 1.5 1997/10/13 19:44:24 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,11 +33,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)lo_main.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: lo_main.c,v 1.4 1997/01/07 12:42:21 tls Exp $";
|
||||
__RCSID("$NetBSD: lo_main.c,v 1.5 1997/10/13 19:44:24 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -57,6 +58,7 @@ char *title[] = {
|
|||
"Commander", "Lieutenant"
|
||||
};
|
||||
|
||||
int
|
||||
lo_main()
|
||||
{
|
||||
FILE *fp;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: main.c,v 1.4 1997/01/07 12:42:22 tls Exp $ */
|
||||
/* $NetBSD: main.c,v 1.5 1997/10/13 19:44:30 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,33 +33,39 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
static char copyright[] =
|
||||
"@(#) Copyright (c) 1983, 1993\n\
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
__COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
|
||||
The Regents of the University of California. All rights reserved.\n");
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)main.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: main.c,v 1.4 1997/01/07 12:42:22 tls Exp $";
|
||||
__RCSID("$NetBSD: main.c,v 1.5 1997/10/13 19:44:30 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "extern.h"
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int main __P((int, char **));
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
register char **argv;
|
||||
char **argv;
|
||||
{
|
||||
register char *p;
|
||||
char *p;
|
||||
int i;
|
||||
|
||||
(void) srand(getpid());
|
||||
issetuid = getuid() != geteuid();
|
||||
if (p = rindex(*argv, '/'))
|
||||
if ((p = strrchr(*argv, '/')) != '\0')
|
||||
p++;
|
||||
else
|
||||
p = *argv;
|
||||
|
@ -81,7 +87,7 @@ main(argc, argv)
|
|||
debug++;
|
||||
break;
|
||||
case 'x':
|
||||
randomize;
|
||||
randomize++;
|
||||
break;
|
||||
case 'l':
|
||||
longfmt++;
|
||||
|
@ -97,7 +103,7 @@ main(argc, argv)
|
|||
game = atoi(*argv);
|
||||
else
|
||||
game = -1;
|
||||
if (i = setjmp(restart))
|
||||
if ((i = setjmp(restart)) != 0)
|
||||
mode = i;
|
||||
switch (mode) {
|
||||
case MODE_PLAYER:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: misc.c,v 1.4 1997/01/07 12:42:23 tls Exp $ */
|
||||
/* $NetBSD: misc.c,v 1.5 1997/10/13 19:44:38 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,26 +33,31 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)misc.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: misc.c,v 1.4 1997/01/07 12:42:23 tls Exp $";
|
||||
__RCSID("$NetBSD: misc.c,v 1.5 1997/10/13 19:44:38 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include "extern.h"
|
||||
#include "pathnames.h"
|
||||
|
||||
#define distance(x,y) (abs(x) >= abs(y) ? abs(x) + abs(y)/2 : abs(y) + abs(x)/2)
|
||||
|
||||
/* XXX */
|
||||
int
|
||||
range(from, to)
|
||||
struct ship *from, *to;
|
||||
{
|
||||
register bow1r, bow1c, bow2r, bow2c;
|
||||
int bow1r, bow1c, bow2r, bow2c;
|
||||
int stern1r, stern1c, stern2c, stern2r;
|
||||
register int bb, bs, sb, ss, result;
|
||||
int bb, bs, sb, ss, result;
|
||||
|
||||
if (!to->file->dir)
|
||||
return -1;
|
||||
|
@ -76,11 +81,11 @@ struct ship *from, *to;
|
|||
|
||||
struct ship *
|
||||
closestenemy(from, side, anyship)
|
||||
register struct ship *from;
|
||||
struct ship *from;
|
||||
char side, anyship;
|
||||
{
|
||||
register struct ship *sp;
|
||||
register char a;
|
||||
struct ship *sp;
|
||||
char a;
|
||||
int olddist = 30000, dist;
|
||||
struct ship *closest = 0;
|
||||
|
||||
|
@ -103,10 +108,11 @@ char side, anyship;
|
|||
return closest;
|
||||
}
|
||||
|
||||
int
|
||||
angle(dr, dc)
|
||||
register dr, dc;
|
||||
int dr, dc;
|
||||
{
|
||||
register i;
|
||||
int i;
|
||||
|
||||
if (dc >= 0 && dr > 0)
|
||||
i = 0;
|
||||
|
@ -130,11 +136,12 @@ register dr, dc;
|
|||
return i % 8 + 1;
|
||||
}
|
||||
|
||||
int
|
||||
gunsbear(from, to) /* checks for target bow or stern */
|
||||
register struct ship *from, *to;
|
||||
struct ship *from, *to;
|
||||
{
|
||||
int Dr, Dc, i;
|
||||
register ang;
|
||||
int ang;
|
||||
|
||||
Dr = from->file->row - to->file->row;
|
||||
Dc = to->file->col - from->file->col;
|
||||
|
@ -151,12 +158,13 @@ register struct ship *from, *to;
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
portside(from, on, quick)
|
||||
register struct ship *from, *on;
|
||||
struct ship *from, *on;
|
||||
int quick; /* returns true if fromship is */
|
||||
{ /* shooting at onship's starboard side */
|
||||
register ang;
|
||||
register Dr, Dc;
|
||||
int ang;
|
||||
int Dr, Dc;
|
||||
|
||||
Dr = from->file->row - on->file->row;
|
||||
Dc = on->file->col - from->file->col;
|
||||
|
@ -171,10 +179,11 @@ int quick; /* returns true if fromship is */
|
|||
return ang < 5;
|
||||
}
|
||||
|
||||
int
|
||||
colours(sp)
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
{
|
||||
register char flag;
|
||||
char flag = '\0';
|
||||
|
||||
if (sp->file->struck)
|
||||
flag = '!';
|
||||
|
@ -188,16 +197,16 @@ register struct ship *sp;
|
|||
return sp->file->FS ? flag : tolower(flag);
|
||||
}
|
||||
|
||||
#include <sys/file.h>
|
||||
log(s)
|
||||
register struct ship *s;
|
||||
void
|
||||
logger(s)
|
||||
struct ship *s;
|
||||
{
|
||||
FILE *fp;
|
||||
int persons;
|
||||
int n;
|
||||
struct logs log[NLOG];
|
||||
float net;
|
||||
register struct logs *lp;
|
||||
struct logs *lp;
|
||||
|
||||
if ((fp = fopen(_PATH_LOGFILE, "r+")) == NULL)
|
||||
return;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: parties.c,v 1.4 1997/01/07 12:42:23 tls Exp $ */
|
||||
/* $NetBSD: parties.c,v 1.5 1997/10/13 19:44:47 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,22 +33,24 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)parties.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: parties.c,v 1.4 1997/01/07 12:42:23 tls Exp $";
|
||||
__RCSID("$NetBSD: parties.c,v 1.5 1997/10/13 19:44:47 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "extern.h"
|
||||
|
||||
int
|
||||
meleeing(from, to)
|
||||
struct ship *from;
|
||||
register struct ship *to;
|
||||
struct ship *to;
|
||||
{
|
||||
register struct BP *p = from->file->OBP;
|
||||
register struct BP *q = p + NBP;
|
||||
struct BP *p = from->file->OBP;
|
||||
struct BP *q = p + NBP;
|
||||
|
||||
for (; p < q; p++)
|
||||
if (p->turnsent && p->toship == to)
|
||||
|
@ -56,12 +58,13 @@ register struct ship *to;
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
boarding(from, isdefense)
|
||||
register struct ship *from;
|
||||
struct ship *from;
|
||||
char isdefense;
|
||||
{
|
||||
register struct BP *p = isdefense ? from->file->DBP : from->file->OBP;
|
||||
register struct BP *q = p + NBP;
|
||||
struct BP *p = isdefense ? from->file->DBP : from->file->OBP;
|
||||
struct BP *q = p + NBP;
|
||||
|
||||
for (; p < q; p++)
|
||||
if (p->turnsent)
|
||||
|
@ -69,12 +72,13 @@ char isdefense;
|
|||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
unboard(ship, to, isdefense)
|
||||
register struct ship *ship, *to;
|
||||
register char isdefense;
|
||||
struct ship *ship, *to;
|
||||
char isdefense;
|
||||
{
|
||||
register struct BP *p = isdefense ? ship->file->DBP : ship->file->OBP;
|
||||
register n;
|
||||
struct BP *p = isdefense ? ship->file->DBP : ship->file->OBP;
|
||||
int n;
|
||||
|
||||
for (n = 0; n < NBP; p++, n++)
|
||||
if (p->turnsent && (p->toship == to || isdefense || ship == to))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_1.c,v 1.3 1995/04/22 10:37:07 cgd Exp $ */
|
||||
/* $NetBSD: pl_1.c,v 1.4 1997/10/13 19:44:53 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,11 +33,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_1.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_1.c,v 1.3 1995/04/22 10:37:07 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_1.c,v 1.4 1997/10/13 19:44:53 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -53,6 +54,7 @@ static char rcsid[] = "$NetBSD: pl_1.c,v 1.3 1995/04/22 10:37:07 cgd Exp $";
|
|||
* Of course, we don't do any more Sync()'s if we got here
|
||||
* because of a Sync() failure.
|
||||
*/
|
||||
void
|
||||
leave(conditions)
|
||||
int conditions;
|
||||
{
|
||||
|
@ -63,28 +65,24 @@ int conditions;
|
|||
(void) signal(SIGCHLD, SIG_IGN);
|
||||
|
||||
if (done_curses) {
|
||||
Signal("It looks like you've had it!",
|
||||
(struct ship *)0);
|
||||
Msg("It looks like you've had it!");
|
||||
switch (conditions) {
|
||||
case LEAVE_QUIT:
|
||||
break;
|
||||
case LEAVE_CAPTURED:
|
||||
Signal("Your ship was captured.",
|
||||
(struct ship *)0);
|
||||
Msg("Your ship was captured.");
|
||||
break;
|
||||
case LEAVE_HURRICAN:
|
||||
Signal("Hurricane! All ships destroyed.",
|
||||
(struct ship *)0);
|
||||
Msg("Hurricane! All ships destroyed.");
|
||||
break;
|
||||
case LEAVE_DRIVER:
|
||||
Signal("The driver died.", (struct ship *)0);
|
||||
Msg("The driver died.");
|
||||
break;
|
||||
case LEAVE_SYNC:
|
||||
Signal("Synchronization error.", (struct ship *)0);
|
||||
Msg("Synchronization error.");
|
||||
break;
|
||||
default:
|
||||
Signal("A funny thing happened (%d).",
|
||||
(struct ship *)0, conditions);
|
||||
Msg("A funny thing happened (%d).", conditions);
|
||||
}
|
||||
} else {
|
||||
switch (conditions) {
|
||||
|
@ -106,7 +104,7 @@ int conditions;
|
|||
}
|
||||
|
||||
if (ms != 0) {
|
||||
log(ms);
|
||||
logger(ms);
|
||||
if (conditions != LEAVE_SYNC) {
|
||||
makesignal(ms, "Captain %s relinquishing.",
|
||||
(struct ship *)0, mf->captain);
|
||||
|
@ -119,14 +117,18 @@ int conditions;
|
|||
exit(0);
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
choke()
|
||||
choke(n)
|
||||
int n;
|
||||
{
|
||||
leave(LEAVE_QUIT);
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
child()
|
||||
child(n)
|
||||
int n;
|
||||
{
|
||||
union wait status;
|
||||
int pid;
|
||||
|
@ -134,7 +136,7 @@ child()
|
|||
(void) signal(SIGCHLD, SIG_IGN);
|
||||
do {
|
||||
pid = wait3((int *)&status, WNOHANG, (struct rusage *)0);
|
||||
if (pid < 0 || pid > 0 && !WIFSTOPPED(status))
|
||||
if (pid < 0 || (pid > 0 && !WIFSTOPPED(status)))
|
||||
hasdriver = 0;
|
||||
} while (pid > 0);
|
||||
(void) signal(SIGCHLD, child);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_2.c,v 1.3 1995/04/22 10:37:08 cgd Exp $ */
|
||||
/* $NetBSD: pl_2.c,v 1.4 1997/10/13 19:45:01 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,19 +33,21 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_2.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_2.c,v 1.3 1995/04/22 10:37:08 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_2.c,v 1.4 1997/10/13 19:45:01 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "player.h"
|
||||
|
||||
void
|
||||
play()
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
|
||||
for (;;) {
|
||||
switch (sgetch("~\b", (struct ship *)0, 0)) {
|
||||
|
@ -62,7 +64,7 @@ play()
|
|||
unfoulplayer();
|
||||
break;
|
||||
case 'v':
|
||||
Signal("%s", (struct ship *)0, version);
|
||||
Msg("%s", version);
|
||||
break;
|
||||
case 'b':
|
||||
acceptboard();
|
||||
|
@ -80,7 +82,7 @@ play()
|
|||
repair();
|
||||
break;
|
||||
case 'B':
|
||||
Signal("'Hands to stations!'", (struct ship *)0);
|
||||
Msg("'Hands to stations!'");
|
||||
unboard(ms, ms, 1); /* cancel DBP's */
|
||||
unboard(ms, ms, 0); /* cancel offense */
|
||||
break;
|
||||
|
@ -96,10 +98,10 @@ play()
|
|||
mf->loadR = L_EMPTY;
|
||||
mf->readyL = R_EMPTY;
|
||||
mf->readyR = R_EMPTY;
|
||||
Signal("Broadsides unloaded", (struct ship *)0);
|
||||
Msg("Broadsides unloaded");
|
||||
break;
|
||||
case 'q':
|
||||
Signal("Type 'Q' to quit", (struct ship *)0);
|
||||
Msg("Type 'Q' to quit");
|
||||
break;
|
||||
case 'Q':
|
||||
leave(LEAVE_QUIT);
|
||||
|
@ -111,7 +113,7 @@ play()
|
|||
break;
|
||||
case 'i':
|
||||
if ((sp = closestenemy(ms, 0, 1)) == 0)
|
||||
Signal("No more ships left.");
|
||||
Msg("No more ships left.");
|
||||
else
|
||||
eyeball(sp);
|
||||
break;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_3.c,v 1.3 1995/04/22 10:37:09 cgd Exp $ */
|
||||
/* $NetBSD: pl_3.c,v 1.4 1997/10/13 19:45:10 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,16 +33,19 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_3.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_3.c,v 1.3 1995/04/22 10:37:09 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_3.c,v 1.4 1997/10/13 19:45:10 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "player.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void
|
||||
acceptcombat()
|
||||
{
|
||||
int men = 0;
|
||||
|
@ -84,7 +87,7 @@ acceptcombat()
|
|||
guns = mc->gunL;
|
||||
car = mc->carL;
|
||||
}
|
||||
if (!guns && !car || load == L_EMPTY || (ready & R_LOADED) == 0)
|
||||
if ((!guns && !car) || load == L_EMPTY || (ready & R_LOADED) == 0)
|
||||
goto cant;
|
||||
if (mf->struck || !crew[2])
|
||||
goto cant;
|
||||
|
@ -94,9 +97,9 @@ acceptcombat()
|
|||
if (closest->file->struck)
|
||||
goto cant;
|
||||
target = range(ms, closest);
|
||||
if (target > rangeofshot[load] || !guns && target >= 3)
|
||||
if (target > rangeofshot[load] || (!guns && target >= 3))
|
||||
goto cant;
|
||||
Signal("%s (%c%c) within range of %s broadside.",
|
||||
Signal("%$ within range of %s broadside.",
|
||||
closest, r ? "right" : "left");
|
||||
if (load > L_CHAIN && target < 6) {
|
||||
switch (sgetch("Aim for hull or rigging? ",
|
||||
|
@ -109,14 +112,12 @@ acceptcombat()
|
|||
break;
|
||||
default:
|
||||
shootat = -1;
|
||||
Signal("'Avast there! Hold your fire.'",
|
||||
(struct ship *)0);
|
||||
Msg("'Avast there! Hold your fire.'");
|
||||
}
|
||||
} else {
|
||||
if (sgetch("Fire? ", (struct ship *)0, 1) == 'n') {
|
||||
shootat = -1;
|
||||
Signal("Belay that! Hold your fire.",
|
||||
(struct ship *)0);
|
||||
Msg("Belay that! Hold your fire.");
|
||||
} else
|
||||
shootat = RIGGING;
|
||||
}
|
||||
|
@ -132,9 +133,9 @@ acceptcombat()
|
|||
sternrake = temp > 4 && temp < 6;
|
||||
if (rakehim)
|
||||
if (!sternrake)
|
||||
Signal("Raking the %s!", closest);
|
||||
Signal("%$ Raking the %s!", closest);
|
||||
else
|
||||
Signal("Stern Rake! %s splintering!", closest);
|
||||
Signal("%$ Stern Rake! %s splintering!", closest);
|
||||
index = guns;
|
||||
if (target < 3)
|
||||
index += car;
|
||||
|
@ -193,10 +194,9 @@ acceptcombat()
|
|||
}
|
||||
table(shootat, load, hit, closest, ms, roll);
|
||||
}
|
||||
Signal("Damage inflicted on the %s:",
|
||||
(struct ship *)0, closest->shipname);
|
||||
Signal("\t%d HULL, %d GUNS, %d CREW, %d RIGGING",
|
||||
(struct ship *)0, hhits, ghits, chits, rhits);
|
||||
Msg("Damage inflicted on the %s:", closest->shipname);
|
||||
Msg("\t%d HULL, %d GUNS, %d CREW, %d RIGGING",
|
||||
hhits, ghits, chits, rhits);
|
||||
if (!r) {
|
||||
mf->loadL = L_EMPTY;
|
||||
mf->readyL = R_EMPTY;
|
||||
|
@ -206,18 +206,18 @@ acceptcombat()
|
|||
}
|
||||
continue;
|
||||
cant:
|
||||
Signal("Unable to fire %s broadside",
|
||||
(struct ship *)0, r ? "right" : "left");
|
||||
Msg("Unable to fire %s broadside", r ? "right" : "left");
|
||||
}
|
||||
blockalarm();
|
||||
draw_stat();
|
||||
unblockalarm();
|
||||
}
|
||||
|
||||
void
|
||||
grapungrap()
|
||||
{
|
||||
register struct ship *sp;
|
||||
register int i;
|
||||
struct ship *sp;
|
||||
int i;
|
||||
|
||||
foreachship(sp) {
|
||||
if (sp == ms || sp->file->dir == 0)
|
||||
|
@ -231,10 +231,10 @@ grapungrap()
|
|||
|| ms->nationality == capship(sp)->nationality) {
|
||||
Write(W_GRAP, ms, 0, sp->file->index, 0, 0, 0);
|
||||
Write(W_GRAP, sp, 0, player, 0, 0, 0);
|
||||
Signal("Attempt succeeds!", (struct ship *)0);
|
||||
Msg("Attempt succeeds!");
|
||||
makesignal(ms, "grappled with %s (%c%c)", sp);
|
||||
} else
|
||||
Signal("Attempt fails.", (struct ship *)0);
|
||||
Msg("Attempt fails.");
|
||||
break;
|
||||
case 'u':
|
||||
for (i = grappled2(ms, sp); --i >= 0;) {
|
||||
|
@ -242,24 +242,23 @@ grapungrap()
|
|||
== capship(sp)->nationality
|
||||
|| die() < 3) {
|
||||
cleangrapple(ms, sp, 0);
|
||||
Signal("Attempt succeeds!",
|
||||
(struct ship *)0);
|
||||
Msg("Attempt succeeds!");
|
||||
makesignal(ms,
|
||||
"ungrappling with %s (%c%c)",
|
||||
sp);
|
||||
} else
|
||||
Signal("Attempt fails.",
|
||||
(struct ship *)0);
|
||||
Msg("Attempt fails.");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
unfoulplayer()
|
||||
{
|
||||
register struct ship *to;
|
||||
register i;
|
||||
struct ship *to;
|
||||
int i;
|
||||
|
||||
foreachship(to) {
|
||||
if (fouled2(ms, to) == 0)
|
||||
|
@ -269,10 +268,10 @@ unfoulplayer()
|
|||
for (i = fouled2(ms, to); --i >= 0;) {
|
||||
if (die() <= 2) {
|
||||
cleanfoul(ms, to, 0);
|
||||
Signal("Attempt succeeds!", (struct ship *)0);
|
||||
Msg("Attempt succeeds!");
|
||||
makesignal(ms, "Unfouling %s (%c%c)", to);
|
||||
} else
|
||||
Signal("Attempt fails.", (struct ship *)0);
|
||||
Msg("Attempt fails.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_4.c,v 1.4 1995/04/24 12:25:17 cgd Exp $ */
|
||||
/* $NetBSD: pl_4.c,v 1.5 1997/10/13 19:45:20 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,23 +33,25 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_4.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_4.c,v 1.4 1995/04/24 12:25:17 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_4.c,v 1.5 1997/10/13 19:45:20 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "player.h"
|
||||
|
||||
void
|
||||
changesail()
|
||||
{
|
||||
int rig, full;
|
||||
|
||||
rig = mc->rig1;
|
||||
full = mf->FS;
|
||||
if (windspeed == 6 || windspeed == 5 && mc->class > 4)
|
||||
if (windspeed == 6 || (windspeed == 5 && mc->class > 4))
|
||||
rig = 0;
|
||||
if (mc->crew3 && rig) {
|
||||
if (!full) {
|
||||
|
@ -66,13 +68,14 @@ changesail()
|
|||
}
|
||||
}
|
||||
} else if (!rig)
|
||||
Signal("Sails rent to pieces", (struct ship *)0);
|
||||
Msg("Sails rent to pieces");
|
||||
}
|
||||
|
||||
void
|
||||
acceptsignal()
|
||||
{
|
||||
char buf[60];
|
||||
register char *p = buf;
|
||||
char *p = buf;
|
||||
|
||||
*p++ = '"';
|
||||
sgetstr("Message? ", p, sizeof buf - 2);
|
||||
|
@ -83,11 +86,12 @@ acceptsignal()
|
|||
Write(W_SIGNAL, ms, 1, (long)buf, 0, 0, 0);
|
||||
}
|
||||
|
||||
void
|
||||
lookout()
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
char buf[3];
|
||||
register char c;
|
||||
char c;
|
||||
|
||||
sgetstr("What ship? ", buf, sizeof buf);
|
||||
foreachship(sp) {
|
||||
|
@ -102,7 +106,7 @@ lookout()
|
|||
|
||||
char *
|
||||
saywhat(sp, flag)
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
char flag;
|
||||
{
|
||||
if (sp->file->captain[0])
|
||||
|
@ -117,18 +121,19 @@ char flag;
|
|||
return "(computer)";
|
||||
}
|
||||
|
||||
void
|
||||
eyeball(ship)
|
||||
register struct ship *ship;
|
||||
struct ship *ship;
|
||||
{
|
||||
int i;
|
||||
|
||||
if (ship->file->dir != 0) {
|
||||
Signal("Sail ho! (range %d, %s)",
|
||||
(struct ship *)0, range(ms, ship), saywhat(ship, 0));
|
||||
Msg("Sail ho! (range %d, %s)",
|
||||
range(ms, ship), saywhat(ship, 0));
|
||||
i = portside(ms, ship, 1) - mf->dir;
|
||||
if (i <= 0)
|
||||
i += 8;
|
||||
Signal("%s (%c%c) %s %s %s.",
|
||||
Signal("%$ %s %s %s.",
|
||||
ship, countryname[ship->nationality],
|
||||
classname[ship->specs->class], directionname[i]);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_5.c,v 1.4 1995/04/24 12:25:21 cgd Exp $ */
|
||||
/* $NetBSD: pl_5.c,v 1.5 1997/10/13 19:45:26 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,11 +33,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_5.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_5.c,v 1.4 1995/04/24 12:25:21 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_5.c,v 1.5 1997/10/13 19:45:26 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -45,6 +46,7 @@ static char rcsid[] = "$NetBSD: pl_5.c,v 1.4 1995/04/24 12:25:21 cgd Exp $";
|
|||
|
||||
#define turnfirst(x) (*x == 'r' || *x == 'l')
|
||||
|
||||
void
|
||||
acceptmove()
|
||||
{
|
||||
int ta;
|
||||
|
@ -54,10 +56,10 @@ acceptmove()
|
|||
int vma, dir;
|
||||
char prompt[60];
|
||||
char buf[60], last = '\0';
|
||||
register char *p;
|
||||
char *p;
|
||||
|
||||
if (!mc->crew3 || snagged(ms) || !windspeed) {
|
||||
Signal("Unable to move", (struct ship *)0);
|
||||
Msg("Unable to move");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -77,22 +79,21 @@ acceptmove()
|
|||
else if (dir == 9)
|
||||
dir = 1;
|
||||
if (last == 't') {
|
||||
Signal("Ship can't turn that fast.",
|
||||
(struct ship *)0);
|
||||
Msg("Ship can't turn that fast.");
|
||||
*p-- = '\0';
|
||||
}
|
||||
last = 't';
|
||||
ma--;
|
||||
ta--;
|
||||
vma = min(ma, maxmove(ms, dir, 0));
|
||||
if (ta < 0 && moved || vma < 0 && moved)
|
||||
if ((ta < 0 && moved) || (vma < 0 && moved))
|
||||
*p-- = '\0';
|
||||
break;
|
||||
case 'b':
|
||||
ma--;
|
||||
vma--;
|
||||
last = 'b';
|
||||
if (ta < 0 && moved || vma < 0 && moved)
|
||||
if ((ta < 0 && moved) || (vma < 0 && moved))
|
||||
*p-- = '\0';
|
||||
break;
|
||||
case '0':
|
||||
|
@ -105,31 +106,29 @@ acceptmove()
|
|||
case '1': case '2': case '3': case '4':
|
||||
case '5': case '6': case '7':
|
||||
if (last == '0') {
|
||||
Signal("Can't move that fast.",
|
||||
(struct ship *)0);
|
||||
Msg("Can't move that fast.");
|
||||
*p-- = '\0';
|
||||
}
|
||||
last = '0';
|
||||
moved = 1;
|
||||
ma -= *p - '0';
|
||||
vma -= *p - '0';
|
||||
if (ta < 0 && moved || vma < 0 && moved)
|
||||
if ((ta < 0 && moved) || (vma < 0 && moved))
|
||||
*p-- = '\0';
|
||||
break;
|
||||
default:
|
||||
if (!isspace(*p)) {
|
||||
Signal("Input error.", (struct ship *)0);
|
||||
Msg("Input error.");
|
||||
*p-- = '\0';
|
||||
}
|
||||
}
|
||||
if (ta < 0 && moved || vma < 0 && moved
|
||||
|| af && turnfirst(buf) && moved) {
|
||||
Signal("Movement error.", (struct ship *)0);
|
||||
if ((ta < 0 && moved) || (vma < 0 && moved)
|
||||
|| (af && turnfirst(buf) && moved)) {
|
||||
Msg("Movement error.");
|
||||
if (ta < 0 && moved) {
|
||||
if (mf->FS == 1) {
|
||||
Write(W_FS, ms, 0, 0, 0, 0, 0);
|
||||
Signal("No hands to set full sails.",
|
||||
(struct ship *)0);
|
||||
Msg("No hands to set full sails.");
|
||||
}
|
||||
} else if (ma >= 0)
|
||||
buf[1] = '\0';
|
||||
|
@ -137,8 +136,7 @@ acceptmove()
|
|||
if (af && !moved) {
|
||||
if (mf->FS == 1) {
|
||||
Write(W_FS, ms, 0, 0, 0, 0, 0);
|
||||
Signal("No hands to set full sails.",
|
||||
(struct ship *)0);
|
||||
Msg("No hands to set full sails.");
|
||||
}
|
||||
}
|
||||
if (*buf)
|
||||
|
@ -146,13 +144,14 @@ acceptmove()
|
|||
else
|
||||
(void) strcpy(movebuf, "d");
|
||||
Write(W_MOVE, ms, 1, (long)movebuf, 0, 0, 0);
|
||||
Signal("Helm: %s.", (struct ship *)0, movebuf);
|
||||
Msg("Helm: %s.", movebuf);
|
||||
}
|
||||
|
||||
void
|
||||
acceptboard()
|
||||
{
|
||||
register struct ship *sp;
|
||||
register int n;
|
||||
struct ship *sp;
|
||||
int n;
|
||||
int crew[3];
|
||||
int men = 0;
|
||||
char c;
|
||||
|
@ -201,13 +200,14 @@ acceptboard()
|
|||
unblockalarm();
|
||||
}
|
||||
|
||||
void
|
||||
parties(crew, to, isdefense, buf)
|
||||
register struct ship *to;
|
||||
struct ship *to;
|
||||
int crew[3];
|
||||
char isdefense;
|
||||
char buf;
|
||||
{
|
||||
register int k, j, men;
|
||||
int k, j, men;
|
||||
struct BP *ptr;
|
||||
int temp[3];
|
||||
|
||||
|
@ -227,8 +227,7 @@ char buf;
|
|||
buf--;
|
||||
}
|
||||
if (buf > '0')
|
||||
Signal("Sending all crew sections.",
|
||||
(struct ship *)0);
|
||||
Msg("Sending all crew sections.");
|
||||
Write(isdefense ? W_DBP : W_OBP, ms, 0,
|
||||
j, turn, to->file->index, men);
|
||||
if (isdefense) {
|
||||
|
@ -255,6 +254,6 @@ char buf;
|
|||
(void) wrefresh(slot_w);
|
||||
unblockalarm();
|
||||
} else
|
||||
Signal("Sending no crew sections.", (struct ship *)0);
|
||||
Msg("Sending no crew sections.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_6.c,v 1.3 1995/04/22 10:37:15 cgd Exp $ */
|
||||
/* $NetBSD: pl_6.c,v 1.4 1997/10/13 19:45:33 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,28 +33,30 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_6.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_6.c,v 1.3 1995/04/22 10:37:15 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_6.c,v 1.4 1997/10/13 19:45:33 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "player.h"
|
||||
|
||||
void
|
||||
repair()
|
||||
{
|
||||
char c;
|
||||
register char *repairs;
|
||||
register struct shipspecs *ptr = mc;
|
||||
register int count;
|
||||
char *repairs;
|
||||
struct shipspecs *ptr = mc;
|
||||
int count;
|
||||
|
||||
#define FIX(x, m) (m - ptr->x > count \
|
||||
? (ptr->x += count, count = 0) : (count -= m - ptr->x, ptr->x = m))
|
||||
|
||||
if (repaired || loaded || fired || changed || turned()) {
|
||||
Signal("No hands free to repair", (struct ship *)0);
|
||||
Msg("No hands free to repair");
|
||||
return;
|
||||
}
|
||||
c = sgetch("Repair (hull, guns, rigging)? ", (struct ship *)0, 1);
|
||||
|
@ -69,7 +71,7 @@ repair()
|
|||
repairs = &mf->RR;
|
||||
break;
|
||||
default:
|
||||
Signal("Avast heaving!", (struct ship *)0);
|
||||
Msg("Avast heaving!");
|
||||
return;
|
||||
}
|
||||
if (++*repairs >= 3) {
|
||||
|
@ -121,7 +123,7 @@ repair()
|
|||
break;
|
||||
}
|
||||
if (count == 2) {
|
||||
Signal("Repairs completed.", (struct ship *)0);
|
||||
Msg("Repairs completed.");
|
||||
*repairs = 2;
|
||||
} else {
|
||||
*repairs = 0;
|
||||
|
@ -136,9 +138,10 @@ repair()
|
|||
repaired = 1;
|
||||
}
|
||||
|
||||
int
|
||||
turned()
|
||||
{
|
||||
register char *p;
|
||||
char *p;
|
||||
|
||||
for (p = movebuf; *p; p++)
|
||||
if (*p == 'r' || *p == 'l')
|
||||
|
@ -146,13 +149,14 @@ turned()
|
|||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
loadplayer()
|
||||
{
|
||||
char c;
|
||||
register loadL, loadR, ready, load;
|
||||
int loadL, loadR, ready, load;
|
||||
|
||||
if (!mc->crew3) {
|
||||
Signal("Out of crew", (struct ship *)0);
|
||||
Msg("Out of crew");
|
||||
return;
|
||||
}
|
||||
loadL = mf->loadL;
|
||||
|
@ -165,7 +169,7 @@ loadplayer()
|
|||
else
|
||||
loadR = 1;
|
||||
}
|
||||
if (!loadL && loadR || loadL && !loadR) {
|
||||
if ((!loadL && loadR) || (loadL && !loadR)) {
|
||||
c = sgetch("Reload with (round, double, chain, grape)? ",
|
||||
(struct ship *)0, 1);
|
||||
switch (c) {
|
||||
|
@ -186,8 +190,7 @@ loadplayer()
|
|||
ready = 0;
|
||||
break;
|
||||
default:
|
||||
Signal("Broadside not loaded.",
|
||||
(struct ship *)0);
|
||||
Msg("Broadside not loaded.");
|
||||
return;
|
||||
}
|
||||
if (!loadR) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_7.c,v 1.6 1995/04/22 10:37:17 cgd Exp $ */
|
||||
/* $NetBSD: pl_7.c,v 1.7 1997/10/13 19:45:39 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,16 +33,23 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_7.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_7.c,v 1.6 1995/04/22 10:37:17 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_7.c,v 1.7 1997/10/13 19:45:39 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/ttydefaults.h>
|
||||
#include "player.h"
|
||||
#ifdef __STDC__
|
||||
#include <stdarg.h>
|
||||
#else
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
/*
|
||||
|
@ -54,6 +61,7 @@ static char *sc_prompt;
|
|||
static char *sc_buf;
|
||||
static int sc_line;
|
||||
|
||||
void
|
||||
initscreen()
|
||||
{
|
||||
/* initscr() already done in SCREENTEST() */
|
||||
|
@ -71,6 +79,7 @@ initscreen()
|
|||
crmode();
|
||||
}
|
||||
|
||||
void
|
||||
cleanupscreen()
|
||||
{
|
||||
/* alarm already turned off */
|
||||
|
@ -82,8 +91,10 @@ cleanupscreen()
|
|||
}
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
newturn()
|
||||
newturn(n)
|
||||
int n;
|
||||
{
|
||||
repaired = loaded = fired = changed = 0;
|
||||
movebuf[0] = '\0';
|
||||
|
@ -135,23 +146,65 @@ newturn()
|
|||
}
|
||||
|
||||
/*VARARGS2*/
|
||||
Signal(fmt, ship, a, b, c, d)
|
||||
char *fmt;
|
||||
register struct ship *ship;
|
||||
int a, b, c, d;
|
||||
void
|
||||
#ifdef __STDC__
|
||||
Signal(const char *fmt, struct ship *ship, ...)
|
||||
#else
|
||||
Signal(va_alist)
|
||||
va_dcl
|
||||
#endif
|
||||
{
|
||||
va_list ap;
|
||||
char format[BUFSIZ];
|
||||
#ifndef __STDC__
|
||||
const char *fmt;
|
||||
struct ship *ship;
|
||||
|
||||
va_start(ap);
|
||||
fmt = va_arg(ap, const char *);
|
||||
ship = va_arg(ap, struct ship *);
|
||||
#else
|
||||
va_start(ap, ship);
|
||||
#endif
|
||||
if (!done_curses)
|
||||
return;
|
||||
if (*fmt == '\7')
|
||||
putchar(*fmt++);
|
||||
if (ship == 0)
|
||||
(void) wprintw(scroll_w, fmt, a, b, c, d);
|
||||
else
|
||||
(void) wprintw(scroll_w, fmt, ship->shipname,
|
||||
colours(ship), sterncolour(ship), a, b, c, d);
|
||||
fmtship(format, sizeof(format), fmt, ship);
|
||||
(void) vwprintw(scroll_w, format, ap);
|
||||
va_end(ap);
|
||||
Scroll();
|
||||
}
|
||||
|
||||
/*VARARGS2*/
|
||||
void
|
||||
#ifdef __STDC__
|
||||
Msg(const char *fmt, ...)
|
||||
#else
|
||||
Msg(va_alist)
|
||||
va_dcl
|
||||
#endif
|
||||
{
|
||||
va_list ap;
|
||||
#ifndef __STDC__
|
||||
const char *fmt;
|
||||
|
||||
va_start(ap);
|
||||
fmt = va_arg(ap, const char *);
|
||||
#else
|
||||
va_start(ap, fmt);
|
||||
#endif
|
||||
|
||||
if (!done_curses)
|
||||
return;
|
||||
if (*fmt == '\7')
|
||||
putchar(*fmt++);
|
||||
(void) vwprintw(scroll_w, fmt, ap);
|
||||
va_end(ap);
|
||||
Scroll();
|
||||
}
|
||||
|
||||
void
|
||||
Scroll()
|
||||
{
|
||||
if (++sc_line >= SCROLL_Y)
|
||||
|
@ -160,8 +213,9 @@ Scroll()
|
|||
(void) wclrtoeol(scroll_w);
|
||||
}
|
||||
|
||||
void
|
||||
prompt(p, ship)
|
||||
register char *p;
|
||||
char *p;
|
||||
struct ship *ship;
|
||||
{
|
||||
static char buf[60];
|
||||
|
@ -177,6 +231,7 @@ struct ship *ship;
|
|||
(void) waddstr(scroll_w, p);
|
||||
}
|
||||
|
||||
void
|
||||
endprompt(flag)
|
||||
char flag;
|
||||
{
|
||||
|
@ -185,12 +240,13 @@ char flag;
|
|||
Scroll();
|
||||
}
|
||||
|
||||
int
|
||||
sgetch(p, ship, flag)
|
||||
char *p;
|
||||
struct ship *ship;
|
||||
char flag;
|
||||
{
|
||||
register c;
|
||||
int c;
|
||||
|
||||
prompt(p, ship);
|
||||
blockalarm();
|
||||
|
@ -204,13 +260,14 @@ char flag;
|
|||
return c;
|
||||
}
|
||||
|
||||
void
|
||||
sgetstr(pr, buf, n)
|
||||
char *pr;
|
||||
register char *buf;
|
||||
register n;
|
||||
char *buf;
|
||||
int n;
|
||||
{
|
||||
register c;
|
||||
register char *p = buf;
|
||||
int c;
|
||||
char *p = buf;
|
||||
|
||||
prompt(pr, (struct ship *)0);
|
||||
sc_buf = buf;
|
||||
|
@ -242,6 +299,7 @@ register n;
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
draw_screen()
|
||||
{
|
||||
draw_view();
|
||||
|
@ -251,9 +309,10 @@ draw_screen()
|
|||
(void) wrefresh(scroll_w); /* move the cursor */
|
||||
}
|
||||
|
||||
void
|
||||
draw_view()
|
||||
{
|
||||
register struct ship *sp;
|
||||
struct ship *sp;
|
||||
|
||||
(void) werase(view_w);
|
||||
foreachship(sp) {
|
||||
|
@ -274,6 +333,7 @@ draw_view()
|
|||
(void) wrefresh(view_w);
|
||||
}
|
||||
|
||||
void
|
||||
draw_turn()
|
||||
{
|
||||
(void) wmove(turn_w, 0, 0);
|
||||
|
@ -281,6 +341,7 @@ draw_turn()
|
|||
(void) wrefresh(turn_w);
|
||||
}
|
||||
|
||||
void
|
||||
draw_stat()
|
||||
{
|
||||
(void) wmove(stat_w, STAT_1, 0);
|
||||
|
@ -321,6 +382,7 @@ draw_stat()
|
|||
(void) wrefresh(stat_w);
|
||||
}
|
||||
|
||||
void
|
||||
draw_slot()
|
||||
{
|
||||
if (!boarding(ms, 0)) {
|
||||
|
@ -384,9 +446,10 @@ draw_slot()
|
|||
(void) wrefresh(slot_w);
|
||||
}
|
||||
|
||||
void
|
||||
draw_board()
|
||||
{
|
||||
register int n;
|
||||
int n;
|
||||
|
||||
(void) clear();
|
||||
(void) werase(view_w);
|
||||
|
@ -431,32 +494,38 @@ draw_board()
|
|||
(void) refresh();
|
||||
}
|
||||
|
||||
void
|
||||
centerview()
|
||||
{
|
||||
viewrow = mf->row - VIEW_Y / 2;
|
||||
viewcol = mf->col - VIEW_X / 2;
|
||||
}
|
||||
|
||||
void
|
||||
upview()
|
||||
{
|
||||
viewrow -= VIEW_Y / 3;
|
||||
}
|
||||
|
||||
void
|
||||
downview()
|
||||
{
|
||||
viewrow += VIEW_Y / 3;
|
||||
}
|
||||
|
||||
void
|
||||
leftview()
|
||||
{
|
||||
viewcol -= VIEW_X / 5;
|
||||
}
|
||||
|
||||
void
|
||||
rightview()
|
||||
{
|
||||
viewcol += VIEW_X / 5;
|
||||
}
|
||||
|
||||
void
|
||||
adjustview()
|
||||
{
|
||||
if (dont_adjust)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pl_main.c,v 1.5 1995/04/24 12:25:25 cgd Exp $ */
|
||||
/* $NetBSD: pl_main.c,v 1.6 1997/10/13 19:45:48 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,21 +33,23 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)pl_main.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: pl_main.c,v 1.5 1995/04/24 12:25:25 cgd Exp $";
|
||||
__RCSID("$NetBSD: pl_main.c,v 1.6 1997/10/13 19:45:48 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "player.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
void choke(), child();
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
pl_main()
|
||||
{
|
||||
|
||||
|
@ -56,11 +58,12 @@ pl_main()
|
|||
exit(1);
|
||||
}
|
||||
initialize();
|
||||
Signal("Aye aye, Sir", (struct ship *)0);
|
||||
Msg("Aye aye, Sir");
|
||||
play();
|
||||
return 0; /* for lint, play() never returns */
|
||||
}
|
||||
|
||||
void
|
||||
initialize()
|
||||
{
|
||||
register struct File *fp;
|
||||
|
@ -248,5 +251,5 @@ reprint:
|
|||
draw_board();
|
||||
(void) sprintf(message, "Captain %s assuming command", captain);
|
||||
Write(W_SIGNAL, ms, 1, (long)message, 0, 0, 0);
|
||||
newturn();
|
||||
newturn(0);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sync.c,v 1.5 1997/01/07 12:42:27 tls Exp $ */
|
||||
/* $NetBSD: sync.c,v 1.6 1997/10/13 19:45:54 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,16 +33,26 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)sync.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: sync.c,v 1.5 1997/01/07 12:42:27 tls Exp $";
|
||||
__RCSID("$NetBSD: sync.c,v 1.6 1997/10/13 19:45:54 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/file.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#ifdef __STDC__
|
||||
#include <stdarg.h>
|
||||
#else
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include "extern.h"
|
||||
|
||||
#define BUFSIZE 4096
|
||||
|
@ -56,26 +66,65 @@ static FILE *sync_fp;
|
|||
#define SF "/tmp/#sailsink.%d"
|
||||
#define LF "/tmp/#saillock.%d"
|
||||
|
||||
/*VARARGS3*/
|
||||
makesignal(from, fmt, ship, a, b, c)
|
||||
struct ship *from;
|
||||
char *fmt;
|
||||
register struct ship *ship;
|
||||
long a, b, c;
|
||||
void
|
||||
fmtship(buf, len, fmt, ship)
|
||||
char *buf;
|
||||
size_t len;
|
||||
const char *fmt;
|
||||
struct ship *ship;
|
||||
{
|
||||
char message[80];
|
||||
while (*fmt) {
|
||||
if (len-- == 0) {
|
||||
*buf = '\0';
|
||||
return;
|
||||
}
|
||||
if (*fmt == '%' && fmt[1] == '$') {
|
||||
size_t l = snprintf(buf, len, "%s (%c%c)",
|
||||
ship->shipname, colours(ship), sterncolour(ship));
|
||||
buf += l;
|
||||
len -= l - 1;
|
||||
fmt += 2;
|
||||
}
|
||||
else
|
||||
*buf++ = *fmt++;
|
||||
}
|
||||
|
||||
if (ship == 0)
|
||||
(void) sprintf(message, fmt, a, b, c);
|
||||
else
|
||||
(void) sprintf(message, fmt,
|
||||
ship->shipname, colours(ship),
|
||||
sterncolour(ship), a, b, c);
|
||||
if (len > 0)
|
||||
*buf = '\0';
|
||||
}
|
||||
|
||||
|
||||
/*VARARGS3*/
|
||||
void
|
||||
#ifdef __STDC__
|
||||
makesignal(struct ship *from, const char *fmt, struct ship *ship, ...)
|
||||
#else
|
||||
makesignal(va_alias)
|
||||
va_dcl
|
||||
#endif
|
||||
{
|
||||
char message[BUFSIZ];
|
||||
char format[BUFSIZ];
|
||||
va_list ap;
|
||||
#ifndef __STDC__
|
||||
struct ship *from;
|
||||
const char *fmt;
|
||||
struct ship *ship;
|
||||
|
||||
va_start(ap);
|
||||
from = va_arg(ap, struct ship *);
|
||||
fmt = va_arg(ap, const char *);
|
||||
ship = va_arg(ap, struct ship *);
|
||||
#else
|
||||
va_start(ap, ship);
|
||||
#endif
|
||||
fmtship(format, sizeof(format), fmt, ship);
|
||||
(void) vsprintf(message, format, ap);
|
||||
va_end(ap);
|
||||
Write(W_SIGNAL, from, 1, (long)message, 0, 0, 0);
|
||||
}
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
int
|
||||
sync_exists(game)
|
||||
{
|
||||
char buf[sizeof sync_file];
|
||||
|
@ -95,6 +144,7 @@ sync_exists(game)
|
|||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
sync_open()
|
||||
{
|
||||
if (sync_fp != NULL)
|
||||
|
@ -113,6 +163,7 @@ sync_open()
|
|||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
sync_close(remove)
|
||||
char remove;
|
||||
{
|
||||
|
@ -122,17 +173,19 @@ sync_close(remove)
|
|||
(void) unlink(sync_file);
|
||||
}
|
||||
|
||||
void
|
||||
Write(type, ship, isstr, a, b, c, d)
|
||||
int type;
|
||||
struct ship *ship;
|
||||
char isstr;
|
||||
int isstr;
|
||||
long a, b, c, d;
|
||||
{
|
||||
|
||||
if (isstr)
|
||||
(void) sprintf(sync_bp, "%d %d %d %s\n",
|
||||
type, ship->file->index, isstr, a);
|
||||
type, ship->file->index, isstr, (char *) a);
|
||||
else
|
||||
(void) sprintf(sync_bp, "%d %d %d %d %d %d %d\n",
|
||||
(void) sprintf(sync_bp, "%d %d %d %ld %ld %ld %ld\n",
|
||||
type, ship->file->index, isstr, a, b, c, d);
|
||||
while (*sync_bp++)
|
||||
;
|
||||
|
@ -142,10 +195,11 @@ Write(type, ship, isstr, a, b, c, d)
|
|||
(void) sync_update(type, ship, a, b, c, d);
|
||||
}
|
||||
|
||||
int
|
||||
Sync()
|
||||
{
|
||||
sig_t sighup, sigint;
|
||||
register n;
|
||||
int n;
|
||||
int type, shipnum, isstr;
|
||||
long a, b, c, d;
|
||||
char buf[80];
|
||||
|
@ -185,7 +239,7 @@ Sync()
|
|||
if (isstr != 0 && isstr != 1)
|
||||
goto bad;
|
||||
if (isstr) {
|
||||
register char *p;
|
||||
char *p;
|
||||
for (p = buf;;) {
|
||||
switch (*p++ = getc(sync_fp)) {
|
||||
case '\n':
|
||||
|
@ -205,7 +259,7 @@ Sync()
|
|||
a = (long)p;
|
||||
b = c = d = 0;
|
||||
} else
|
||||
if (fscanf(sync_fp, "%d%d%d%d", &a, &b, &c, &d) != 4)
|
||||
if (fscanf(sync_fp, "%ld%ld%ld%ld", &a, &b, &c, &d) != 4)
|
||||
goto bad;
|
||||
if (sync_update(type, SHIP(shipnum), a, b, c, d) < 0)
|
||||
goto bad;
|
||||
|
@ -231,28 +285,29 @@ out:
|
|||
return erred ? -1 : 0;
|
||||
}
|
||||
|
||||
int
|
||||
sync_update(type, ship, a, b, c, d)
|
||||
int type;
|
||||
register struct ship *ship;
|
||||
struct ship *ship;
|
||||
long a, b, c, d;
|
||||
{
|
||||
switch (type) {
|
||||
case W_DBP: {
|
||||
register struct BP *p = &ship->file->DBP[a];
|
||||
struct BP *p = &ship->file->DBP[a];
|
||||
p->turnsent = b;
|
||||
p->toship = SHIP(c);
|
||||
p->mensent = d;
|
||||
break;
|
||||
}
|
||||
case W_OBP: {
|
||||
register struct BP *p = &ship->file->OBP[a];
|
||||
struct BP *p = &ship->file->OBP[a];
|
||||
p->turnsent = b;
|
||||
p->toship = SHIP(c);
|
||||
p->mensent = d;
|
||||
break;
|
||||
}
|
||||
case W_FOUL: {
|
||||
register struct snag *p = &ship->file->foul[a];
|
||||
struct snag *p = &ship->file->foul[a];
|
||||
if (SHIP(a)->file->dir == 0)
|
||||
break;
|
||||
if (p->sn_count++ == 0)
|
||||
|
@ -261,7 +316,7 @@ sync_update(type, ship, a, b, c, d)
|
|||
break;
|
||||
}
|
||||
case W_GRAP: {
|
||||
register struct snag *p = &ship->file->grap[a];
|
||||
struct snag *p = &ship->file->grap[a];
|
||||
if (SHIP(a)->file->dir == 0)
|
||||
break;
|
||||
if (p->sn_count++ == 0)
|
||||
|
@ -270,7 +325,7 @@ sync_update(type, ship, a, b, c, d)
|
|||
break;
|
||||
}
|
||||
case W_UNFOUL: {
|
||||
register struct snag *p = &ship->file->foul[a];
|
||||
struct snag *p = &ship->file->foul[a];
|
||||
if (p->sn_count > 0)
|
||||
if (b) {
|
||||
ship->file->nfoul -= p->sn_count;
|
||||
|
@ -282,7 +337,7 @@ sync_update(type, ship, a, b, c, d)
|
|||
break;
|
||||
}
|
||||
case W_UNGRAP: {
|
||||
register struct snag *p = &ship->file->grap[a];
|
||||
struct snag *p = &ship->file->grap[a];
|
||||
if (p->sn_count > 0)
|
||||
if (b) {
|
||||
ship->file->ngrap -= p->sn_count;
|
||||
|
@ -296,12 +351,12 @@ sync_update(type, ship, a, b, c, d)
|
|||
case W_SIGNAL:
|
||||
if (mode == MODE_PLAYER)
|
||||
if (nobells)
|
||||
Signal("%s (%c%c): %s", ship, a);
|
||||
Signal("%$: %s", ship, a);
|
||||
else
|
||||
Signal("\7%s (%c%c): %s", ship, a);
|
||||
Signal("\7%$: %s", ship, a);
|
||||
break;
|
||||
case W_CREW: {
|
||||
register struct shipspecs *s = ship->specs;
|
||||
struct shipspecs *s = ship->specs;
|
||||
s->crew1 = a;
|
||||
s->crew2 = b;
|
||||
s->crew3 = c;
|
||||
|
@ -332,13 +387,13 @@ sync_update(type, ship, a, b, c, d)
|
|||
ship->file->FS = a;
|
||||
break;
|
||||
case W_GUNL: {
|
||||
register struct shipspecs *s = ship->specs;
|
||||
struct shipspecs *s = ship->specs;
|
||||
s->gunL = a;
|
||||
s->carL = b;
|
||||
break;
|
||||
}
|
||||
case W_GUNR: {
|
||||
register struct shipspecs *s = ship->specs;
|
||||
struct shipspecs *s = ship->specs;
|
||||
s->gunR = a;
|
||||
s->carR = b;
|
||||
break;
|
||||
|
@ -361,7 +416,7 @@ sync_update(type, ship, a, b, c, d)
|
|||
ship->specs->qual = a;
|
||||
break;
|
||||
case W_RIGG: {
|
||||
register struct shipspecs *s = ship->specs;
|
||||
struct shipspecs *s = ship->specs;
|
||||
s->rig1 = a;
|
||||
s->rig2 = b;
|
||||
s->rig3 = c;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: version.c,v 1.3 1995/04/22 10:37:27 cgd Exp $ */
|
||||
/* $NetBSD: version.c,v 1.4 1997/10/13 19:46:01 christos Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -33,11 +33,12 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)version.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
static char rcsid[] = "$NetBSD: version.c,v 1.3 1995/04/22 10:37:27 cgd Exp $";
|
||||
__RCSID("$NetBSD: version.c,v 1.4 1997/10/13 19:46:01 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
|
Loading…
Reference in New Issue