summaryrefslogtreecommitdiff
path: root/games/mille/mille.h
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
commitd6583bb2a13f329cf0332ef2570eb8bb8fc0e39c (patch)
treeece253b876159b39c620e62b6c9b1174642e070e /games/mille/mille.h
initial import of NetBSD tree
Diffstat (limited to 'games/mille/mille.h')
-rw-r--r--games/mille/mille.h231
1 files changed, 231 insertions, 0 deletions
diff --git a/games/mille/mille.h b/games/mille/mille.h
new file mode 100644
index 00000000000..1d82942c19e
--- /dev/null
+++ b/games/mille/mille.h
@@ -0,0 +1,231 @@
+/* $NetBSD: mille.h,v 1.5 1995/03/24 05:01:51 cgd Exp $ */
+
+/*
+ * Copyright (c) 1982, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 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
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)mille.h 8.1 (Berkeley) 5/31/93
+ */
+
+# include <sys/types.h>
+# include <ctype.h>
+# include <curses.h>
+# include <termios.h>
+# include <string.h>
+
+/*
+ * @(#)mille.h 1.1 (Berkeley) 4/1/82
+ */
+
+/*
+ * Miscellaneous constants
+ */
+
+# define unsgn unsigned
+# define CARD short
+
+# define HAND_SZ 7 /* number of cards in a hand */
+# define DECK_SZ 101 /* number of cards in decks */
+# define NUM_SAFE 4 /* number of saftey cards */
+# define NUM_MILES 5 /* number of milestones types */
+# define NUM_CARDS 20 /* number of types of cards */
+# define BOARD_Y 17 /* size of board screen */
+# define BOARD_X 40
+# define MILES_Y 7 /* size of mileage screen */
+# define MILES_X 80
+# define SCORE_Y 17 /* size of score screen */
+# define SCORE_X 40
+# define MOVE_Y 10 /* Where to print move prompt */
+# define MOVE_X 20
+# define ERR_Y 15 /* Where to print errors */
+# define ERR_X 5
+# define EXT_Y 4 /* Where to put Extension */
+# define EXT_X 9
+
+# define PLAYER 0
+# define COMP 1
+
+# define W_SMALL 0 /* Small (initial) window */
+# define W_FULL 1 /* Full (final) window */
+
+/*
+ * Move types
+ */
+
+# define M_DISCARD 0
+# define M_DRAW 1
+# define M_PLAY 2
+# define M_ORDER 3
+
+/*
+ * Scores
+ */
+
+# define SC_SAFETY 100
+# define SC_ALL_SAFE 300
+# define SC_COUP 300
+# define SC_TRIP 400
+# define SC_SAFE 300
+# define SC_DELAY 300
+# define SC_EXTENSION 200
+# define SC_SHUT_OUT 500
+
+/*
+ * safety descriptions
+ */
+
+# define S_UNKNOWN 0 /* location of safety unknown */
+# define S_IN_HAND 1 /* safety in player's hand */
+# define S_PLAYED 2 /* safety has been played */
+# define S_GAS_SAFE 0 /* Gas safety card index */
+# define S_SPARE_SAFE 1 /* Tire safety card index */
+# define S_DRIVE_SAFE 2 /* Driveing safety card index */
+# define S_RIGHT_WAY 3 /* Right-of-Way card index */
+# define S_CONV 15 /* conversion from C_ to S_ */
+
+/*
+ * card numbers
+ */
+
+# define C_INIT -1
+# define C_25 0
+# define C_50 1
+# define C_75 2
+# define C_100 3
+# define C_200 4
+# define C_EMPTY 5
+# define C_FLAT 6
+# define C_CRASH 7
+# define C_STOP 8
+# define C_LIMIT 9
+# define C_GAS 10
+# define C_SPARE 11
+# define C_REPAIRS 12
+# define C_GO 13
+# define C_END_LIMIT 14
+# define C_GAS_SAFE 15
+# define C_SPARE_SAFE 16
+# define C_DRIVE_SAFE 17
+# define C_RIGHT_WAY 18
+
+/*
+ * prompt types
+ */
+
+# define MOVEPROMPT 0
+# define REALLYPROMPT 1
+# define ANOTHERHANDPROMPT 2
+# define ANOTHERGAMEPROMPT 3
+# define SAVEGAMEPROMPT 4
+# define SAMEFILEPROMPT 5
+# define FILEPROMPT 6
+# define EXTENSIONPROMPT 7
+# define OVERWRITEFILEPROMPT 8
+
+# ifdef SYSV
+# define srandom(x) srand(x)
+# define random() rand()
+
+# ifndef attron
+# define erasechar() _tty.c_cc[VERASE]
+# define killchar() _tty.c_cc[VKILL]
+# endif
+# else
+# ifndef erasechar
+# define erasechar() _tty.sg_erase
+# define killchar() _tty.sg_kill
+# endif
+# endif SYSV
+
+typedef struct {
+ bool coups[NUM_SAFE];
+ bool can_go;
+ bool new_battle;
+ bool new_speed;
+ short safety[NUM_SAFE];
+ short sh_safety[NUM_SAFE];
+ short nummiles[NUM_MILES];
+ short sh_nummiles[NUM_MILES];
+ CARD hand[HAND_SZ];
+ CARD sh_hand[HAND_SZ];
+ CARD battle;
+ CARD sh_battle;
+ CARD speed;
+ CARD sh_speed;
+ int mileage;
+ int sh_mileage;
+ int hand_tot;
+ int sh_hand_tot;
+ int safescore;
+ int sh_safescore;
+ int coupscore;
+ int total;
+ int sh_total;
+ int games;
+ int sh_games;
+ int was_finished;
+} PLAY;
+
+/*
+ * macros
+ */
+
+# define other(x) (1 - x)
+# define nextplay() (Play = other(Play))
+# define nextwin(x) (1 - x)
+# define opposite(x) (Opposite[x])
+# define issafety(x) (x >= C_GAS_SAFE)
+
+/*
+ * externals
+ */
+
+extern bool Debug, Finished, Next, On_exit, Order, Saved;
+
+extern char *C_fmt, **C_name, *Fromfile, Initstr[];
+
+extern int Card_no, End, Handstart, Movetype, Numcards[], Numgos,
+ Numneed[], Numseen[NUM_CARDS], Play, Value[], Window;
+
+extern CARD Deck[DECK_SZ], Discard, Opposite[NUM_CARDS], Sh_discard,
+ *Topcard;
+
+extern FILE *outf;
+
+extern PLAY Player[2];
+
+extern WINDOW *Board, *Miles, *Score;
+
+/*
+ * functions
+ */
+
+CARD getcard();