1*fafe3609Slukem /*	$NetBSD: init.c,v 1.6 1997/10/14 00:53:31 lukem Exp $	*/
2101657d1Scgd 
361f28255Scgd /*
4101657d1Scgd  * Copyright (c) 1980, 1993
5101657d1Scgd  *	The Regents of the University of California.  All rights reserved.
661f28255Scgd  *
761f28255Scgd  * Redistribution and use in source and binary forms, with or without
861f28255Scgd  * modification, are permitted provided that the following conditions
961f28255Scgd  * are met:
1061f28255Scgd  * 1. Redistributions of source code must retain the above copyright
1161f28255Scgd  *    notice, this list of conditions and the following disclaimer.
1261f28255Scgd  * 2. Redistributions in binary form must reproduce the above copyright
1361f28255Scgd  *    notice, this list of conditions and the following disclaimer in the
1461f28255Scgd  *    documentation and/or other materials provided with the distribution.
1561f28255Scgd  * 3. All advertising materials mentioning features or use of this software
1661f28255Scgd  *    must display the following acknowledgement:
1761f28255Scgd  *	This product includes software developed by the University of
1861f28255Scgd  *	California, Berkeley and its contributors.
1961f28255Scgd  * 4. Neither the name of the University nor the names of its contributors
2061f28255Scgd  *    may be used to endorse or promote products derived from this software
2161f28255Scgd  *    without specific prior written permission.
2261f28255Scgd  *
2361f28255Scgd  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2461f28255Scgd  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2561f28255Scgd  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2661f28255Scgd  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2761f28255Scgd  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2861f28255Scgd  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2961f28255Scgd  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3061f28255Scgd  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3161f28255Scgd  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3261f28255Scgd  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3361f28255Scgd  * SUCH DAMAGE.
3461f28255Scgd  */
3561f28255Scgd 
3616641b76Slukem #include <sys/cdefs.h>
3761f28255Scgd #ifndef lint
38101657d1Scgd #if 0
39101657d1Scgd static char sccsid[] = "@(#)init.c	8.1 (Berkeley) 5/31/93";
40101657d1Scgd #else
41*fafe3609Slukem __RCSID("$NetBSD: init.c,v 1.6 1997/10/14 00:53:31 lukem Exp $");
42101657d1Scgd #endif
4361f28255Scgd #endif /* not lint */
4461f28255Scgd 
45eab5a765Smycroft #include <termios.h>
4661f28255Scgd 
4761f28255Scgd /*
4861f28255Scgd  * variable initialization.
4961f28255Scgd  */
5061f28255Scgd 
5161f28255Scgd  /* name of executable object programs */
5261f28255Scgd char    EXEC[] = "/usr/games/backgammon";
5361f28255Scgd char    TEACH[] = "/usr/games/teachgammon";
5461f28255Scgd 
5516641b76Slukem int     pnum = 2;		/* color of player: -1 = white 1 = red 0 =
5616641b76Slukem 				 * both 2 = not yet init'ed */
5761f28255Scgd int     acnt = 0;		/* length of args */
5861f28255Scgd int     aflag = 1;		/* flag to ask for rules or instructions */
5961f28255Scgd int     bflag = 0;		/* flag for automatic board printing */
6061f28255Scgd int     cflag = 0;		/* case conversion flag */
6161f28255Scgd int     hflag = 1;		/* flag for cleaning screen */
6261f28255Scgd int     mflag = 0;		/* backgammon flag */
6361f28255Scgd int     raflag = 0;		/* 'roll again' flag for recovered game */
6461f28255Scgd int     rflag = 0;		/* recovered game flag */
6561f28255Scgd int     tflag = 0;		/* cursor addressing flag */
6661f28255Scgd int     iroll = 0;		/* special flag for inputting rolls */
6761f28255Scgd int     rfl = 0;
6861f28255Scgd 
6961f28255Scgd char   *color[] = {"White", "Red", "white", "red"};
70*fafe3609Slukem 
71*fafe3609Slukem 
72*fafe3609Slukem char	**Colorptr;
73*fafe3609Slukem char	**colorptr;
74*fafe3609Slukem int	*inopp;
75*fafe3609Slukem int	*inptr;
76*fafe3609Slukem int	*offopp;
77*fafe3609Slukem int	*offptr;
78*fafe3609Slukem char	args[100];
79*fafe3609Slukem int	bar;
80*fafe3609Slukem int	begscr;
81*fafe3609Slukem int	board[26];
82*fafe3609Slukem char	cin[100];
83*fafe3609Slukem int	colen;
84*fafe3609Slukem int	cturn;
85*fafe3609Slukem int	curc;
86*fafe3609Slukem int	curr;
87*fafe3609Slukem int	d0;
88*fafe3609Slukem int	dice[2];
89*fafe3609Slukem int	dlast;
90*fafe3609Slukem int	g[5];
91*fafe3609Slukem int	gvalue;
92*fafe3609Slukem int	h[4];
93*fafe3609Slukem int	home;
94*fafe3609Slukem int	in[2];
95*fafe3609Slukem int	mvl;
96*fafe3609Slukem int	mvlim;
97*fafe3609Slukem int	ncin;
98*fafe3609Slukem int	off[2];
99*fafe3609Slukem int	p[5];
100*fafe3609Slukem int	rscore;
101*fafe3609Slukem int	table[6][6];
102*fafe3609Slukem int	wscore;
103*fafe3609Slukem struct termios	old, noech, raw;
104