X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/82852318e37fa7eddacc3dd162a2d16d3a7487b9..385fcebc577fc7002f25313cbc70de3b4d69c99e:/tetris/tetris.c diff --git a/tetris/tetris.c b/tetris/tetris.c index 3cf9f360..24204132 100644 --- a/tetris/tetris.c +++ b/tetris/tetris.c @@ -1,4 +1,4 @@ -/* $NetBSD: tetris.c,v 1.11 1999/09/08 21:45:31 jsm Exp $ */ +/* $NetBSD: tetris.c,v 1.15 2002/06/02 22:17:38 wiz Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -50,6 +50,8 @@ __COPYRIGHT("@(#) Copyright (c) 1992, 1993\n\ #include +#include +#include #include #include #include @@ -61,6 +63,21 @@ __COPYRIGHT("@(#) Copyright (c) 1992, 1993\n\ #include "screen.h" #include "tetris.h" +cell board[B_SIZE]; /* 1 => occupied, 0 => empty */ + +int Rows, Cols; /* current screen size */ + +const struct shape *curshape; +const struct shape *nextshape; + +long fallrate; /* less than 1 million; smaller => faster */ + +int score; /* the obvious thing */ +gid_t gid, egid; + +char key_msg[100]; +int showpreview; + static void elide __P((void)); static void setup_board __P((void)); int main __P((int, char **)); @@ -75,8 +92,8 @@ static void setup_board __P((void)); static void setup_board() { - register int i; - register cell *p; + int i; + cell *p; p = board; for (i = B_SIZE; i; i--) @@ -89,8 +106,8 @@ setup_board() static void elide() { - register int i, j, base; - register cell *p; + int i, j, base; + cell *p; for (i = A_FIRST; i < A_LAST; i++) { base = i * B_COLS + 1; @@ -116,11 +133,21 @@ main(argc, argv) int argc; char *argv[]; { - register int pos, c; - register const char *keys; - register int level = 2; + int pos, c; + const char *keys; + int level = 2; char key_write[6][10]; int ch, i, j; + int fd; + + gid = getgid(); + egid = getegid(); + setegid(gid); + + fd = open("/dev/null", O_RDONLY); + if (fd < 3) + exit(1); + close(fd); keys = "jkl pq"; @@ -133,10 +160,8 @@ main(argc, argv) case 'l': level = atoi(optarg); if (level < MINLEVEL || level > MAXLEVEL) { - (void)fprintf(stderr, - "tetris: level must be from %d to %d\n", - MINLEVEL, MAXLEVEL); - exit(1); + errx(1, "level must be from %d to %d", + MINLEVEL, MAXLEVEL); } break; case 'p': @@ -161,10 +186,7 @@ main(argc, argv) for (i = 0; i <= 5; i++) { for (j = i+1; j <= 5; j++) { if (keys[i] == keys[j]) { - (void)fprintf(stderr, - "%s: duplicate command keys specified.\n", - argv[0]); - exit (1); + errx(1, "duplicate command keys specified."); } } if (keys[i] == ' ')