X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/3936117409cf27503dff2c5d4d2ba20840a85873..c8cd2374db6fe8db6f4149ff6f9afdae32fe2473:/gomoku/bdinit.c diff --git a/gomoku/bdinit.c b/gomoku/bdinit.c index 2a803297..2fb2f85b 100644 --- a/gomoku/bdinit.c +++ b/gomoku/bdinit.c @@ -1,4 +1,4 @@ -/* $NetBSD: bdinit.c,v 1.4 1997/10/10 13:36:01 lukem Exp $ */ +/* $NetBSD: bdinit.c,v 1.9 2012/10/13 20:57:35 dholland Exp $ */ /* * Copyright (c) 1994 @@ -15,11 +15,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -41,16 +37,17 @@ #if 0 static char sccsid[] = "from: @(#)bdinit.c 8.2 (Berkeley) 5/3/95"; #else -__RCSID("$NetBSD: bdinit.c,v 1.4 1997/10/10 13:36:01 lukem Exp $"); +__RCSID("$NetBSD: bdinit.c,v 1.9 2012/10/13 20:57:35 dholland Exp $"); #endif #endif /* not lint */ #include #include "gomoku.h" +static void init_overlap(void); + void -bdinit(bp) - struct spotstr *bp; +bdinit(struct spotstr *bp) { int i, j, r; struct spotstr *sp; @@ -62,7 +59,7 @@ bdinit(bp) sp = bp; for (i = BSZ2; --i >= 0; sp++) { sp->s_occ = BORDER; /* top border */ - sp->s_flg = BFLAGALL; + sp->s_flags = BFLAGALL; } /* fill entire board with EMPTY spots */ @@ -71,11 +68,11 @@ bdinit(bp) for (j = 0; ++j < BSZ1; sp++) { /* for each row */ for (i = 0; ++i < BSZ1; sp++) { /* for each column */ sp->s_occ = EMPTY; - sp->s_flg = 0; + sp->s_flags = 0; sp->s_wval = 0; if (j < 5) { /* directions 1, 2, 3 are blocked */ - sp->s_flg |= (BFLAG << 1) | (BFLAG << 2) | + sp->s_flags |= (BFLAG << 1) | (BFLAG << 2) | (BFLAG << 3); sp->s_fval[BLACK][1].s = MAXCOMBO; sp->s_fval[BLACK][2].s = MAXCOMBO; @@ -102,7 +99,7 @@ bdinit(bp) } if (i > (BSZ - 4)) { /* directions 0, 1 are blocked */ - sp->s_flg |= BFLAG | (BFLAG << 1); + sp->s_flags |= BFLAG | (BFLAG << 1); sp->s_fval[BLACK][0].s = MAXCOMBO; sp->s_fval[BLACK][1].s = MAXCOMBO; sp->s_fval[WHITE][0].s = MAXCOMBO; @@ -111,7 +108,7 @@ bdinit(bp) sp->s_fval[BLACK][0].s = 0x500; sp->s_fval[WHITE][0].s = 0x500; /* if direction 1 is not blocked */ - if (!(sp->s_flg & (BFLAG << 1))) { + if (!(sp->s_flags & (BFLAG << 1))) { sp->s_fval[BLACK][1].s = 0x500; sp->s_fval[WHITE][1].s = 0x500; } @@ -120,11 +117,11 @@ bdinit(bp) sp->s_fval[WHITE][0].s = 0x401; if (i < 5) { /* direction 3 is blocked */ - sp->s_flg |= (BFLAG << 3); + sp->s_flags |= (BFLAG << 3); sp->s_fval[BLACK][3].s = MAXCOMBO; sp->s_fval[WHITE][3].s = MAXCOMBO; } else if (i == 5 && - !(sp->s_flg & (BFLAG << 3))) { + !(sp->s_flags & (BFLAG << 3))) { sp->s_fval[BLACK][3].s = 0x500; sp->s_fval[WHITE][3].s = 0x500; } @@ -133,7 +130,7 @@ bdinit(bp) * Allocate a frame structure for non blocked frames. */ for (r = 4; --r >= 0; ) { - if (sp->s_flg & (BFLAG << r)) + if (sp->s_flags & (BFLAG << r)) continue; cbp->c_combo.s = sp->s_fval[BLACK][r].s; cbp->c_vertex = sp - board; @@ -144,13 +141,13 @@ bdinit(bp) } } sp->s_occ = BORDER; /* left & right border */ - sp->s_flg = BFLAGALL; + sp->s_flags = BFLAGALL; } /* mark the borders as such */ for (i = BSZ1; --i >= 0; sp++) { sp->s_occ = BORDER; /* bottom border */ - sp->s_flg = BFLAGALL; + sp->s_flags = BFLAGALL; } sortframes[BLACK] = (struct combostr *)0; @@ -175,11 +172,12 @@ bdinit(bp) * As pieces are played, it can make frames not overlap if there are no * common open spaces shared between the two frames. */ -void -init_overlap() +static void +init_overlap(void) { struct spotstr *sp1, *sp2; struct combostr *cbp; + unsigned frameix; int i, f, r, n, d1, d2; int mask, bmask, vertex, s; u_char *str; @@ -189,7 +187,8 @@ init_overlap() memset(intersect, 0, sizeof(intersect)); str = &overlap[FAREA * FAREA]; ip = &intersect[FAREA * FAREA]; - for (cbp = frames + FAREA; --cbp >= frames; ) { /* each frame */ + for (frameix = FAREA; frameix-- > 0; ) { /* each frame */ + cbp = &frames[frameix]; str -= FAREA; ip -= FAREA; sp1 = &board[vertex = cbp->c_vertex]; @@ -212,7 +211,7 @@ init_overlap() for (f = 0; f < 6; f++, sp2 -= d2) { if (sp2->s_occ == BORDER) break; - if (sp2->s_flg & bmask) + if (sp2->s_flags & bmask) continue; n = sp2->s_frame[r] - frames; ip[n] = vertex;