xref: /original-bsd/games/robots/init_field.c (revision 55bd9343)
1 /*
2  * Copyright (c) 1980, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  */
7 
8 #ifndef lint
9 static char sccsid[] = "@(#)init_field.c	8.1 (Berkeley) 05/31/93";
10 #endif /* not lint */
11 
12 # include	"robots.h"
13 
14 /*
15  * init_field:
16  *	Lay down the initial pattern whih is constant across all levels,
17  *	and initialize all the global variables.
18  */
19 init_field()
20 {
21 	register int	i;
22 	register WINDOW	*wp;
23 	register int	j;
24 	static bool	first = TRUE;
25 	static char	*desc[] = {
26 				"Directions:",
27 				"",
28 				"y k u",
29 				" \\|/",
30 				"h- -l",
31 				" /|\\",
32 				"b j n",
33 				"",
34 				"Commands:",
35 				"",
36 				"w:  wait for end",
37 				"t:  teleport",
38 				"q:  quit",
39 				"^L: redraw screen",
40 				"",
41 				"Legend:",
42 				"",
43 				"+:  robot",
44 				"*:  junk heap",
45 				"@:  you",
46 				"",
47 				"Score: 0",
48 				NULL
49 	};
50 
51 	Dead = FALSE;
52 	Waiting = FALSE;
53 	flushok(stdscr, TRUE);
54 	Score = 0;
55 
56 	erase();
57 	move(0, 0);
58 	addch('+');
59 	for (i = 1; i < Y_FIELDSIZE; i++) {
60 		move(i, 0);
61 		addch('|');
62 	}
63 	move(Y_FIELDSIZE, 0);
64 	addch('+');
65 	for (i = 1; i < X_FIELDSIZE; i++)
66 		addch('-');
67 	addch('+');
68 	if (first)
69 		refresh();
70 	move(0, 1);
71 	for (i = 1; i < X_FIELDSIZE; i++)
72 		addch('-');
73 	addch('+');
74 	for (i = 1; i < Y_FIELDSIZE; i++) {
75 		move(i, X_FIELDSIZE);
76 		addch('|');
77 	}
78 	if (first)
79 		refresh();
80 	for (i = 0; desc[i] != NULL; i++) {
81 		move(i, X_FIELDSIZE + 2);
82 		addstr(desc[i]);
83 	}
84 	if (first)
85 		refresh();
86 	first = FALSE;
87 #ifdef	FANCY
88 	if (Pattern_roll)
89 		Next_move = &Move_list[-1];
90 #endif
91 }
92