summaryrefslogtreecommitdiffstats
path: root/games/mille/extern.c
diff options
context:
space:
mode:
Diffstat (limited to 'games/mille/extern.c')
-rw-r--r--games/mille/extern.c172
1 files changed, 172 insertions, 0 deletions
diff --git a/games/mille/extern.c b/games/mille/extern.c
new file mode 100644
index 0000000..2b5ad30
--- /dev/null
+++ b/games/mille/extern.c
@@ -0,0 +1,172 @@
+/*
+ * 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.
+ */
+
+#ifndef lint
+static char sccsid[] = "@(#)extern.c 8.1 (Berkeley) 5/31/93";
+#endif /* not lint */
+
+# include "mille.h"
+
+/*
+ * @(#)extern.c 1.1 (Berkeley) 4/1/82
+ */
+
+bool Debug, /* set if debugging code on */
+ Finished, /* set if current hand is finished */
+ Next, /* set if changing players */
+ On_exit, /* set if game saved on exiting */
+ Order, /* set if hand should be sorted */
+ Saved; /* set if game just saved */
+
+char *C_fmt = "%-18.18s", /* format for printing cards */
+ *Fromfile = NULL, /* startup file for game */
+ Initstr[100], /* initial string for error field */
+ *_cn[NUM_CARDS] = { /* Card name buffer */
+ "",
+ "25",
+ "50",
+ "75",
+ "100",
+ "200",
+ "Out of Gas",
+ "Flat Tire",
+ "Accident",
+ "Stop",
+ "Speed Limit",
+ "Gasoline",
+ "Spare Tire",
+ "Repairs",
+ "Go",
+ "End of Limit",
+ "Extra Tank",
+ "Puncture Proof",
+ "Driving Ace",
+ "Right of Way"
+ },
+ **C_name = &_cn[1]; /* Card names */
+
+int Card_no, /* Card number for current move */
+ End, /* End value for current hand */
+ Handstart = COMP, /* Player who starts hand */
+ Movetype, /* Current move type */
+ Play, /* Current player */
+ Numgos, /* Number of Go cards used by computer */
+ Window = W_SMALL, /* Current window wanted */
+ Numseen[NUM_CARDS], /* Number of cards seen in current hand */
+ Value[NUM_MILES] = { /* Value of mileage cards */
+ 25, 50, 75, 100, 200
+ },
+ Numcards[NUM_CARDS] = { /* Number of cards in deck */
+ 10, /* C_25 */
+ 10, /* C_50 */
+ 10, /* C_75 */
+ 12, /* C_100 */
+ 4, /* C_200 */
+ 2, /* C_EMPTY */
+ 2, /* C_FLAT */
+ 2, /* C_CRASH */
+ 4, /* C_STOP */
+ 3, /* C_LIMIT */
+ 6, /* C_GAS */
+ 6, /* C_SPARE */
+ 6, /* C_REPAIRS */
+ 14, /* C_GO */
+ 6, /* C_END_LIMIT */
+ 1, /* C_GAS_SAFE */
+ 1, /* C_SPARE_SAFE */
+ 1, /* C_DRIVE_SAFE */
+ 1, /* C_RIGHT_WAY */
+ 0 /* C_INIT */
+ },
+ Numneed[NUM_CARDS] = { /* number of cards needed per hand */
+ 0, /* C_25 */
+ 0, /* C_50 */
+ 0, /* C_75 */
+ 0, /* C_100 */
+ 0, /* C_200 */
+ 2, /* C_EMPTY */
+ 2, /* C_FLAT */
+ 2, /* C_CRASH */
+ 4, /* C_STOP */
+ 3, /* C_LIMIT */
+ 2, /* C_GAS */
+ 2, /* C_SPARE */
+ 2, /* C_REPAIRS */
+ 10, /* C_GO */
+ 3, /* C_END_LIMIT */
+ 1, /* C_GAS_SAFE */
+ 1, /* C_SPARE_SAFE */
+ 1, /* C_DRIVE_SAFE */
+ 1, /* C_RIGHT_WAY */
+ 0 /* C_INIT */
+ };
+
+CARD Discard, /* Top of discard pile */
+ Sh_discard, /* Last discard card shown */
+ *Topcard, /* Pointer to next card to be picked */
+ Opposite[NUM_CARDS] = { /* Opposites of each card */
+ C_25, C_50, C_75, C_100, C_200, C_GAS, C_SPARE,
+ C_REPAIRS, C_GO, C_END_LIMIT, C_EMPTY, C_FLAT, C_CRASH,
+ C_STOP, C_LIMIT, C_EMPTY, C_FLAT, C_CRASH, C_STOP, C_INIT
+ },
+ Deck[DECK_SZ] = { /* Current deck */
+ C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25,
+ C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50,
+ C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75,
+ C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100,
+ C_100, C_100, C_100,
+ C_200, C_200, C_200, C_200,
+ C_EMPTY, C_EMPTY,
+ C_FLAT, C_FLAT,
+ C_CRASH, C_CRASH,
+ C_STOP, C_STOP, C_STOP, C_STOP,
+ C_LIMIT, C_LIMIT, C_LIMIT,
+ C_GAS, C_GAS, C_GAS, C_GAS, C_GAS, C_GAS,
+ C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE,
+ C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS,
+ C_REPAIRS,
+ C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT,
+ C_END_LIMIT,
+ C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO,
+ C_GO, C_GO, C_GO, C_GO,
+ C_GAS_SAFE, C_SPARE_SAFE, C_DRIVE_SAFE, C_RIGHT_WAY
+ };
+
+FILE *outf;
+
+PLAY Player[2]; /* Player descriptions */
+
+WINDOW *Board, /* Playing field screen */
+ *Miles, /* Mileage screen */
+ *Score; /* Score screen */
+
OpenPOWER on IntegriCloud