xref: /original-bsd/games/robots/init_field.c (revision 1aa52444)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms are permitted
6  * provided that the above copyright notice and this paragraph are
7  * duplicated in all such forms and that any documentation,
8  * advertising materials, and other materials related to such
9  * distribution and use acknowledge that the software was developed
10  * by the University of California, Berkeley.  The name of the
11  * University may not be used to endorse or promote products derived
12  * from this software without specific prior written permission.
13  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16  */
17 
18 #ifndef lint
19 static char sccsid[] = "@(#)init_field.c	5.3 (Berkeley) 06/18/88";
20 #endif /* not lint */
21 
22 # include	"robots.h"
23 
24 /*
25  * init_field:
26  *	Lay down the initial pattern whih is constant across all levels,
27  *	and initialize all the global variables.
28  */
29 init_field()
30 {
31 	register int	i;
32 	register WINDOW	*wp;
33 	register int	j;
34 	static bool	first = TRUE;
35 	static char	*desc[] = {
36 				"Directions:",
37 				"",
38 				"y k u",
39 				" \\|/",
40 				"h- -l",
41 				" /|\\",
42 				"b j n",
43 				"",
44 				"Commands:",
45 				"",
46 				"w:  wait for end",
47 				"t:  teleport",
48 				"q:  quit",
49 				"^L: redraw screen",
50 				"",
51 				"Legend:",
52 				"",
53 				"+:  robot",
54 				"*:  junk heap",
55 				"@:  you",
56 				"",
57 				"Score: 0",
58 				NULL
59 	};
60 
61 	Dead = FALSE;
62 	Waiting = FALSE;
63 	flushok(stdscr, TRUE);
64 	Score = 0;
65 
66 	erase();
67 	move(0, 0);
68 	addch('+');
69 	for (i = 1; i < Y_FIELDSIZE; i++) {
70 		move(i, 0);
71 		addch('|');
72 	}
73 	move(Y_FIELDSIZE, 0);
74 	addch('+');
75 	for (i = 1; i < X_FIELDSIZE; i++)
76 		addch('-');
77 	addch('+');
78 	if (first)
79 		refresh();
80 	move(0, 1);
81 	for (i = 1; i < X_FIELDSIZE; i++)
82 		addch('-');
83 	addch('+');
84 	for (i = 1; i < Y_FIELDSIZE; i++) {
85 		move(i, X_FIELDSIZE);
86 		addch('|');
87 	}
88 	if (first)
89 		refresh();
90 	for (i = 0; desc[i] != NULL; i++) {
91 		move(i, X_FIELDSIZE + 2);
92 		addstr(desc[i]);
93 	}
94 	if (first)
95 		refresh();
96 	first = FALSE;
97 #ifdef	FANCY
98 	if (Pattern_roll)
99 		Next_move = &Move_list[-1];
100 #endif
101 }
102