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