Module Name:    src
Committed By:   tls
Date:           Sun Aug 10 06:51:14 UTC 2014

Modified Files:
        src/games/tetris [tls-earlyentropy]: screen.c shapes.c tetris.6
            tetris.c tetris.h

Log Message:
Rebase.


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.27.18.1 src/games/tetris/screen.c
cvs rdiff -u -r1.8 -r1.8.22.1 src/games/tetris/shapes.c
cvs rdiff -u -r1.11 -r1.11.60.1 src/games/tetris/tetris.6
cvs rdiff -u -r1.24 -r1.24.18.1 src/games/tetris/tetris.c
cvs rdiff -u -r1.12 -r1.12.22.1 src/games/tetris/tetris.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/games/tetris/screen.c
diff -u src/games/tetris/screen.c:1.27 src/games/tetris/screen.c:1.27.18.1
--- src/games/tetris/screen.c:1.27	Mon Oct  3 12:32:28 2011
+++ src/games/tetris/screen.c	Sun Aug 10 06:51:14 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: screen.c,v 1.27 2011/10/03 12:32:28 roy Exp $	*/
+/*	$NetBSD: screen.c,v 1.27.18.1 2014/08/10 06:51:14 tls Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -94,6 +94,20 @@ moveto(int r, int c)
 		putpad(buf);
 }
 
+static void
+setcolor(int c)
+{
+	char *buf;
+	if (nocolor == 1)
+		return;
+	if (set_a_foreground == NULL)
+		return;
+
+	buf = tiparm(set_a_foreground, c == 7 ? 0 : c);
+	if (buf != NULL)
+		putpad(buf);
+}
+
 /*
  * Set up from termcap.
  */
@@ -312,6 +326,7 @@ scr_update(void)
 						
 		/* draw */
 		putpad(enter_standout_mode);
+		setcolor(nextshape->color);
 		moveto(r, 2*c);
 		putstr("  ");
 		for(i=0; i<3; i++) {
@@ -349,7 +364,14 @@ scr_update(void)
 					    exit_standout_mode);
 					cur_so = so;
 				}
+				setcolor(so);
+#ifdef DEBUG
+				char buf[3];
+				snprintf(buf, sizeof(buf), "%d%d", so, so);
+				putstr(buf);
+#else
 				putstr("  ");
+#endif
 			} else
 				putstr(so ? "XX" : "  ");
 			ccol = i + 1;

Index: src/games/tetris/shapes.c
diff -u src/games/tetris/shapes.c:1.8 src/games/tetris/shapes.c:1.8.22.1
--- src/games/tetris/shapes.c:1.8	Mon May 25 04:33:53 2009
+++ src/games/tetris/shapes.c	Sun Aug 10 06:51:14 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: shapes.c,v 1.8 2009/05/25 04:33:53 dholland Exp $	*/
+/*	$NetBSD: shapes.c,v 1.8.22.1 2014/08/10 06:51:14 tls Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -53,25 +53,25 @@
 #define	BR	B_COLS+1	/* bottom right */
 
 const struct shape shapes[] = {
-	/* 0*/	{ 7,	{ TL, TC, MR, } },
-	/* 1*/	{ 8,	{ TC, TR, ML, } },
-	/* 2*/	{ 9,	{ ML, MR, BC, } },
-	/* 3*/	{ 3,	{ TL, TC, ML, } },
-	/* 4*/	{ 12,	{ ML, BL, MR, } },
-	/* 5*/	{ 15,	{ ML, BR, MR, } },
-	/* 6*/	{ 18,	{ ML, MR, 2   } },	/* sticks out */
-	/* 7*/	{ 0,	{ TC, ML, BL, } },
-	/* 8*/	{ 1,	{ TC, MR, BR, } },
-	/* 9*/	{ 10,	{ TC, MR, BC, } },
-	/*10*/	{ 11,	{ TC, ML, MR, } },
-	/*11*/	{ 2,	{ TC, ML, BC, } },
-	/*12*/	{ 13,	{ TC, BC, BR, } },
-	/*13*/	{ 14,	{ TR, ML, MR, } },
-	/*14*/	{ 4,	{ TL, TC, BC, } },
-	/*15*/	{ 16,	{ TR, TC, BC, } },
-	/*16*/	{ 17,	{ TL, MR, ML, } },
-	/*17*/	{ 5,	{ TC, BC, BL, } },
-	/*18*/	{ 6,	{ TC, BC, 2*B_COLS } }	/* sticks out */
+	/* 0*/	{ 7,  7,	{ TL, TC, MR, } },
+	/* 1*/	{ 1,  8,	{ TC, TR, ML, } },
+	/* 2*/	{ 2,  9,	{ ML, MR, BC, } },
+	/* 3*/	{ 3,  3,	{ TL, TC, ML, } },
+	/* 4*/	{ 4, 12,	{ ML, BL, MR, } },
+	/* 5*/	{ 5, 15,	{ ML, BR, MR, } },
+	/* 6*/	{ 6, 18,	{ ML, MR, 2   } },	/* sticks out */
+	/* 7*/	{ 7,  0,	{ TC, ML, BL, } },
+	/* 8*/	{ 1,  1,	{ TC, MR, BR, } },
+	/* 9*/	{ 2, 10,	{ TC, MR, BC, } },
+	/*10*/	{ 2, 11,	{ TC, ML, MR, } },
+	/*11*/	{ 2,  2,	{ TC, ML, BC, } },
+	/*12*/	{ 4, 13,	{ TC, BC, BR, } },
+	/*13*/	{ 4, 14,	{ TR, ML, MR, } },
+	/*14*/	{ 4,  4,	{ TL, TC, BC, } },
+	/*15*/	{ 5, 16,	{ TR, TC, BC, } },
+	/*16*/	{ 5, 17,	{ TL, MR, ML, } },
+	/*17*/	{ 5,  5,	{ TC, BC, BL, } },
+	/*18*/	{ 6,  6,	{ TC, BC, 2*B_COLS } }	/* sticks out */
 };
 
 /*
@@ -97,6 +97,7 @@ void
 place(const struct shape *shape, int pos, int onoff)
 {
 	const int *o = shape->off;
+	onoff = onoff ? shape->color : 0;
 
 	board[pos] = onoff;
 	board[pos + *o++] = onoff;

Index: src/games/tetris/tetris.6
diff -u src/games/tetris/tetris.6:1.11 src/games/tetris/tetris.6:1.11.60.1
--- src/games/tetris/tetris.6:1.11	Thu Sep 15 02:09:42 2005
+++ src/games/tetris/tetris.6	Sun Aug 10 06:51:14 2014
@@ -1,4 +1,4 @@
-.\"	$NetBSD: tetris.6,v 1.11 2005/09/15 02:09:42 wiz Exp $
+.\"	$NetBSD: tetris.6,v 1.11.60.1 2014/08/10 06:51:14 tls Exp $
 .\"
 .\" Copyright (c) 1992, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -32,7 +32,7 @@
 .\"
 .\"	@(#)tetris.6	8.1 (Berkeley) 5/31/93
 .\"
-.Dd May 31, 1993
+.Dd July 13, 2014
 .Dt TETRIS 6
 .Os
 .Sh NAME
@@ -40,7 +40,7 @@
 .Nd the game of tetris
 .Sh SYNOPSIS
 .Nm
-.Op Fl ps
+.Op Fl bps
 .Op Fl k Ar keys
 .Op Fl l Ar level
 .Sh DESCRIPTION
@@ -73,6 +73,11 @@ quit
 .Pp
 The options are as follows:
 .Bl -tag -width indent
+.It Fl b
+By default, shapes are displayed colorfully if the user's CRT supports color.
+The
+.Fl b
+option can be used to restore the traditional black-and-white behavior.
 .It Fl k
 The default control keys can be changed using the
 .Fl k

Index: src/games/tetris/tetris.c
diff -u src/games/tetris/tetris.c:1.24 src/games/tetris/tetris.c:1.24.18.1
--- src/games/tetris/tetris.c:1.24	Wed Aug 31 16:24:56 2011
+++ src/games/tetris/tetris.c	Sun Aug 10 06:51:14 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: tetris.c,v 1.24 2011/08/31 16:24:56 plunky Exp $	*/
+/*	$NetBSD: tetris.c,v 1.24.18.1 2014/08/10 06:51:14 tls Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -73,6 +73,7 @@ gid_t	gid, egid;
 
 char	key_msg[100];
 int	showpreview;
+int	nocolor;
 
 static void elide(void);
 static void setup_board(void);
@@ -92,7 +93,7 @@ setup_board(void)
 
 	p = board;
 	for (i = B_SIZE; i; i--)
-		*p++ = i <= (2 * B_COLS) || (i % B_COLS) < 2;
+		*p++ = (i <= (2 * B_COLS) || (i % B_COLS) < 2) ? 7 : 0;
 }
 
 /*
@@ -144,8 +145,11 @@ main(int argc, char *argv[])
 
 	keys = "jkl pq";
 
-	while ((ch = getopt(argc, argv, "k:l:ps")) != -1)
+	while ((ch = getopt(argc, argv, "bk:l:ps")) != -1)
 		switch(ch) {
+		case 'b':
+			nocolor = 1;
+			break;
 		case 'k':
 			if (strlen(keys = optarg) != 6)
 				usage();

Index: src/games/tetris/tetris.h
diff -u src/games/tetris/tetris.h:1.12 src/games/tetris/tetris.h:1.12.22.1
--- src/games/tetris/tetris.h:1.12	Wed Aug 12 08:51:21 2009
+++ src/games/tetris/tetris.h	Sun Aug 10 06:51:14 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: tetris.h,v 1.12 2009/08/12 08:51:21 dholland Exp $	*/
+/*	$NetBSD: tetris.h,v 1.12.22.1 2014/08/10 06:51:14 tls Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -123,6 +123,7 @@ extern int	Rows, Cols;	/* current screen
  * rotated forms.
  */
 struct shape {
+	int	color;
 	int	rot;	/* index of rotated version of this shape */
 	int	off[3];	/* offsets to other blots if center is at (0,0) */
 };
@@ -167,6 +168,7 @@ extern gid_t	gid, egid;
 
 extern char	key_msg[100];
 extern int	showpreview;
+extern int	nocolor;
 
 int	fits_in(const struct shape *, int);
 void	place(const struct shape *, int, int);

Reply via email to