dhcpcd: update README.DRAGONFLY
[dragonfly.git] / games / backgammon / common_source / init.c
bloba783be0e284d6c520824682ff9f3337cc2d4038e
1 /* @(#)init.c 8.1 (Berkeley) 5/31/93 */
2 /* $NetBSD: init.c,v 1.10 2012/10/13 19:19:39 dholland Exp $ */
4 /*
5 * Copyright (c) 1980, 1993
6 * The Regents of the University of California. All rights reserved.
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. Neither the name of the University nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
33 #include <termios.h>
35 #include "back.h"
38 * variable initialization.
41 /* name of executable object programs */
42 const char EXEC[] = "/usr/games/backgammon";
43 const char TEACH[] = "/usr/games/teachgammon";
45 int pnum = 2; /* color of player: -1 = white 1 = red 0 =
46 * both 2 = not yet init'ed */
47 int acnt = 0; /* length of args */
48 int aflag = 1; /* flag to ask for rules or instructions */
49 int bflag = 0; /* flag for automatic board printing */
50 int cflag = 0; /* case conversion flag */
51 int hflag = 1; /* flag for cleaning screen */
52 int mflag = 0; /* backgammon flag */
53 int raflag = 0; /* 'roll again' flag for recovered game */
54 int rflag = 0; /* recovered game flag */
55 int tflag = 0; /* cursor addressing flag */
56 int iroll = 0; /* special flag for inputting rolls */
57 int rfl = 0;
59 const char *const color[] = {"White", "Red", "white", "red"};
62 struct move gm;
63 const char *const *Colorptr;
64 const char *const *colorptr;
65 int *inopp;
66 int *inptr;
67 int *offopp;
68 int *offptr;
69 char args[100];
70 int bar;
71 int begscr;
72 int board[26];
73 char cin[100];
74 int colen;
75 int cturn;
76 int curc;
77 int curr;
78 int dlast;
79 int gvalue;
80 int home;
81 int in[2];
82 int ncin;
83 int off[2];
84 int rscore;
85 int table[6][6];
86 int wscore;
87 struct termios old, noech, raw;
89 void
90 move_init(struct move *mm)
92 mm->D0 = 0;
93 mm->D1 = 0;
94 mm->mvlim = 0;
95 mm->p[0] = mm->p[1] = mm->p[2] = mm->p[3] = mm->p[4] = 0;
96 mm->g[0] = mm->g[1] = mm->g[2] = mm->g[3] = mm->g[4] = 0;
97 mm->h[0] = mm->h[1] = mm->h[2] = mm->h[3] = 0;
98 mm->d0 = 0;