-WARNS6 cleanup (1556 warnings)
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 3 Sep 2006 17:33:13 +0000 (17:33 +0000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 3 Sep 2006 17:33:13 +0000 (17:33 +0000)
-ANSI function declarations
-staticize functions
-remove previously commented out code
-remove unneeded -ltermcap and -lcompat
-rename local variable names that shadow globals
-remove void casts for unchecked function returns
-move global variable declarations in externs.h to globals.c
-redefine the blockalarm() and unblockalarm() macros using POSIX and
tty semantics (taken from NetBSD)
-fix a typo in main() that wasn't incrementing the randomize variable
-use variable argument lists froms stdarg where applicable
-add a new function fmtship() which puts ship info in a string that can
later be printed (taken from NetBSD)
-add DragonFly keyword

25 files changed:
games/sail/Makefile
games/sail/assorted.c
games/sail/dr_1.c
games/sail/dr_2.c
games/sail/dr_3.c
games/sail/dr_4.c
games/sail/dr_5.c
games/sail/dr_main.c
games/sail/externs.h
games/sail/game.c
games/sail/globals.c
games/sail/lo_main.c
games/sail/machdep.h
games/sail/main.c
games/sail/misc.c
games/sail/parties.c
games/sail/pl_1.c
games/sail/pl_2.c
games/sail/pl_3.c
games/sail/pl_4.c
games/sail/pl_5.c
games/sail/pl_6.c
games/sail/pl_7.c
games/sail/pl_main.c
games/sail/sync.c

index f389565..66b0f91 100644 (file)
@@ -1,15 +1,16 @@
 #      @(#)Makefile    8.1 (Berkeley) 5/31/93
 # $FreeBSD: src/games/sail/Makefile,v 1.4.2.3 2002/08/07 16:31:42 ru Exp $
-# $DragonFly: src/games/sail/Makefile,v 1.2 2003/06/17 04:25:25 dillon Exp $
+# $DragonFly: src/games/sail/Makefile,v 1.3 2006/09/03 17:33:13 pavalos Exp $
 
 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 \
        assorted.c game.c globals.c misc.c parties.c sync.c version.c
 MAN=   sail.6
-DPADD= ${LIBCURSES} ${LIBTERMCAP} ${LIBCOMPAT}
-LDADD= -lcurses -ltermcap -lcompat
+DPADD= ${LIBCURSES}
+LDADD= -lcurses
 HIDEGAME=hidegame
+WARNS?=        6
 
 beforeinstall:
 .if !exists(${DESTDIR}/var/games/saillog)
index 297b87c..ee778c7 100644 (file)
  *
  * @(#)assorted.c      8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/assorted.c,v 1.5 1999/11/30 03:49:31 billf Exp $
- * $DragonFly: src/games/sail/assorted.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/assorted.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
-table(rig, shot, hittable, on, from, roll)
-struct ship *on, *from;
-int rig, shot, hittable, roll;
+static void    strike(struct ship *, struct ship *);
+
+void
+table(int rig, int shot, int hittable,
+      struct ship *on, struct ship *from, int roll)
 {
        int hhits = 0, chits = 0, ghits = 0, rhits = 0;
        int Ghit = 0, Hhit = 0, Rhit = 0, Chit = 0;
@@ -47,7 +49,7 @@ int rig, shot, hittable, roll;
        int crew[3];
        int n;
        int rigg[4];
-       char *message;
+       const char *message = NULL;
        struct Tables *tp;
 
        pc = on->file->pcrew;
@@ -206,25 +208,12 @@ int rig, shot, hittable, roll;
                }
                makesignal(on, message, (struct ship *)0);
        }
-       /*
-       if (Chit > 1 && on->file->readyL&R_INITIAL && on->file->readyR&R_INITIAL) {
-               on->specs->qual--;
-               if (on->specs->qual <= 0) {
-                       makesignal(on, "crew mutinying!", (struct ship *)0);
-                       on->specs->qual = 5;
-                       Write(W_CAPTURED, on, 0, on->file->index, 0, 0, 0);
-               } else
-                       makesignal(on, "crew demoralized", (struct ship *)0);
-               Write(W_QUAL, on, 0, on->specs->qual, 0, 0, 0);
-       }
-       */
        if (!hull)
                strike(on, from);
 }
 
-Cleansnag(from, to, all, flag)
-struct ship *from, *to;
-char all, flag;
+void
+Cleansnag(struct ship *from, struct ship *to, char all, char flag)
 {
        if (flag & 1) {
                Write(W_UNGRAP, from, 0, to->file->index, all, 0, 0);
@@ -248,8 +237,8 @@ char all, flag;
        }
 }
 
-strike(ship, from)
-struct ship *ship, *from;
+static void
+strike(struct ship *ship, struct ship *from)
 {
        int points;
 
index 7844ab2..15a99dd 100644 (file)
  *
  * @(#)dr_1.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/dr_1.c,v 1.7 1999/11/30 03:49:32 billf Exp $
- * $DragonFly: src/games/sail/dr_1.c,v 1.3 2006/03/12 14:06:39 swildner Exp $
+ * $DragonFly: src/games/sail/dr_1.c,v 1.4 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "driver.h"
 
-unfoul()
+static int     fightitout(struct ship *, struct ship *, int);
+
+void
+unfoul(void)
 {
        struct ship *sp;
        struct ship *to;
@@ -59,7 +62,8 @@ unfoul()
        }
 }
 
-boardcomp()
+void
+boardcomp(void)
 {
        int crew[3];
        struct ship *sp, *sq;
@@ -123,15 +127,14 @@ boardcomp()
        }
 }
 
-fightitout(from, to, key)
-struct ship *from, *to;
-int key;
+static int
+fightitout(struct ship *from, struct ship *to, int key)
 {
        struct ship *fromcap, *tocap;
        int crewfrom[3], crewto[3], menfrom, mento;
        int pcto, pcfrom, fromstrength, strengthto, frominjured, toinjured;
        int topoints;
-       int index, totalfrom = 0, totalto = 0;
+       int idx, totalfrom = 0, totalto = 0;
        int count;
        char message[60];
 
@@ -156,18 +159,18 @@ 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;
-               if (index > 8)
-                       index = 8;
-               toinjured = MT[index][2 - die() / 3];
+               idx = fromstrength/10;
+               if (idx > 8)
+                       idx = 8;
+               toinjured = MT[idx][2 - die() / 3];
                totalto += toinjured;
-               index = strengthto/10;
-               if (index > 8)
-                       index = 8;
-               frominjured = MT[index][2 - die() / 3];
+               idx = strengthto/10;
+               if (idx > 8)
+                       idx = 8;
+               frominjured = MT[idx][2 - die() / 3];
                totalfrom += frominjured;
                menfrom -= frominjured;
                mento -= toinjured;
@@ -179,7 +182,7 @@ int key;
                subtract(from, totalfrom, crewfrom, fromcap, pcfrom);
                subtract(to, totalto, crewto, tocap, pcto);
                makesignal(from, "boarders from %s repelled", to);
-               (void) sprintf(message, "killed in melee: %d.  %s: %d",
+               sprintf(message, "killed in melee: %d.  %s: %d",
                        totalto, from->shipname, totalfrom);
                Write(W_SIGNAL, to, 1, (long) message, 0, 0, 0);
                if (key)
@@ -211,10 +214,10 @@ int key;
                                subtract(to, mento, crewto, tocap, pcto);
                                subtract(from, - mento, crewfrom, to, 0);
                        }
-                       (void) sprintf(message, "captured by the %s!",
+                       sprintf(message, "captured by the %s!",
                                to->shipname);
                        Write(W_SIGNAL, from, 1, (long) message, 0, 0, 0);
-                       (void) sprintf(message, "killed in melee: %d.  %s: %d",
+                       sprintf(message, "killed in melee: %d.  %s: %d",
                                totalto, from->shipname, totalfrom);
                        Write(W_SIGNAL, to, 1, (long) message, 0, 0, 0);
                        mento = 0;
@@ -224,7 +227,8 @@ int key;
        return 0;
 }
 
-resolve()
+void
+resolve(void)
 {
        int thwart;
        struct ship *sp, *sq;
@@ -234,7 +238,7 @@ resolve()
                        continue;
                for (sq = sp + 1; sq < ls; sq++)
                        if (sq->file->dir && meleeing(sp, sq) && meleeing(sq, sp))
-                               (void) fightitout(sp, sq, 0);
+                               fightitout(sp, sq, 0);
                thwart = 2;
                foreachship(sq) {
                        if (sq->file->dir && meleeing(sq, sp))
@@ -254,14 +258,15 @@ resolve()
        }
 }
 
-compcombat()
+void
+compcombat(void)
 {
        int n;
        struct ship *sp;
        struct ship *closest;
        int crew[3], men = 0, target, temp;
        int r, guns, ready, load, car;
-       int index, rakehim, sternrake;
+       int idx, rakehim, sternrake;
        int shootat, hit;
 
        foreachship(sp) {
@@ -333,21 +338,21 @@ compcombat()
                        if (temp > 8)
                                temp -= 8;
                        sternrake = temp > 4 && temp < 6;
-                       index = guns;
+                       idx = guns;
                        if (target < 3)
-                               index += car;
-                       index = (index - 1) / 3;
-                       index = index > 8 ? 8 : index;
+                               idx += car;
+                       idx = (idx - 1) / 3;
+                       idx = idx > 8 ? 8 : idx;
                        if (!rakehim)
-                               hit = HDT[index][target-1];
+                               hit = HDT[idx][target-1];
                        else
-                               hit = HDTrake[index][target-1];
+                               hit = HDTrake[idx][target-1];
                        if (rakehim && sternrake)
                                hit++;
-                       hit += QUAL[index][capship(sp)->specs->qual - 1];
+                       hit += QUAL[idx][capship(sp)->specs->qual - 1];
                        for (n = 0; n < 3 && sp->file->captured == 0; n++)
                                if (!crew[n]) {
-                                       if (index <= 5)
+                                       if (idx <= 5)
                                                hit--;
                                        else
                                                hit -= 2;
@@ -357,18 +362,18 @@ compcombat()
                                        sp->file->readyL &= ~R_INITIAL;
                                else
                                        sp->file->readyR &= ~R_INITIAL;
-                               if (index <= 3)
+                               if (idx <= 3)
                                        hit++;
                                else
                                        hit += 2;
                        }
                        if (sp->file->captured != 0) {
-                               if (index <= 1)
+                               if (idx <= 1)
                                        hit--;
                                else
                                        hit -= 2;
                        }
-                       hit += AMMO[index][load - 1];
+                       hit += AMMO[idx][load - 1];
                        temp = sp->specs->class;
                        if ((temp >= 5 || temp == 1) && windspeed == 5)
                                hit--;
@@ -385,7 +390,8 @@ compcombat()
        }
 }
 
-next()
+int
+next(void)
 {
        if (++turn % 55 == 0) {
                if (alive)
@@ -395,7 +401,7 @@ next()
        }
        if (people <= 0 || windspeed == 7) {
                struct ship *s;
-               struct ship *bestship;
+               struct ship *bestship = NULL;
                float net, best = 0.0;
                foreachship(s) {
                        if (*s->file->captain)
@@ -408,11 +414,13 @@ next()
                }
                if (best > 0.0) {
                        char *p = getenv("WOTD");
-                       if (p == 0)
-                               p = "Driver";
+                       if (p == 0) {
+                               char buf[6] = "Driver";
+                               p = buf;
+                       }
                        if (islower(*p))
                                *p = toupper(*p);
-                       (void) strncpy(bestship->file->captain, p,
+                       strncpy(bestship->file->captain, p,
                                sizeof bestship->file->captain);
                        bestship->file->captain
                                [sizeof bestship->file->captain - 1] = 0;
index a37d46a..840d744 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)dr_2.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/dr_2.c,v 1.6 1999/11/30 03:49:32 billf Exp $
- * $DragonFly: src/games/sail/dr_2.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/dr_2.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include <string.h>
 
 #define couldwin(f,t) (f->specs->crew2 > t->specs->crew2 * 1.5)
 
-thinkofgrapples()
+static char    strend(char *);
+static int     score(char *, struct ship *, struct ship *, char);
+static void    sail_move(char *, struct ship *, unsigned char *, short *, short *, char *);
+static void    try(char *, char *, int, int, int, int, int, struct ship *, struct ship *, int *, int);
+static void    rmend(char *);
+
+void
+thinkofgrapples(void)
 {
        struct ship *sp, *sq;
        char friendly;
@@ -70,7 +77,8 @@ thinkofgrapples()
        }
 }
 
-checkup()
+void
+checkup(void)
 {
        struct ship *sp, *sq;
        char explode, sink;
@@ -100,7 +108,8 @@ checkup()
        }
 }
 
-prizecheck()
+void
+prizecheck(void)
 {
        struct ship *sp;
 
@@ -118,8 +127,8 @@ prizecheck()
        }
 }
 
-strend(str)
-char *str;
+static char
+strend(char *str)
 {
        char *p;
 
@@ -128,10 +137,8 @@ char *str;
        return p == str ? 0 : p[-1];
 }
 
-closeon(from, to, command, ta, ma, af)
-struct ship *from, *to;
-char command[];
-int ma, ta, af;
+void
+closeon(struct ship *from, struct ship *to, char command[], int ta, int ma, int af)
 {
        int high;
        char temp[10];
@@ -143,10 +150,8 @@ int ma, ta, af;
 
 int dtab[] = {0,1,1,2,3,4,4,5};                /* diagonal distances in x==y */
 
-score(movement, ship, to, onlytemp)
-char movement[];
-struct ship *ship, *to;
-char onlytemp;
+static int
+score(char movement[], struct ship *ship, struct ship *to, char onlytemp)
 {
        char drift;
        int row, col, dir, total, ran;
@@ -159,7 +164,7 @@ char onlytemp;
        drift = fp->drift;
        sail_move(movement, ship, &fp->dir, &fp->row, &fp->col, &drift);
        if (!*movement)
-               (void) strcpy(movement, "d");
+               strcpy(movement, "d");
 
        ran = range(ship, to);
        total = -50 * ran;
@@ -176,12 +181,8 @@ char onlytemp;
        return total;
 }
 
-sail_move(p, ship, dir, row, col, drift)
-char *p;
-struct ship *ship;
-char *dir;
-short *row, *col;
-char *drift;
+static void
+sail_move(char *p, struct ship *ship, unsigned char *dir, short *row, short *col, char *drift)
 {
        int dist;
        char moved = 0;
@@ -210,7 +211,7 @@ 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];
@@ -220,10 +221,8 @@ char *drift;
                *drift = 0;
 }
 
-try(command, temp, ma, ta, af, vma, dir, f, t, high, rakeme)
-struct ship *f, *t;
-int ma, ta, af, vma, dir, *high, rakeme;
-char command[], temp[];
+static void
+try(char command[], char temp[], int ma, int ta, int af, int vma, int dir, struct ship *f, struct ship *t, int *high, int rakeme)
 {
        int new, n;
        char st[4];
@@ -231,41 +230,41 @@ char command[], temp[];
 
        if ((n = strend(temp)) < '1' || n > '9')
                for (n = 1; vma - n >= 0; n++) {
-                       (void) sprintf(st, "%d", n);
-                       (void) strcat(temp, st);
+                       sprintf(st, "%d", n);
+                       strcat(temp, st);
                        new = score(temp, f, t, rakeme);
                        if (new > *high && (!rakeme || rakeyou)) {
                                *high = new;
-                               (void) strcpy(command, temp);
+                               strcpy(command, temp);
                        }
                        try(command, temp, ma-n, ta, af, vma-n,
                                dir, f, t, high, rakeme);
                        rmend(temp);
                }
-       if (ma > 0 && ta > 0 && (n = strend(temp)) != 'l' && n != 'r' || !strlen(temp)) {
-               (void) strcat(temp, "r");
+       if ((ma > 0 && ta > 0 && (n = strend(temp)) != 'l' && n != 'r') || !strlen(temp)) {
+               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);
+                       strcpy(command, temp);
                }
                try(command, temp, ma-1, ta-1, af, min(ma-1, maxmove(f, (dir == 8 ? 1 : dir+1), 0)), (dir == 8 ? 1 : dir+1),f,t,high,rakeme);
                rmend(temp);
        }
        if ((ma > 0 && ta > 0 && (n = strend(temp)) != 'l' && n != 'r') || !strlen(temp)){
-               (void) strcat(temp, "l");
+               strcat(temp, "l");
                new = score(temp, f, t, rakeme);
                if (new > *high && (!rakeme || (gunsbear(f, t) && !gunsbear(t, f)))){
                        *high = new;
-                       (void) strcpy(command, temp);
+                       strcpy(command, temp);
                }
                try(command, temp, ma-1, ta-1, af, (min(ma-1,maxmove(f, (dir-1 ? dir-1 : 8), 0))), (dir-1 ? dir -1 : 8), f, t, high, rakeme);
                rmend(temp);
        }
 }
 
-rmend(str)
-char *str;
+static void
+rmend(char *str)
 {
        char *p;
 
index f0ede67..7c0ccd6 100644 (file)
  *
  * @(#)dr_3.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/dr_3.c,v 1.6 1999/11/30 03:49:32 billf Exp $
- * $DragonFly: src/games/sail/dr_3.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/dr_3.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "driver.h"
 
-moveall()              /* move all comp ships */
+static bool    stillmoving(int);
+static bool    isolated(struct ship *);
+static bool    push(struct ship *, struct ship *);
+static void    step(char, struct ship *, char *);
+
+void
+moveall(void)          /* move all comp ships */
 {
        struct ship *sp, *sq;           /* r11, r10 */
        int n;                          /* r9 */
@@ -77,10 +83,10 @@ moveall()           /* move all comp ships */
        n = 0;
        foreachship(sp) {
                if (snagged(sp))
-                       (void) strcpy(sp->file->movebuf, "d");
+                       strcpy(sp->file->movebuf, "d");
                else
                        if (*sp->file->movebuf != 'd')
-                               (void) strcat(sp->file->movebuf, "d");
+                               strcat(sp->file->movebuf, "d");
                row[n] = sp->file->row;
                col[n] = sp->file->col;
                dir[n] = sp->file->dir;
@@ -175,8 +181,8 @@ moveall()           /* move all comp ships */
        }
 }
 
-stillmoving(k)
-int k;
+static bool
+stillmoving(int k)
 {
        struct ship *sp;
 
@@ -186,8 +192,8 @@ int k;
        return 0;
 }
 
-isolated(ship)
-struct ship *ship;
+static bool
+isolated(struct ship *ship)
 {
        struct ship *sp;
 
@@ -198,8 +204,8 @@ struct ship *ship;
        return 1;
 }
 
-push(from, to)
-struct ship *from, *to;
+static bool
+push(struct ship *from, struct ship *to)
 {
        int bs, sb;
 
@@ -212,10 +218,8 @@ struct ship *from, *to;
        return from < to;
 }
 
-step(com, sp, moved)
-char com;
-struct ship *sp;
-char *moved;
+static void
+step(char com, struct ship *sp, char *moved)
 {
        int dist;
 
@@ -243,7 +247,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];
@@ -254,10 +258,8 @@ char *moved;
        }
 }
 
-sendbp(from, to, sections, isdefense)
-struct ship *from, *to;
-int sections;
-char isdefense;
+void
+sendbp(struct ship *from, struct ship *to, int sections, char isdefense)
 {
        int n;
        struct BP *bp;
@@ -276,9 +278,8 @@ char isdefense;
        }
 }
 
-toughmelee(ship, to, isdefense, count)
-struct ship *ship, *to;
-int isdefense, count;
+int
+toughmelee(struct ship *ship, struct ship *to, int isdefense, int count)
 {
        struct BP *bp;
        int obp = 0;
@@ -308,7 +309,8 @@ int isdefense, count;
                return 0;
 }
 
-reload()
+void
+reload(void)
 {
        struct ship *sp;
 
@@ -317,22 +319,23 @@ reload()
        }
 }
 
-checksails()
+void
+checksails(void)
 {
        struct ship *sp;
        int rig, full;
-       struct ship *close;
+       struct ship *closest;
 
        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);
-                       if (close != 0) {
-                               if (range(sp, close) > 9)
+                       closest = closestenemy(sp, 0, 0);
+                       if (closest != 0) {
+                               if (range(sp, closest) > 9)
                                        full = 1;
                                else
                                        full = 0;
index 19815e3..3b466c5 100644 (file)
  *
  * @(#)dr_4.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/dr_4.c,v 1.5 1999/11/30 03:49:32 billf Exp $
- * $DragonFly: src/games/sail/dr_4.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/dr_4.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
-ungrap(from, to)
-struct ship *from, *to;
+void
+ungrap(struct ship *from, struct ship *to)
 {
        int k;
        char friend;
@@ -54,8 +54,8 @@ struct ship *from, *to;
        }
 }
 
-grap(from, to)
-struct ship *from, *to;
+void
+grap(struct ship *from, struct ship *to)
 {
        if (capship(from)->nationality != capship(to)->nationality && die() > 2)
                return;
index a734218..e46d27c 100644 (file)
  *
  * @(#)dr_5.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/dr_5.c,v 1.4 1999/11/30 03:49:33 billf Exp $
- * $DragonFly: src/games/sail/dr_5.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/dr_5.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
-subtract(from, totalfrom, crewfrom, fromcap, pcfrom)
-struct ship *from, *fromcap;
-int pcfrom;
-int  totalfrom, crewfrom[3];
+void
+subtract(struct ship *from, int totalfrom, int crewfrom[3], struct ship *fromcap, int pcfrom)
 {
        int n;
 
@@ -62,10 +60,8 @@ int  totalfrom, crewfrom[3];
        }
 }
 
-mensent(from, to, crew, captured, pc, isdefense)
-struct ship *from, *to, **captured;
-int crew[3], *pc;
-char isdefense;
+int
+mensent(struct ship *from, struct ship *to, int crew[3], struct ship **captured, int *pc, char isdefense)
 {                                      /* returns # of crew squares sent */
        int men = 0;
        int n;
index 5ce0c5c..cf92c5d 100644 (file)
  *
  * @(#)dr_main.c       8.2 (Berkeley) 4/16/94
  * $FreeBSD: src/games/sail/dr_main.c,v 1.4 1999/11/30 03:49:33 billf Exp $
- * $DragonFly: src/games/sail/dr_main.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/dr_main.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "driver.h"
 
-dr_main()
+int
+dr_main(void)
 {
        int n;
        struct ship *sp;
        int nat[NNATION];
        int value = 0;
 
-       (void) signal(SIGINT, SIG_IGN);
-       (void) signal(SIGQUIT, SIG_IGN);
-       (void) signal(SIGTSTP, SIG_IGN);
+       signal(SIGINT, SIG_IGN);
+       signal(SIGQUIT, SIG_IGN);
+       signal(SIGTSTP, SIG_IGN);
        if (issetuid)
-               (void) setuid(geteuid());
+               setuid(geteuid());
        if (game < 0 || game >= NSCENE) {
                fprintf(stderr, "DRIVER: Bad game number %d\n", game);
                exit(1);
@@ -64,7 +65,7 @@ dr_main()
        foreachship(sp) {
                if (sp->file == NULL &&
                    (sp->file = (struct File *)calloc(1, sizeof (struct File))) == NULL) {
-                       (void) fprintf(stderr, "DRIVER: Out of memory.\n");
+                       fprintf(stderr, "DRIVER: Out of memory.\n");
                        exit(1);
                }
                sp->file->index = sp - SHIP(0);
index 0d8dbc7..1af9045 100644 (file)
  * SUCH DAMAGE.
  *
  *     @(#)externs.h   8.1 (Berkeley) 5/31/93
- * $DragonFly: src/games/sail/externs.h,v 1.3 2006/03/12 14:06:39 swildner Exp $
+ * $DragonFly: src/games/sail/externs.h,v 1.4 2006/09/03 17:33:13 pavalos Exp $
  */
 
+#include <stdarg.h>
+#include <stdbool.h>
+#include <string.h>
 #include <stdio.h>
 #include <signal.h>
 #include <ctype.h>
 #include <setjmp.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include "machdep.h"
 
        /* program mode */
-int mode;
-jmp_buf restart;
+extern int mode;
+extern jmp_buf restart;
 #define MODE_PLAYER    1
 #define MODE_DRIVER    2
 #define MODE_LOGGER    3
 
        /* command line flags */
-char debug;                            /* -D */
-char randomize;                                /* -x, give first available ship */
-char longfmt;                          /* -l, print score in long format */
-char nobells;                          /* -b, don't ring bell before Signal */
+extern char debug;                             /* -D */
+extern char randomize;                         /* -x, give first available ship */
+extern char longfmt;                           /* -l, print score in long format */
+extern char nobells;                           /* -b, don't ring bell before Signal */
 
        /* other initial modes */
-char issetuid;                         /* running setuid */
+extern char issetuid;                          /* running setuid */
 
 #define die()           (random() % 6 + 1)
 #define sqr(a)         ((a) * (a))
@@ -184,8 +188,8 @@ struct File {
        int index;
        char captain[20];               /* 0 */
        short points;                   /* 20 */
-       char loadL;                     /* 22 */
-       char loadR;                     /* 24 */
+       unsigned char loadL;            /* 22 */
+       unsigned char loadR;            /* 24 */
        char readyL;                    /* 26 */
        char readyR;                    /* 28 */
        struct BP OBP[NBP];             /* 30 */
@@ -205,7 +209,7 @@ struct File {
        char FS;                        /* 280 */
        char explode;                   /* 282 */
        char sink;                      /* 284 */
-       char dir;
+       unsigned char dir;
        short col;
        short row;
        char loadwith;
@@ -213,9 +217,9 @@ struct File {
 };
 
 struct ship {
-       char *shipname;                 /* 0 */
+       const char *shipname;           /* 0 */
        struct shipspecs *specs;        /* 2 */
-       char nationality;               /* 4 */
+       unsigned char nationality;      /* 4 */
        short shiprow;                  /* 6 */
        short shipcol;                  /* 8 */
        char shipdir;                   /* 10 */
@@ -226,21 +230,21 @@ struct scenario {
        char winddir;                   /* 0 */
        char windspeed;                 /* 2 */
        char windchange;                /* 4 */
-       char vessels;                   /* 12 */
-       char *name;                     /* 14 */
+       unsigned char vessels;          /* 12 */
+       const char *name;               /* 14 */
        struct ship ship[NSHIP];        /* 16 */
 };
 extern struct scenario scene[];
-int nscene;
+extern int nscene;
 
 struct shipspecs {
        char bs;
        char fs;
        char ta;
        short guns;
-       char class;
+       unsigned char class;
        char hull;
-       char qual;
+       unsigned char qual;
        char crew1;
        char crew2;
        char crew3;
@@ -256,8 +260,8 @@ struct shipspecs {
 };
 extern struct shipspecs specs[];
 
-struct scenario *cc;           /* the current scenario */
-struct ship *ls;               /* &cc->ship[cc->vessels] */
+extern struct scenario *cc;    /* the current scenario */
+extern struct ship *ls;                /* &cc->ship[cc->vessels] */
 
 #define SHIP(s)                (&cc->ship[s])
 #define foreachship(sp)        for ((sp) = cc->ship; (sp) < ls; (sp)++)
@@ -265,49 +269,148 @@ struct ship *ls;         /* &cc->ship[cc->vessels] */
 struct windeffects {
        char A, B, C, D;
 };
-struct windeffects WET[7][6];
+extern struct windeffects WET[7][6];
 
 struct Tables {
        char H, G, C, R;
 };
-struct Tables RigTable[11][6];
-struct Tables HullTable[11][6];
-
-char AMMO[9][4];
-char HDT[9][10];
-char HDTrake[9][10];
-char QUAL[9][5];
-char MT[9][3];
-
-extern char *countryname[];
-extern char *classname[];
-extern char *directionname[];
-extern char *qualname[];
+extern struct Tables RigTable[11][6];
+extern struct Tables HullTable[11][6];
+
+extern char AMMO[9][4];
+extern char HDT[9][10];
+extern char HDTrake[9][10];
+extern char QUAL[9][5];
+extern char MT[9][3];
+
+extern const char *countryname[];
+extern const char *classname[];
+extern const char *directionname[];
+extern const char *qualname[];
 extern char loadname[];
 
 extern char rangeofshot[];
 
 extern char dr[], dc[];
 
-int winddir;
-int windspeed;
-int turn;
-int game;
-int alive;
-int people;
-char hasdriver;
-
-char *info();
-char *quality();
-double arctan();
-char *saywhat();
-struct ship *closestenemy();
-
-char *rindex();
-char *strcpy();
-char *strcat();
-char *strncpy();
-char *getenv();
-char *gets();
-
-int    write_log(struct ship *s);
+extern int winddir;
+extern int windspeed;
+extern int turn;
+extern int game;
+extern int alive;
+extern int people;
+extern char hasdriver;
+
+/* assorted.c */
+void   table(int, int, int, struct ship *, struct ship *, int);
+void   Cleansnag(struct ship *, struct ship *, char, char);
+
+/* dr_1.c */
+void   unfoul(void);
+void   boardcomp(void);
+void   resolve(void);
+void   compcombat(void);
+int    next(void);
+
+/* dr_2.c */
+void   thinkofgrapples(void);
+void   checkup(void);
+void   prizecheck(void);
+void   closeon(struct ship *, struct ship *, char *, int, int, int);
+
+/* dr_3.c */
+void   moveall(void);
+void   sendbp(struct ship *, struct ship *, int, char);
+int    toughmelee(struct ship *, struct ship *, int, int);
+void   reload(void);
+void   checksails(void);
+
+/* dr_4.c */
+void   ungrap(struct ship *, struct ship *);
+void   grap(struct ship *, struct ship *);
+
+/* dr_5.c */
+void   subtract(struct ship *, int, int [3], struct ship *, int);
+int    mensent(struct ship *, struct ship *, int [3], struct ship **, int *, char);
+
+/* dr_main.c */
+int    dr_main(void);
+
+/* game.c */
+int    maxturns(struct ship *, char *);
+int    maxmove(struct ship *, int, int);
+
+/* lo_main.c */
+int    lo_main(void);
+
+/* misc.c */
+int    range(struct ship *, struct ship *);
+struct ship    *closestenemy(struct ship *, char, char);
+char   gunsbear(struct ship *, struct ship *);
+int    portside(struct ship *, struct ship *, int);
+char   colours(struct ship *);
+void   write_log(struct ship *);
+
+/* parties.c */
+bool   meleeing(struct ship *, struct ship *);
+bool   boarding(struct ship *, char);
+void   unboard(struct ship *, struct ship *, char);
+
+/* pl_1.c */
+void   leave(int);
+void   choke(void);
+void   child(void);
+
+/* pl_2.c */
+void   play(void);
+
+/* pl_3.c */
+void   acceptcombat(void);
+void   grapungrap(void);
+void   unfoulplayer(void);
+
+/* pl_4.c */
+void   changesail(void);
+void   acceptsignal(void);
+void   lookout(void);
+const char     *saywhat(struct ship *, char);
+void   eyeball(struct ship *);
+
+/* pl_5.c */
+void   acceptmove(void);
+void   acceptboard(void);
+
+/* pl_6.c */
+void   repair(void);
+void   loadplayer(void);
+
+/* pl_7.c */
+void   initscreen(void);
+void   cleanupscreen(void);
+void   newturn(void);
+void   Signal(const char *, struct ship *, ...);
+int    sgetch(const char *, struct ship *, char);
+void   sgetstr(const char *, char *, int);
+void   draw_screen(void);
+void   draw_view(void);
+void   draw_turn(void);
+void   draw_stat(void);
+void   draw_slot(void);
+void   draw_board(void);
+void   centerview(void);
+void   upview(void);
+void   downview(void);
+void   leftview(void);
+void   rightview(void);
+
+/* pl_main.c */
+int    pl_main(void);
+
+/* sync.c */
+void   fmtship(char *, size_t, const char *, struct ship *);
+void   makesignal(struct ship *, const char *, struct ship *, ...);
+bool   sync_exists(int);
+int    sync_open(void);
+void   sync_close(char);
+void   Write(int, struct ship *, char, int, int, int, int);
+int    Sync(void);
index 135108a..73f9de4 100644 (file)
  *
  * @(#)game.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/game.c,v 1.5 1999/11/30 03:49:33 billf Exp $
- * $DragonFly: src/games/sail/game.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/game.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
-maxturns(ship, af)
-struct ship *ship;
-char *af;
+int
+maxturns(struct ship *ship, char *af)
 {
        int turns;
 
        turns = ship->specs->ta;
-       if (*af = (ship->file->drift > 1 && turns)) {
+       if ((*af = (ship->file->drift > 1 && turns))) {
                turns--;
                if (ship->file->FS == 1)
                        turns = 0;
@@ -52,9 +51,8 @@ char *af;
        return turns;
 }
 
-maxmove(ship, dir, fs)
-struct ship *ship;
-int dir, fs;
+int
+maxmove(struct ship *ship, int dir, int fs)
 {
        int riggone = 0, Move, flank = 0;
 
index a843105..06e982e 100644 (file)
  *
  * @(#)globals.c       8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/globals.c,v 1.3 1999/11/30 03:49:34 billf Exp $
- * $DragonFly: src/games/sail/globals.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/globals.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
+int mode;
+jmp_buf restart;
+        /* command line flags */
+char debug;                             /* -D */
+char randomize;                         /* -x, give first available ship */
+char longfmt;                           /* -l, print score in long format */
+char nobells;                           /* -b, don't ring bell before Signal */
+
+        /* other initial modes */
+char issetuid;                          /* running setuid */
+
 struct scenario scene[] = {
        /*
         * int winddir;
         * int windspeed;
         * int windchange;
         * int vessels;
-        * char *name;
+        * const char *name;
         * struct ship ship[NSHIP];
         */
-       5, 3, 5, 2, "Ranger vs. Drake",
+       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",
+       }},
+       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",
+       }},
+       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 },
@@ -68,8 +79,8 @@ struct scenario scene[] = {
                { "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",
+       }},
+       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 },
@@ -81,33 +92,33 @@ struct scenario scene[] = {
                { "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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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 },
@@ -119,53 +130,53 @@ struct scenario scene[] = {
                { "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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       2, 2, 3, 10, "Algeciras",
        {
                { "Caesar",             specs+49, N_B,  7, 70, 6, 0 },
                { "Pompee",             specs+50, N_B,  5, 72, 6, 0 },
@@ -177,8 +188,8 @@ struct scenario scene[] = {
                { "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",
+       }},
+       5, 3, 6, 7, "Lake Champlain",
        {
                { "Saratoga",           specs+60, N_A,  8, 10, 1, 0 },
                { "Eagle",              specs+61, N_A,  9, 13, 2, 0 },
@@ -187,73 +198,73 @@ struct scenario scene[] = {
                { "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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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 },
                { "Napolean",           specs+56, N_F,  1, 40, 6, 0 }
-       },
-       6, 4, 7, 5, "Cape Horn",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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",
+       }},
+       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 },
@@ -261,8 +272,8 @@ struct scenario scene[] = {
                { "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",
+       }},
+       1, 3, 4, 8, "Star Trek",
        {
                { "Enterprise",         specs+76, N_D,-10, 60, 7, 0 },
                { "Yorktown",           specs+77, N_D,  0, 70, 7, 0 },
@@ -272,101 +283,104 @@ struct scenario scene[] = {
                { "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);
 
 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        */
 };
 
+struct scenario *cc;            /* the current scenario */
+struct ship *ls;                /* &cc->ship[cc->vessels] */
+
 struct windeffects WET[7][6] = {
        { {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9} },
        { {3,2,2,0}, {3,2,1,0}, {3,2,1,0}, {3,2,1,0}, {2,1,0,0}, {2,1,0,0} },
@@ -472,12 +486,12 @@ char rangeofshot[] = {
        1               /* double */
 };
 
-char *countryname[] = {
+const char *countryname[] = {
        "American", "British", "Spanish", "French", "Japanese",
        "Federation", "Klingon", "Orion"
 };
 
-char *classname[] = {
+const char *classname[] = {
        "Drift wood",
        "Ship of the Line",
        "Ship of the Line",
@@ -487,7 +501,7 @@ char *classname[] = {
        "Brig"
 };
 
-char *directionname[] = {
+const char *directionname[] = {
        "dead ahead",
        "off the starboard bow",
        "off the starboard beam",
@@ -499,9 +513,17 @@ char *directionname[] = {
        "dead ahead"
 };
 
-char *qualname[] = { "dead", "mutinous", "green", "mundane", "crack", "elite" };
+const char *qualname[] = { "dead", "mutinous", "green", "mundane", "crack", "elite" };
 
 char loadname[] = { '-', 'G', 'C', 'R', 'D', 'E' };
 
 char dr[] = { 0, 1, 1, 0, -1, -1, -1, 0, 1 };
 char dc[] = { 0, 0, -1, -1, -1, 0, 1, 1, 1 };
+
+int winddir;
+int windspeed;
+int turn;
+int game;
+int alive;
+int people;
+char hasdriver;
index e7b5764..20a8a62 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)lo_main.c       8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/lo_main.c,v 1.2 1999/11/30 03:49:34 billf Exp $
- * $DragonFly: src/games/sail/lo_main.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/lo_main.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 /*
 #include "externs.h"
 #include "pathnames.h"
 
-char *title[] = {
+const char *title[] = {
        "Admiral", "Commodore", "Captain", "Captain",
        "Captain", "Captain", "Captain", "Commander",
        "Commander", "Lieutenant"
 };
 
-lo_main()
+int
+lo_main(void)
 {
        FILE *fp;
        char sbuf[32];
-       int n = 0, people;
+       int n = 0, ppl;
        struct passwd *pass;
        struct logs log;
        struct ship *ship;
@@ -64,7 +65,7 @@ lo_main()
                perror(_PATH_LOGFILE);
                exit(1);
        }
-       switch (fread((char *)&people, sizeof people, 1, fp)) {
+       switch (fread((char *)&ppl, sizeof ppl, 1, fp)) {
        case 0:
                printf("Nobody has sailed yet.\n");
                exit(0);
@@ -77,15 +78,15 @@ lo_main()
        while (fread((char *)&log, sizeof log, 1, fp) == 1 &&
               log.l_name[0] != '\0') {
                if (longfmt && (pass = getpwuid(log.l_uid)) != NULL)
-                       (void) sprintf(sbuf, "%10.10s (%s)",
+                       sprintf(sbuf, "%10.10s (%s)",
                                log.l_name, pass->pw_name);
                else
-                       (void) sprintf(sbuf, "%20.20s", log.l_name);
+                       sprintf(sbuf, "%20.20s", log.l_name);
                ship = &scene[log.l_gamenum].ship[log.l_shipnum];
                printf("%-10s %21s of the %15s %3d points, %5.2f equiv\n",
                        title[n++], sbuf, ship->shipname, log.l_netpoints,
                        (float) log.l_netpoints / ship->specs->pts);
        }
-       printf("\n%d people have played.\n", people);
+       printf("\n%d people have played.\n", ppl);
        return 0;
 }
index 148da5d..4ce6ad3 100644 (file)
  * SUCH DAMAGE.
  *
  *     @(#)machdep.h   8.1 (Berkeley) 5/31/93
+ * $DragonFly: src/games/sail/machdep.h,v 1.2 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #define TIMEOUT 300                            /* Sync() timeout in seconds */
 
-/* for 4.2bsd machines */
-#define blockalarm()   ((void) sigblock(1 << SIGALRM-1))
-#define unblockalarm() ((void) sigsetmask(sigblock(0) & ~(1 << SIGALRM-1)))
-
-/* for 2.9bsd machines (onyx)
-typedef int void;
-#define blockalarm()   ((void) sighold(SIGALRM))
-#define unblockalarm() ((void) sigrelse(SIGALRM))
-*/
+/* for POSIX systems */
+#define        blockalarm() \
+       do {                                                            \
+               sigset_t sigset;                                        \
+               sigemptyset(&sigset);                                   \
+               sigaddset(&sigset, SIGALRM);                            \
+               sigprocmask(SIG_BLOCK, &sigset, (sigset_t *)0);         \
+       } while (0)
+#define        unblockalarm() \
+       do {                                                            \
+               sigset_t sigset;                                        \
+               sigemptyset(&sigset);                                   \
+               sigaddset(&sigset, SIGALRM);                            \
+               sigprocmask(SIG_UNBLOCK, &sigset, (sigset_t *)0);       \
+       } while (0)
index bfc06c0..3fd6a60 100644 (file)
  * @(#) Copyright (c) 1983, 1993 The Regents of the University of California.  All rights reserved.
  * @(#)main.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/main.c,v 1.5 1999/11/30 03:49:34 billf Exp $
- * $DragonFly: src/games/sail/main.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/main.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
 /*ARGSUSED*/
-main(argc, argv)
-       int argc;
-       char **argv;
+int
+main(__unused int argc, char **argv)
 {
        char *p;
        int i;
 
        srandomdev();
        issetuid = getuid() != geteuid();
-       if (p = rindex(*argv, '/'))
+       if ((p = rindex(*argv, '/')))
                p++;
        else
                p = *argv;
@@ -70,7 +69,7 @@ main(argc, argv)
                        debug++;
                        break;
                case 'x':
-                       randomize;
+                       randomize++;
                        break;
                case 'l':
                        longfmt++;
@@ -86,7 +85,7 @@ main(argc, argv)
                game = atoi(*argv);
        else
                game = -1;
-       if (i = setjmp(restart))
+       if ((i = setjmp(restart)))
                mode = i;
        switch (mode) {
        case MODE_PLAYER:
index 2a83aaa..bf31c3e 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)misc.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/misc.c,v 1.5 1999/11/30 03:49:34 billf Exp $
- * $DragonFly: src/games/sail/misc.c,v 1.3 2006/03/12 14:06:39 swildner Exp $
+ * $DragonFly: src/games/sail/misc.c,v 1.4 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
 #define distance(x,y) (abs(x) >= abs(y) ? abs(x) + abs(y)/2 : abs(y) + abs(x)/2)
 
+static int     angle(int, int);
+
 /* XXX */
-range(from, to)
-struct ship *from, *to;
+int
+range(struct ship *from, struct ship *to)
 {
        int bow1r, bow1c, bow2r, bow2c;
        int stern1r, stern1c, stern2c, stern2r;
@@ -69,9 +71,7 @@ struct ship *from, *to;
 }
 
 struct ship *
-closestenemy(from, side, anyship)
-struct ship *from;
-char side, anyship;
+closestenemy(struct ship *from, char side, char anyship)
 {
        struct ship *sp;
        char a;
@@ -97,35 +97,35 @@ char side, anyship;
        return closest;
 }
 
-angle(dr, dc)
-int dr, dc;
+static int
+angle(int Dr, int Dc)
 {
        int i;
 
-       if (dc >= 0 && dr > 0)
+       if (Dc >= 0 && Dr > 0)
                i = 0;
-       else if (dr <= 0 && dc > 0)
+       else if (Dr <= 0 && Dc > 0)
                i = 2;
-       else if (dc <= 0 && dr < 0)
+       else if (Dc <= 0 && Dr < 0)
                i = 4;
        else
                i = 6;
-       dr = abs(dr);
-       dc = abs(dc);
-       if ((i == 0 || i == 4) && dc * 2.4 > dr) {
+       Dr = abs(Dr);
+       Dc = abs(Dc);
+       if ((i == 0 || i == 4) && Dc * 2.4 > Dr) {
                i++;
-               if (dc > dr * 2.4)
+               if (Dc > Dr * 2.4)
                        i++;
-       } else if ((i == 2 || i == 6) && dr * 2.4 > dc) {
+       } else if ((i == 2 || i == 6) && Dr * 2.4 > Dc) {
                i++;
-               if (dr > dc * 2.4)
+               if (Dr > Dc * 2.4)
                        i++;
        }
        return i % 8 + 1;
 }
 
-gunsbear(from, to)             /* checks for target bow or stern */
-struct ship *from, *to;
+char
+gunsbear(struct ship *from, struct ship *to)   /* checks for target bow or stern */
 {
        int Dr, Dc, i;
        int ang;
@@ -145,9 +145,9 @@ struct ship *from, *to;
        return 0;
 }
 
-portside(from, on, quick)
-struct ship *from, *on;
-int quick;                     /* returns true if fromship is */
+int
+portside(struct ship *from, struct ship *on, int quick)
+                               /* returns true if fromship is */
 {                              /* shooting at onship's starboard side */
        int ang;
        int Dr, Dc;
@@ -165,10 +165,10 @@ int quick;                        /* returns true if fromship is */
        return ang < 5;
 }
 
-colours(sp)
-struct ship *sp;
+char
+colours(struct ship *sp)
 {
-       char flag;
+       char flag = 0;
 
        if (sp->file->struck)
                flag = '!';
@@ -183,8 +183,8 @@ struct ship *sp;
 }
 
 #include <sys/file.h>
-write_log(s)
-struct ship *s;
+void
+write_log(struct ship *s)
 {
        FILE *fp;
        int persons;
@@ -207,27 +207,27 @@ struct ship *s;
                        = lp->l_gamenum = lp->l_netpoints = 0;
        rewind(fp);
        if (persons < 0)
-               (void) putw(1, fp);
+               putw(1, fp);
        else
-               (void) putw(persons + 1, fp);
+               putw(persons + 1, fp);
        for (lp = log; lp < &log[NLOG]; lp++)
                if (net > (float)lp->l_netpoints
                    / scene[lp->l_gamenum].ship[lp->l_shipnum].specs->pts) {
-                       (void) fwrite((char *)log,
+                       fwrite((char *)log,
                                sizeof (struct logs), lp - log, fp);
-                       (void) strcpy(log[NLOG-1].l_name, s->file->captain);
+                       strcpy(log[NLOG-1].l_name, s->file->captain);
                        log[NLOG-1].l_uid = getuid();
                        log[NLOG-1].l_shipnum = s->file->index;
                        log[NLOG-1].l_gamenum = game;
                        log[NLOG-1].l_netpoints = s->file->points;
-                       (void) fwrite((char *)&log[NLOG-1],
+                       fwrite((char *)&log[NLOG-1],
                                sizeof (struct logs), 1, fp);
-                       (void) fwrite((char *)lp,
+                       fwrite((char *)lp,
                                sizeof (struct logs), &log[NLOG-1] - lp, fp);
                        break;
                }
 #ifdef LOCK_EX
-       (void) flock(fileno(fp), LOCK_UN);
+       flock(fileno(fp), LOCK_UN);
 #endif
-       (void) fclose(fp);
+       fclose(fp);
 }
index 713a580..816789a 100644 (file)
  *
  * @(#)parties.c       8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/parties.c,v 1.5 1999/11/30 03:49:35 billf Exp $
- * $DragonFly: src/games/sail/parties.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/parties.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
 
-meleeing(from, to)
-struct ship *from;
-struct ship *to;
+bool
+meleeing(struct ship *from, struct ship *to)
 {
        struct BP *p = from->file->OBP;
        struct BP *q = p + NBP;
@@ -50,9 +49,8 @@ struct ship *to;
        return 0;
 }
 
-boarding(from, isdefense)
-struct ship *from;
-char isdefense;
+bool
+boarding(struct ship *from, char isdefense)
 {
        struct BP *p = isdefense ? from->file->DBP : from->file->OBP;
        struct BP *q = p + NBP;
@@ -63,9 +61,8 @@ char isdefense;
        return 0;
 }
 
-unboard(ship, to, isdefense)
-struct ship *ship, *to;
-char isdefense;
+void
+unboard(struct ship *ship, struct ship *to, char isdefense)
 {
        struct BP *p = isdefense ? ship->file->DBP : ship->file->OBP;
        int n;
index 1d3be85..a793fda 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)pl_1.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_1.c,v 1.2 1999/11/30 03:49:36 billf Exp $
- * $DragonFly: src/games/sail/pl_1.c,v 1.3 2006/03/12 14:06:39 swildner Exp $
+ * $DragonFly: src/games/sail/pl_1.c,v 1.4 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "player.h"
  * Of course, we don't do any more Sync()'s if we got here
  * because of a Sync() failure.
  */
-leave(conditions)
-int conditions;
+void
+leave(int conditions)
 {
-       (void) signal(SIGHUP, SIG_IGN);
-       (void) signal(SIGINT, SIG_IGN);
-       (void) signal(SIGQUIT, SIG_IGN);
-       (void) signal(SIGALRM, SIG_IGN);
-       (void) signal(SIGCHLD, SIG_IGN);
+       signal(SIGHUP, SIG_IGN);
+       signal(SIGINT, SIG_IGN);
+       signal(SIGQUIT, SIG_IGN);
+       signal(SIGALRM, SIG_IGN);
+       signal(SIGCHLD, SIG_IGN);
 
        if (done_curses) {
                Signal("It looks like you've had it!",
@@ -105,7 +105,7 @@ int conditions;
                        makesignal(ms, "Captain %s relinquishing.",
                                (struct ship *)0, mf->captain);
                        Write(W_END, ms, 0, 0, 0, 0, 0);
-                       (void) Sync();
+                       Sync();
                }
        }
        sync_close(!hasdriver);
@@ -114,22 +114,22 @@ int conditions;
 }
 
 void
-choke()
+choke(void)
 {
        leave(LEAVE_QUIT);
 }
 
 void
-child()
+child(void)
 {
        union wait status;
        int pid;
 
-       (void) signal(SIGCHLD, SIG_IGN);
+       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);
+       signal(SIGCHLD, (sig_t)child);
 }
index e46281c..0c8b5c1 100644 (file)
  *
  * @(#)pl_2.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_2.c,v 1.4 1999/11/30 03:49:36 billf Exp $
- * $DragonFly: src/games/sail/pl_2.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/pl_2.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "player.h"
 
-play()
+void
+play(void)
 {
        struct ship *sp;
 
@@ -105,7 +106,7 @@ play()
                        break;
                case 'i':
                        if ((sp = closestenemy(ms, 0, 1)) == 0)
-                               Signal("No more ships left.");
+                               Signal("No more ships left.", (struct ship *)0);
                        else
                                eyeball(sp);
                        break;
index bdab83a..390cda6 100644 (file)
  *
  * @(#)pl_3.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_3.c,v 1.6 1999/11/30 03:49:37 billf Exp $
- * $DragonFly: src/games/sail/pl_3.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/pl_3.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "player.h"
 
-acceptcombat()
+void
+acceptcombat(void)
 {
        int men = 0;
        int target, temp;
        int n, r;
-       int index, rakehim, sternrake;
+       int idx, rakehim, sternrake;
        int hhits = 0, ghits = 0, rhits = 0, chits = 0;
        int crew[3];
        int load;
@@ -78,7 +79,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;
@@ -88,7 +89,7 @@ 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.",
                        closest, r ? "right" : "left");
@@ -130,38 +131,38 @@ acceptcombat()
                        else
                                Signal("Stern Rake! %s splintering!", closest);
                }
-               index = guns;
+               idx = guns;
                if (target < 3)
-                       index += car;
-               index = (index - 1)/3;
-               index = index > 8 ? 8 : index;
+                       idx += car;
+               idx = (idx - 1)/3;
+               idx = idx > 8 ? 8 : idx;
                if (!rakehim)
-                       hit = HDT[index][target-1];
+                       hit = HDT[idx][target-1];
                else
-                       hit = HDTrake[index][target-1];
+                       hit = HDTrake[idx][target-1];
                if (rakehim && sternrake)
                        hit++;
-               hit += QUAL[index][mc->qual-1];
+               hit += QUAL[idx][mc->qual-1];
                for (n = 0; n < 3 && mf->captured == 0; n++)
                        if (!crew[n]) {
-                               if (index <= 5)
+                               if (idx <= 5)
                                        hit--;
                                else
                                        hit -= 2;
                        }
                if (ready & R_INITIAL) {
-                       if (index <= 3)
+                       if (idx <= 3)
                                hit++;
                        else
                                hit += 2;
                }
                if (mf->captured != 0) {
-                       if (index <= 1)
+                       if (idx <= 1)
                                hit--;
                        else
                                hit -= 2;
                }
-               hit += AMMO[index][load - 1];
+               hit += AMMO[idx][load - 1];
                if (((temp = mc->class) >= 5 || temp == 1) && windspeed == 5)
                        hit--;
                if (windspeed == 6 && temp == 4)
@@ -212,7 +213,8 @@ acceptcombat()
        unblockalarm();
 }
 
-grapungrap()
+void
+grapungrap(void)
 {
        struct ship *sp;
        int i;
@@ -254,7 +256,8 @@ grapungrap()
        }
 }
 
-unfoulplayer()
+void
+unfoulplayer(void)
 {
        struct ship *to;
        int i;
index 81a3cf6..3466032 100644 (file)
  *
  * @(#)pl_4.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_4.c,v 1.5 1999/11/30 03:49:37 billf Exp $
- * $DragonFly: src/games/sail/pl_4.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/pl_4.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "player.h"
 
-changesail()
+void
+changesail(void)
 {
        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) {
@@ -63,7 +64,8 @@ changesail()
                Signal("Sails rent to pieces", (struct ship *)0);
 }
 
-acceptsignal()
+void
+acceptsignal(void)
 {
        char buf[60];
        char *p = buf;
@@ -77,7 +79,8 @@ acceptsignal()
        Write(W_SIGNAL, ms, 1, (long)buf, 0, 0, 0);
 }
 
-lookout()
+void
+lookout(void)
 {
        struct ship *sp;
        char buf[3];
@@ -94,10 +97,8 @@ lookout()
        }
 }
 
-char *
-saywhat(sp, flag)
-struct ship *sp;
-char flag;
+const char *
+saywhat(struct ship *sp, char flag)
 {
        if (sp->file->captain[0])
                return sp->file->captain;
@@ -111,8 +112,8 @@ char flag;
                return "(computer)";
 }
 
-eyeball(ship)
-struct ship *ship;
+void
+eyeball(struct ship *ship)
 {
        int i;
 
index a606c15..150bf99 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)pl_5.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_5.c,v 1.6 1999/11/30 03:49:37 billf Exp $
- * $DragonFly: src/games/sail/pl_5.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/pl_5.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include <string.h>
 
 #define turnfirst(x) (*x == 'r' || *x == 'l')
 
-acceptmove()
+static void    parties(int [3], struct ship *, char, char);
+
+void
+acceptmove(void)
 {
        int ta;
        int ma;
@@ -58,7 +61,7 @@ acceptmove()
 
        ta = maxturns(ms, &af);
        ma = maxmove(ms, mf->dir, 0);
-       (void) sprintf(prompt, "move (%d,%c%d): ", ma, af ? '\'' : ' ', ta);
+       sprintf(prompt, "move (%d,%c%d): ", ma, af ? '\'' : ' ', ta);
        sgetstr(prompt, buf, sizeof buf);
        dir = mf->dir;
        vma = ma;
@@ -80,14 +83,14 @@ acceptmove()
                        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':
@@ -108,7 +111,7 @@ acceptmove()
                        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:
@@ -117,8 +120,8 @@ acceptmove()
                                *p-- = '\0';
                        }
                }
-       if (ta < 0 && moved || vma < 0 && moved
-           || af && turnfirst(buf) && moved) {
+       if ((ta < 0 && moved) || (vma < 0 && moved)
+           || (af && turnfirst(buf) && moved)) {
                Signal("Movement error.", (struct ship *)0);
                if (ta < 0 && moved) {
                        if (mf->FS == 1) {
@@ -137,14 +140,15 @@ acceptmove()
                }
        }
        if (*buf)
-               (void) strcpy(movebuf, buf);
+               strcpy(movebuf, buf);
        else
-               (void) strcpy(movebuf, "d");
+               strcpy(movebuf, "d");
        Write(W_MOVE, ms, 1, (int)movebuf, 0, 0, 0);
        Signal("Helm: %s.", (struct ship *)0, movebuf);
 }
 
-acceptboard()
+void
+acceptboard(void)
 {
        struct ship *sp;
        int n;
@@ -196,11 +200,8 @@ acceptboard()
        unblockalarm();
 }
 
-parties(crew, to, isdefense, buf)
-struct ship *to;
-int crew[3];
-char isdefense;
-char buf;
+static void
+parties(int crew[3], struct ship *to, char isdefense, char buf)
 {
        int k, j, men;
        struct BP *ptr;
@@ -227,27 +228,27 @@ char buf;
                        Write(isdefense ? W_DBP : W_OBP, ms, 0,
                                j, turn, to->file->index, men);
                        if (isdefense) {
-                               (void) wmove(slot_w, 2, 0);
+                               wmove(slot_w, 2, 0);
                                for (k=0; k < NBP; k++)
                                        if (temp[k] && !crew[k])
-                                               (void) waddch(slot_w, k + '1');
+                                               waddch(slot_w, k + '1');
                                        else
-                                               (void) wmove(slot_w, 2, 1 + k);
-                               (void) mvwaddstr(slot_w, 3, 0, "DBP");
+                                               wmove(slot_w, 2, 1 + k);
+                               mvwaddstr(slot_w, 3, 0, "DBP");
                                makesignal(ms, "repelling boarders",
                                        (struct ship *)0);
                        } else {
-                               (void) wmove(slot_w, 0, 0);
+                               wmove(slot_w, 0, 0);
                                for (k=0; k < NBP; k++)
                                        if (temp[k] && !crew[k])
-                                               (void) waddch(slot_w, k + '1');
+                                               waddch(slot_w, k + '1');
                                        else
-                                               (void) wmove(slot_w, 0, 1 + k);
-                               (void) mvwaddstr(slot_w, 1, 0, "OBP");
+                                               wmove(slot_w, 0, 1 + k);
+                               mvwaddstr(slot_w, 1, 0, "OBP");
                                makesignal(ms, "boarding the %s (%c%c)", to);
                        }
                        blockalarm();
-                       (void) wrefresh(slot_w);
+                       wrefresh(slot_w);
                        unblockalarm();
                } else
                        Signal("Sending no crew sections.", (struct ship *)0);
index 0408bb1..6542e3c 100644 (file)
  *
  * @(#)pl_6.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_6.c,v 1.5 1999/11/30 03:49:37 billf Exp $
- * $DragonFly: src/games/sail/pl_6.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/pl_6.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "player.h"
 
-repair()
+static bool    turned(void);
+
+void
+repair(void)
 {
        char c;
        char *repairs;
@@ -130,7 +133,8 @@ repair()
        repaired = 1;
 }
 
-turned()
+static bool
+turned(void)
 {
        char *p;
 
@@ -140,7 +144,8 @@ turned()
        return 0;
 }
 
-loadplayer()
+void
+loadplayer(void)
 {
        char c;
        int loadL, loadR, ready, load;
@@ -159,7 +164,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) {
index b2a8441..a94bdba 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)pl_7.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_7.c,v 1.7 1999/11/30 03:49:37 billf Exp $
- * $DragonFly: src/games/sail/pl_7.c,v 1.2 2003/06/17 04:25:25 dillon Exp $
+ * $DragonFly: src/games/sail/pl_7.c,v 1.3 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include <sys/ttydefaults.h>
  */
 
 static char sc_hasprompt;
-static char *sc_prompt;
-static char *sc_buf;
+static const char *sc_prompt;
+static const char *sc_buf;
 static int sc_line;
 
-initscreen()
+static void    Scroll(void);
+static void    prompt(const char *, struct ship *);
+static void    endprompt(char);
+static void    adjustview(void);
+
+void
+initscreen(void)
 {
        /* initscr() already done in SCREENTEST() */
        view_w = newwin(VIEW_Y, VIEW_X, VIEW_T, VIEW_L);
@@ -58,32 +64,33 @@ initscreen()
        stat_w = newwin(STAT_Y, STAT_X, STAT_T, STAT_L);
        turn_w = newwin(TURN_Y, TURN_X, TURN_T, TURN_L);
        done_curses++;
-       (void) leaveok(view_w, 1);
-       (void) leaveok(slot_w, 1);
-       (void) leaveok(stat_w, 1);
-       (void) leaveok(turn_w, 1);
+       leaveok(view_w, 1);
+       leaveok(slot_w, 1);
+       leaveok(stat_w, 1);
+       leaveok(turn_w, 1);
        noecho();
        crmode();
 }
 
-cleanupscreen()
+void
+cleanupscreen(void)
 {
        /* alarm already turned off */
        if (done_curses) {
-               (void) wmove(scroll_w, SCROLL_Y - 1, 0);
-               (void) wclrtoeol(scroll_w);
+               wmove(scroll_w, SCROLL_Y - 1, 0);
+               wclrtoeol(scroll_w);
                draw_screen();
                endwin();
        }
 }
 
 void
-newturn()
+newturn(void)
 {
        repaired = loaded = fired = changed = 0;
        movebuf[0] = '\0';
 
-       (void) alarm(0);
+       alarm(0);
        if (mf->readyL & R_LOADING) {
                if (mf->readyL & R_DOUBLE)
                        mf->readyL = R_LOADING;
@@ -100,15 +107,15 @@ newturn()
                Write(W_DDEAD, SHIP(0), 0, 0, 0, 0, 0);
 
        if (sc_hasprompt) {
-               (void) wmove(scroll_w, sc_line, 0);
-               (void) wclrtoeol(scroll_w);
+               wmove(scroll_w, sc_line, 0);
+               wclrtoeol(scroll_w);
        }
        if (Sync() < 0)
                leave(LEAVE_SYNC);
        if (!hasdriver)
                leave(LEAVE_DRIVER);
        if (sc_hasprompt)
-               (void) wprintw(scroll_w, "%s%s", sc_prompt, sc_buf);
+               wprintw(scroll_w, "%s%s", sc_prompt, sc_buf);
 
        if (turn % 50 == 0)
                Write(W_ALIVE, SHIP(0), 0, 0, 0, 0, 0);
@@ -127,84 +134,84 @@ newturn()
        adjustview();
        draw_screen();
 
-       (void) signal(SIGALRM, newturn);
-       (void) alarm(7);
+       signal(SIGALRM, (sig_t)newturn);
+       alarm(7);
 }
 
 /*VARARGS2*/
-Signal(fmt, ship, a, b, c, d)
-char *fmt;
-struct ship *ship;
-int a, b, c, d;
+void
+Signal(const char *fmt, struct ship *ship, ...)
 {
+       va_list ap;
+       char format[BUFSIZ];
+
        if (!done_curses)
                return;
+       va_start(ap, ship);
        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);
+               vw_printw(scroll_w, fmt, ap);
+       else {
+               fmtship(format, sizeof(format), fmt, ship);
+               vw_printw(scroll_w, format, ap);
+       }
+       va_end(ap);
        Scroll();
 }
 
-Scroll()
+static void
+Scroll(void)
 {
        if (++sc_line >= SCROLL_Y)
                sc_line = 0;
-       (void) wmove(scroll_w, sc_line, 0);
-       (void) wclrtoeol(scroll_w);
+       wmove(scroll_w, sc_line, 0);
+       wclrtoeol(scroll_w);
 }
 
-prompt(p, ship)
-char *p;
-struct ship *ship;
+static void
+prompt(const char *p, struct ship *ship)
 {
        static char buf[60];
 
        if (ship != 0) {
-               (void)sprintf(buf, p, ship->shipname, colours(ship),
+               printf(buf, p, ship->shipname, colours(ship),
                        sterncolour(ship));
                p = buf;
        }
        sc_prompt = p;
        sc_buf = "";
        sc_hasprompt = 1;
-       (void) waddstr(scroll_w, p);
+       waddstr(scroll_w, p);
 }
 
-endprompt(flag)
-char flag;
+static void
+endprompt(char flag)
 {
        sc_hasprompt = 0;
        if (flag)
                Scroll();
 }
 
-sgetch(p, ship, flag)
-char *p;
-struct ship *ship;
-char flag;
+int
+sgetch(const char *p, struct ship *ship, char flag)
 {
        int c;
 
        prompt(p, ship);
        blockalarm();
-       (void) wrefresh(scroll_w);
+       wrefresh(scroll_w);
        unblockalarm();
        while ((c = wgetch(scroll_w)) == EOF)
                ;
        if (flag && c >= ' ' && c < 0x7f)
-               (void) waddch(scroll_w, c);
+               waddch(scroll_w, c);
        endprompt(flag);
        return c;
 }
 
-sgetstr(pr, buf, n)
-char *pr;
-char *buf;
-int n;
+void
+sgetstr(const char *pr, char *buf, int n)
 {
        int c;
        char *p = buf;
@@ -214,7 +221,7 @@ int n;
        for (;;) {
                *p = 0;
                blockalarm();
-               (void) wrefresh(scroll_w);
+               wrefresh(scroll_w);
                unblockalarm();
                while ((c = wgetch(scroll_w)) == EOF)
                        ;
@@ -225,236 +232,248 @@ int n;
                        return;
                case '\b':
                        if (p > buf) {
-                               (void) waddstr(scroll_w, "\b \b");
+                               waddstr(scroll_w, "\b \b");
                                p--;
                        }
                        break;
                default:
                        if (c >= ' ' && c < 0x7f && p < buf + n - 1) {
                                *p++ = c;
-                               (void) waddch(scroll_w, c);
+                               waddch(scroll_w, c);
                        } else
-                               (void) putchar(CTRL('g'));
+                               putchar(CTRL('g'));
                }
        }
 }
 
-draw_screen()
+void
+draw_screen(void)
 {
        draw_view();
        draw_turn();
        draw_stat();
        draw_slot();
-       (void) wrefresh(scroll_w);              /* move the cursor */
+       wrefresh(scroll_w);             /* move the cursor */
 }
 
-draw_view()
+void
+draw_view(void)
 {
        struct ship *sp;
 
-       (void) werase(view_w);
+       werase(view_w);
        foreachship(sp) {
                if (sp->file->dir
                    && sp->file->row > viewrow
                    && sp->file->row < viewrow + VIEW_Y
                    && sp->file->col > viewcol
                    && sp->file->col < viewcol + VIEW_X) {
-                       (void) wmove(view_w, sp->file->row - viewrow,
+                       wmove(view_w, sp->file->row - viewrow,
                                sp->file->col - viewcol);
-                       (void) waddch(view_w, colours(sp));
-                       (void) wmove(view_w,
+                       waddch(view_w, colours(sp));
+                       wmove(view_w,
                                sternrow(sp) - viewrow,
                                sterncol(sp) - viewcol);
-                       (void) waddch(view_w, sterncolour(sp));
+                       waddch(view_w, sterncolour(sp));
                }
        }
-       (void) wrefresh(view_w);
+       wrefresh(view_w);
 }
 
-draw_turn()
+void
+draw_turn(void)
 {
-       (void) wmove(turn_w, 0, 0);
-       (void) wprintw(turn_w, "%cTurn %d", dont_adjust?'*':'-', turn);
-       (void) wrefresh(turn_w);
+       wmove(turn_w, 0, 0);
+       wprintw(turn_w, "%cTurn %d", dont_adjust?'*':'-', turn);
+       wrefresh(turn_w);
 }
 
-draw_stat()
+void
+draw_stat(void)
 {
-       (void) wmove(stat_w, STAT_1, 0);
-       (void) wprintw(stat_w, "Points  %3d\n", mf->points);
-       (void) wprintw(stat_w, "Fouls    %2d\n", fouled(ms));
-       (void) wprintw(stat_w, "Grapples %2d\n", grappled(ms));
+       wmove(stat_w, STAT_1, 0);
+       wprintw(stat_w, "Points  %3d\n", mf->points);
+       wprintw(stat_w, "Fouls    %2d\n", fouled(ms));
+       wprintw(stat_w, "Grapples %2d\n", grappled(ms));
 
-       (void) wmove(stat_w, STAT_2, 0);
-       (void) wprintw(stat_w, "    0 %c(%c)\n",
+       wmove(stat_w, STAT_2, 0);
+       wprintw(stat_w, "    0 %c(%c)\n",
                maxmove(ms, winddir + 3, -1) + '0',
                maxmove(ms, winddir + 3, 1) + '0');
-       (void) waddstr(stat_w, "   \\|/\n");
-       (void) wprintw(stat_w, "   -^-%c(%c)\n",
+       waddstr(stat_w, "   \\|/\n");
+       wprintw(stat_w, "   -^-%c(%c)\n",
                maxmove(ms, winddir + 2, -1) + '0',
                maxmove(ms, winddir + 2, 1) + '0');
-       (void) waddstr(stat_w, "   /|\\\n");
-       (void) wprintw(stat_w, "    | %c(%c)\n",
+       waddstr(stat_w, "   /|\\\n");
+       wprintw(stat_w, "    | %c(%c)\n",
                maxmove(ms, winddir + 1, -1) + '0',
                maxmove(ms, winddir + 1, 1) + '0');
-       (void) wprintw(stat_w, "   %c(%c)\n",
+       wprintw(stat_w, "   %c(%c)\n",
                maxmove(ms, winddir, -1) + '0',
                maxmove(ms, winddir, 1) + '0');
 
-       (void) wmove(stat_w, STAT_3, 0);
-       (void) wprintw(stat_w, "Load  %c%c %c%c\n",
+       wmove(stat_w, STAT_3, 0);
+       wprintw(stat_w, "Load  %c%c %c%c\n",
                loadname[mf->loadL], readyname(mf->readyL),
                loadname[mf->loadR], readyname(mf->readyR));
-       (void) wprintw(stat_w, "Hull %2d\n", mc->hull);
-       (void) wprintw(stat_w, "Crew %2d %2d %2d\n",
+       wprintw(stat_w, "Hull %2d\n", mc->hull);
+       wprintw(stat_w, "Crew %2d %2d %2d\n",
                mc->crew1, mc->crew2, mc->crew3);
-       (void) wprintw(stat_w, "Guns %2d %2d\n", mc->gunL, mc->gunR);
-       (void) wprintw(stat_w, "Carr %2d %2d\n", mc->carL, mc->carR);
-       (void) wprintw(stat_w, "Rigg %d %d %d ", mc->rig1, mc->rig2, mc->rig3);
+       wprintw(stat_w, "Guns %2d %2d\n", mc->gunL, mc->gunR);
+       wprintw(stat_w, "Carr %2d %2d\n", mc->carL, mc->carR);
+       wprintw(stat_w, "Rigg %d %d %d ", mc->rig1, mc->rig2, mc->rig3);
        if (mc->rig4 < 0)
-               (void) waddch(stat_w, '-');
+               waddch(stat_w, '-');
        else
-               (void) wprintw(stat_w, "%d", mc->rig4);
-       (void) wrefresh(stat_w);
+               wprintw(stat_w, "%d", mc->rig4);
+       wrefresh(stat_w);
 }
 
-draw_slot()
+void
+draw_slot(void)
 {
        if (!boarding(ms, 0)) {
-               (void) mvwaddstr(slot_w, 0, 0, "   ");
-               (void) mvwaddstr(slot_w, 1, 0, "   ");
+               mvwaddstr(slot_w, 0, 0, "   ");
+               mvwaddstr(slot_w, 1, 0, "   ");
        } else
-               (void) mvwaddstr(slot_w, 1, 0, "OBP");
+               mvwaddstr(slot_w, 1, 0, "OBP");
        if (!boarding(ms, 1)) {
-               (void) mvwaddstr(slot_w, 2, 0, "   ");
-               (void) mvwaddstr(slot_w, 3, 0, "   ");
+               mvwaddstr(slot_w, 2, 0, "   ");
+               mvwaddstr(slot_w, 3, 0, "   ");
        } else
-               (void) mvwaddstr(slot_w, 3, 0, "DBP");
+               mvwaddstr(slot_w, 3, 0, "DBP");
 
-       (void) wmove(slot_w, SLOT_Y-4, 0);
+       wmove(slot_w, SLOT_Y-4, 0);
        if (mf->RH)
-               (void) wprintw(slot_w, "%dRH", mf->RH);
+               wprintw(slot_w, "%dRH", mf->RH);
        else
-               (void) waddstr(slot_w, "   ");
-       (void) wmove(slot_w, SLOT_Y-3, 0);
+               waddstr(slot_w, "   ");
+       wmove(slot_w, SLOT_Y-3, 0);
        if (mf->RG)
-               (void) wprintw(slot_w, "%dRG", mf->RG);
+               wprintw(slot_w, "%dRG", mf->RG);
        else
-               (void) waddstr(slot_w, "   ");
-       (void) wmove(slot_w, SLOT_Y-2, 0);
+               waddstr(slot_w, "   ");
+       wmove(slot_w, SLOT_Y-2, 0);
        if (mf->RR)
-               (void) wprintw(slot_w, "%dRR", mf->RR);
+               wprintw(slot_w, "%dRR", mf->RR);
        else
-               (void) waddstr(slot_w, "   ");
+               waddstr(slot_w, "   ");
 
 #define Y      (SLOT_Y/2)
-       (void) wmove(slot_w, 7, 1);
-       (void) wprintw(slot_w,"%d", windspeed);
-       (void) mvwaddch(slot_w, Y, 0, ' ');
-       (void) mvwaddch(slot_w, Y, 2, ' ');
-       (void) mvwaddch(slot_w, Y-1, 0, ' ');
-       (void) mvwaddch(slot_w, Y-1, 1, ' ');
-       (void) mvwaddch(slot_w, Y-1, 2, ' ');
-       (void) mvwaddch(slot_w, Y+1, 0, ' ');
-       (void) mvwaddch(slot_w, Y+1, 1, ' ');
-       (void) mvwaddch(slot_w, Y+1, 2, ' ');
-       (void) wmove(slot_w, Y - dr[winddir], 1 - dc[winddir]);
+       wmove(slot_w, 7, 1);
+       wprintw(slot_w,"%d", windspeed);
+       mvwaddch(slot_w, Y, 0, ' ');
+       mvwaddch(slot_w, Y, 2, ' ');
+       mvwaddch(slot_w, Y-1, 0, ' ');
+       mvwaddch(slot_w, Y-1, 1, ' ');
+       mvwaddch(slot_w, Y-1, 2, ' ');
+       mvwaddch(slot_w, Y+1, 0, ' ');
+       mvwaddch(slot_w, Y+1, 1, ' ');
+       mvwaddch(slot_w, Y+1, 2, ' ');
+       wmove(slot_w, Y - dr[winddir], 1 - dc[winddir]);
        switch (winddir) {
        case 1:
        case 5:
-               (void) waddch(slot_w, '|');
+               waddch(slot_w, '|');
                break;
        case 2:
        case 6:
-               (void) waddch(slot_w, '/');
+               waddch(slot_w, '/');
                break;
        case 3:
        case 7:
-               (void) waddch(slot_w, '-');
+               waddch(slot_w, '-');
                break;
        case 4:
        case 8:
-               (void) waddch(slot_w, '\\');
+               waddch(slot_w, '\\');
                break;
        }
-       (void) mvwaddch(slot_w, Y + dr[winddir], 1 + dc[winddir], '+');
-       (void) wrefresh(slot_w);
+       mvwaddch(slot_w, Y + dr[winddir], 1 + dc[winddir], '+');
+       wrefresh(slot_w);
 }
 
-draw_board()
+void
+draw_board(void)
 {
        int n;
 
-       (void) clear();
-       (void) werase(view_w);
-       (void) werase(slot_w);
-       (void) werase(scroll_w);
-       (void) werase(stat_w);
-       (void) werase(turn_w);
+       clear();
+       werase(view_w);
+       werase(slot_w);
+       werase(scroll_w);
+       werase(stat_w);
+       werase(turn_w);
 
        sc_line = 0;
 
-       (void) move(BOX_T, BOX_L);
+       move(BOX_T, BOX_L);
        for (n = 0; n < BOX_X; n++)
-               (void) addch('-');
-       (void) move(BOX_B, BOX_L);
+               addch('-');
+       move(BOX_B, BOX_L);
        for (n = 0; n < BOX_X; n++)
-               (void) addch('-');
+               addch('-');
        for (n = BOX_T+1; n < BOX_B; n++) {
-               (void) mvaddch(n, BOX_L, '|');
-               (void) mvaddch(n, BOX_R, '|');
+               mvaddch(n, BOX_L, '|');
+               mvaddch(n, BOX_R, '|');
        }
-       (void) mvaddch(BOX_T, BOX_L, '+');
-       (void) mvaddch(BOX_T, BOX_R, '+');
-       (void) mvaddch(BOX_B, BOX_L, '+');
-       (void) mvaddch(BOX_B, BOX_R, '+');
-       (void) refresh();
+       mvaddch(BOX_T, BOX_L, '+');
+       mvaddch(BOX_T, BOX_R, '+');
+       mvaddch(BOX_B, BOX_L, '+');
+       mvaddch(BOX_B, BOX_R, '+');
+       refresh();
 
 #define WSaIM "Wooden Ships & Iron Men"
-       (void) wmove(view_w, 2, (VIEW_X - sizeof WSaIM - 1) / 2);
-       (void) waddstr(view_w, WSaIM);
-       (void) wmove(view_w, 4, (VIEW_X - strlen(cc->name)) / 2);
-       (void) waddstr(view_w, cc->name);
-       (void) wrefresh(view_w);
-
-       (void) move(LINE_T, LINE_L);
-       (void) printw("Class %d %s (%d guns) '%s' (%c%c)",
+       wmove(view_w, 2, (VIEW_X - sizeof WSaIM - 1) / 2);
+       waddstr(view_w, WSaIM);
+       wmove(view_w, 4, (VIEW_X - strlen(cc->name)) / 2);
+       waddstr(view_w, cc->name);
+       wrefresh(view_w);
+
+       move(LINE_T, LINE_L);
+       printw("Class %d %s (%d guns) '%s' (%c%c)",
                mc->class,
                classname[mc->class],
                mc->guns,
                ms->shipname,
                colours(ms),
                sterncolour(ms));
-       (void) refresh();
+       refresh();
 }
 
-centerview()
+void
+centerview(void)
 {
        viewrow = mf->row - VIEW_Y / 2;
        viewcol = mf->col - VIEW_X / 2;
 }
 
-upview()
+void
+upview(void)
 {
        viewrow -= VIEW_Y / 3;
 }
 
-downview()
+void
+downview(void)
 {
        viewrow += VIEW_Y / 3;
 }
 
-leftview()
+void
+leftview(void)
 {
        viewcol -= VIEW_X / 5;
 }
 
-rightview()
+void
+rightview(void)
 {
        viewcol += VIEW_X / 5;
 }
 
-adjustview()
+static void
+adjustview(void)
 {
        if (dont_adjust)
                return;
index d85186b..7dca6f4 100644 (file)
  *
  * @(#)pl_main.c       8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/pl_main.c,v 1.6 1999/11/30 03:49:38 billf Exp $
- * $DragonFly: src/games/sail/pl_main.c,v 1.3 2006/08/20 22:18:48 swildner Exp $
+ * $DragonFly: src/games/sail/pl_main.c,v 1.4 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "player.h"
 #include <sys/types.h>
 #include <sys/wait.h>
 
-void choke(), child();
+static void    initialize(void);
 
 /*ARGSUSED*/
-pl_main()
+int
+pl_main(void)
 {
 
        if (!SCREENTEST()) {
@@ -55,7 +56,8 @@ pl_main()
        return 0;                       /* for lint,  play() never returns */
 }
 
-initialize()
+static void
+initialize(void)
 {
        struct File *fp;
        struct ship *sp;
@@ -67,8 +69,8 @@ initialize()
        int nat[NNATION];
 
        if (game < 0) {
-               (void) puts("Choose a scenario:\n");
-               (void) puts("\n\tNUMBER\tSHIPS\tIN PLAY\tTITLE");
+               puts("Choose a scenario:\n");
+               puts("\n\tNUMBER\tSHIPS\tIN PLAY\tTITLE");
                for (n = 0; n < NSCENE; n++) {
                        /* ( */
                        printf("\t%d):\t%d\t%s\t%s\n", n, scene[n].vessels,
@@ -77,13 +79,13 @@ initialize()
                }
 reprint:
                printf("\nScenario number? ");
-               (void) fflush(stdout);
-               (void) scanf("%d", &game);
+               fflush(stdout);
+               scanf("%d", &game);
                while (getchar() != '\n')
                        ;
        }
        if (game < 0 || game >= NSCENE) {
-               (void) puts("Very funny.");
+               puts("Very funny.");
                exit(1);
        }
        cc = &scene[game];
@@ -94,7 +96,7 @@ reprint:
        foreachship(sp) {
                if (sp->file == NULL &&
                    (sp->file = (struct File *)calloc(1, sizeof (struct File))) == NULL) {
-                       (void) puts("OUT OF MEMORY");
+                       puts("OUT OF MEMORY");
                        exit(1);
                }
                sp->file->index = sp - SHIP(0);
@@ -106,8 +108,8 @@ reprint:
        windspeed = cc->windspeed;
        winddir = cc->winddir;
 
-       (void) signal(SIGHUP, choke);
-       (void) signal(SIGINT, choke);
+       signal(SIGHUP, (sig_t)choke);
+       signal(SIGINT, (sig_t)choke);
 
        hasdriver = sync_exists(game);
        if (sync_open() < 0) {
@@ -116,8 +118,8 @@ reprint:
        }
 
        if (hasdriver) {
-               (void) puts("Synchronizing with the other players...");
-               (void) fflush(stdout);
+               puts("Synchronizing with the other players...");
+               fflush(stdout);
                if (Sync() < 0)
                        leave(LEAVE_SYNC);
        }
@@ -127,7 +129,7 @@ reprint:
                            && sp->file->captured == 0)
                                break;
                if (sp >= ls) {
-                       (void) puts("All ships taken in that scenario.");
+                       puts("All ships taken in that scenario.");
                        foreachship(sp)
                                free((char *)sp->file);
                        sync_close(0);
@@ -146,12 +148,12 @@ reprint:
                                        sp->specs->pts,
                                        saywhat(sp, 1));
                        printf("\nWhich ship (0-%d)? ", cc->vessels-1);
-                       (void) fflush(stdout);
+                       fflush(stdout);
                        if (scanf("%d", &player) != 1 || player < 0
                            || player >= cc->vessels) {
                                while (getchar() != '\n')
                                        ;
-                               (void) puts("Say what?");
+                               puts("Say what?");
                                player = -1;
                        } else
                                while (getchar() != '\n')
@@ -163,7 +165,7 @@ reprint:
                        leave(LEAVE_SYNC);
                fp = SHIP(player)->file;
                if (fp->captain[0] || fp->struck || fp->captured != 0)
-                       (void) puts("That ship is taken.");
+                       puts("That ship is taken.");
                else
                        break;
        }
@@ -176,7 +178,7 @@ reprint:
        if (Sync() < 0)
                leave(LEAVE_SYNC);
 
-       (void) signal(SIGCHLD, child);
+       signal(SIGCHLD, (sig_t)child);
        if (!hasdriver)
                switch (fork()) {
                case 0:
@@ -194,13 +196,13 @@ reprint:
                ms->shipname, mc->guns, classname[mc->class],
                qualname[mc->qual]);
        if ((nameptr = (char *) getenv("SAILNAME")) && *nameptr)
-               (void) strncpy(captain, nameptr, sizeof captain);
+               strncpy(captain, nameptr, sizeof captain);
        else {
-               (void) printf("Your name, Captain? ");
-               (void) fflush(stdout);
-               (void) fgets(captain, sizeof captain, stdin);
+               printf("Your name, Captain? ");
+               fflush(stdout);
+               fgets(captain, sizeof captain, stdin);
                if (!*captain)
-                       (void) strcpy(captain, "no name");
+                       strcpy(captain, "no name");
                else
                        captain[sizeof(captain) - 1] = '\0';
        }
@@ -210,8 +212,8 @@ reprint:
 
                printf("\nInitial broadside %s (grape, chain, round, double): ",
                        n ? "right" : "left");
-               (void) fflush(stdout);
-               (void) scanf("%9s", buf);
+               fflush(stdout);
+               scanf("%9s", buf);
                switch (*buf) {
                case 'g':
                        load = L_GRAPE;
@@ -239,7 +241,7 @@ reprint:
 
        initscreen();
        draw_board();
-       (void) sprintf(message, "Captain %s assuming command", captain);
+       sprintf(message, "Captain %s assuming command", captain);
        Write(W_SIGNAL, ms, 1, (long)message, 0, 0, 0);
        newturn();
 }
index 41ca1d6..9861d5a 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)sync.c  8.1 (Berkeley) 5/31/93
  * $FreeBSD: src/games/sail/sync.c,v 1.9 1999/11/30 03:49:38 billf Exp $
- * $DragonFly: src/games/sail/sync.c,v 1.3 2005/04/29 09:22:57 joerg Exp $
+ * $DragonFly: src/games/sail/sync.c,v 1.4 2006/09/03 17:33:13 pavalos Exp $
  */
 
 #include "externs.h"
@@ -50,55 +50,83 @@ static FILE *sync_fp;
 #define SF "/tmp/#sailsink.%d"
 #define LF "/tmp/#saillock.%d"
 
+static int     sync_update(int, struct ship *, long, long, long, long);
+
+void
+fmtship(char *buf, size_t len, const char *fmt, struct ship *ship)
+{
+       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 (len > 0)
+               *buf = '\0';
+}
+
 /*VARARGS3*/
-makesignal(from, fmt, ship, a, b, c)
-       struct ship *from;
-       char *fmt;
-       struct ship *ship;
+void
+makesignal(struct ship *from, const char *fmt, struct ship *ship, ...)
 {
        char message[80];
+       char format[BUFSIZ];
+       va_list ap;
 
+       va_start(ap, ship);
        if (ship == 0)
-               (void) sprintf(message, fmt, a, b, c);
-       else
-               (void) sprintf(message, fmt,
-                       ship->shipname, colours(ship),
-                       sterncolour(ship), a, b, c);
+               vsprintf(message, fmt, ap);
+       else {
+               fmtship(format, sizeof(format), fmt, ship);
+               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>
-sync_exists(game)
-int game;
+bool
+sync_exists(int lgame)
 {
        char buf[sizeof sync_file];
        struct stat s;
        time_t t;
 
-       (void) sprintf(buf, SF, game);
-       (void) time(&t);
+       sprintf(buf, SF, game);
+       time(&t);
        if (stat(buf, &s) < 0)
                return 0;
        if (s.st_mtime < t - 60*60*2) {         /* 2 hours */
-               (void) unlink(buf);
-               (void) sprintf(buf, LF, game);
-               (void) unlink(buf);
+               unlink(buf);
+               sprintf(buf, LF, lgame);
+               unlink(buf);
                return 0;
        } else
                return 1;
 }
 
-sync_open()
+int
+sync_open(void)
 {
        if (sync_fp != NULL)
-               (void) fclose(sync_fp);
-       (void) sprintf(sync_lock, LF, game);
-       (void) sprintf(sync_file, SF, game);
+               fclose(sync_fp);
+       sprintf(sync_lock, LF, game);
+       sprintf(sync_file, SF, game);
        if (access(sync_file, 0) < 0) {
                int omask = umask(issetuid ? 077 : 011);
                sync_fp = fopen(sync_file, "w+");
-               (void) umask(omask);
+               umask(omask);
        } else
                sync_fp = fopen(sync_file, "r+");
        if (sync_fp == NULL)
@@ -107,36 +135,34 @@ sync_open()
        return 0;
 }
 
-sync_close(remove)
-       char remove;
+void
+sync_close(char rm)
 {
        if (sync_fp != 0)
-               (void) fclose(sync_fp);
-       if (remove)
-               (void) unlink(sync_file);
+               fclose(sync_fp);
+       if (rm)
+               unlink(sync_file);
 }
 
-Write(type, ship, isstr, a, b, c, d)
-       int type;
-       struct ship *ship;
-       char isstr;
-       int a, b, c, d;
+void
+Write(int type, struct ship *ship, char isstr, int a, int b, int c, int d)
 {
        if (isstr)
-               (void) sprintf(sync_bp, "%d %d %d %s\n",
+               sprintf(sync_bp, "%d %d %d %s\n",
                        type, ship->file->index, isstr, (char *)a);
        else
-               (void) sprintf(sync_bp, "%d %d %d %d %d %d %d\n",
+               sprintf(sync_bp, "%d %d %d %d %d %d %d\n",
                        type, ship->file->index, isstr, a, b, c, d);
        while (*sync_bp++)
                ;
        sync_bp--;
        if (sync_bp >= &sync_buf[sizeof sync_buf])
                abort();
-       (void) sync_update(type, ship, a, b, c, d);
+       sync_update(type, ship, a, b, c, d);
 }
 
-Sync()
+int
+Sync(void)
 {
        sig_t sighup, sigint;
        int n;
@@ -161,7 +187,7 @@ Sync()
        }
        if (n <= 0)
                return -1;
-       (void) fseek(sync_fp, sync_seek, 0);
+       fseek(sync_fp, sync_seek, 0);
        for (;;) {
                switch (fscanf(sync_fp, "%d%d%d", &type, &shipnum, &isstr)) {
                case 3:
@@ -205,27 +231,25 @@ bad:
        erred++;
 out:
        if (!erred && sync_bp != sync_buf) {
-               (void) fseek(sync_fp, 0L, 2);
-               (void) fwrite(sync_buf, sizeof *sync_buf, sync_bp - sync_buf,
+               fseek(sync_fp, 0L, 2);
+               fwrite(sync_buf, sizeof *sync_buf, sync_bp - sync_buf,
                        sync_fp);
-               (void) fflush(sync_fp);
+               fflush(sync_fp);
                sync_bp = sync_buf;
        }
        sync_seek = ftell(sync_fp);
 #ifdef LOCK_EX
-       (void) flock(fileno(sync_fp), LOCK_UN);
+       flock(fileno(sync_fp), LOCK_UN);
 #else
-       (void) unlink(sync_lock);
+       unlink(sync_lock);
 #endif
-       (void) signal(SIGHUP, sighup);
-       (void) signal(SIGINT, sigint);
+       signal(SIGHUP, sighup);
+       signal(SIGINT, sigint);
        return erred ? -1 : 0;
 }
 
-sync_update(type, ship, a, b, c, d)
-       int type;
-       struct ship *ship;
-       long a, b, c, d;
+static int
+sync_update(int type, struct ship *ship, long a, long b, long c, long d)
 {
        switch (type) {
        case W_DBP: {
@@ -302,7 +326,7 @@ sync_update(type, ship, a, b, c, d)
                break;
                }
        case W_CAPTAIN:
-               (void) strncpy(ship->file->captain, (char *)a,
+               strncpy(ship->file->captain, (char *)a,
                        sizeof ship->file->captain - 1);
                ship->file->captain[sizeof ship->file->captain - 1] = 0;
                break;
@@ -341,7 +365,7 @@ sync_update(type, ship, a, b, c, d)
                ship->specs->hull = a;
                break;
        case W_MOVE:
-               (void) strncpy(ship->file->movebuf, (char *)a,
+               strncpy(ship->file->movebuf, (char *)a,
                        sizeof ship->file->movebuf - 1);
                ship->file->movebuf[sizeof ship->file->movebuf - 1] = 0;
                break;
@@ -404,7 +428,7 @@ sync_update(type, ship, a, b, c, d)
                windspeed = b;
                break;
        case W_BEGIN:
-               (void) strcpy(ship->file->captain, "begin");
+               strcpy(ship->file->captain, "begin");
                people++;
                break;
        case W_END: