author | Alan Coopersmith <Alan.Coopersmith@Sun.COM> |
Thu, 18 Feb 2010 16:03:08 -0800 | |
changeset 907 | 3c35d611cdaa |
parent 546 | f3f84c886c69 |
child 919 | 425233ae7236 |
permissions | -rw-r--r-- |
546
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
1 |
/* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
2 |
* Copyright (c) 1988-91 by Patrick J. Naughton. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
3 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
4 |
* Permission to use, copy, modify, and distribute this software and its |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
5 |
* documentation for any purpose and without fee is hereby granted, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
6 |
* provided that the above copyright notice appear in all copies and that |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
7 |
* both that copyright notice and this permission notice appear in |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
8 |
* supporting documentation. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
9 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
10 |
* This file is provided AS IS with no warranties of any kind. The author |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
11 |
* shall have no liability with respect to the infringement of copyrights, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
12 |
* trade secrets or any patents by this file or any part thereof. In no |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
13 |
* event will the author be liable for any lost revenue or profits or |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
14 |
* other special, indirect and consequential damages. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
15 |
*/ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
16 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
17 |
/* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
18 |
* Copyright 1994 Sun Microsystems, Inc. All rights reserved. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
19 |
* Use is subject to license terms. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
20 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
21 |
* Permission is hereby granted, free of charge, to any person obtaining a |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
22 |
* copy of this software and associated documentation files (the |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
23 |
* "Software"), to deal in the Software without restriction, including |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
24 |
* without limitation the rights to use, copy, modify, merge, publish, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
25 |
* distribute, and/or sell copies of the Software, and to permit persons |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
26 |
* to whom the Software is furnished to do so, provided that the above |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
27 |
* copyright notice(s) and this permission notice appear in all copies of |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
28 |
* the Software and that both the above copyright notice(s) and this |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
29 |
* permission notice appear in supporting documentation. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
30 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
31 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
32 |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
33 |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
34 |
* OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
35 |
* HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
36 |
* INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
37 |
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
38 |
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
39 |
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
40 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
41 |
* Except as contained in this notice, the name of a copyright holder |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
42 |
* shall not be used in advertising or otherwise to promote the sale, use |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
43 |
* or other dealings in this Software without prior written authorization |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
44 |
* of the copyright holder. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
45 |
*/ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
46 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
47 |
/*- |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
48 |
* life.c - Conway's game of Life for xlock, the X Window System lockscreen. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
49 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
50 |
* Copyright (c) 1991 by Patrick J. Naughton. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
51 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
52 |
* See xlock.c for copying information. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
53 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
54 |
* Revision History: |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
55 |
* 24-May-91: Added wraparound code from [email protected]. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
56 |
* Made old cells stay blue. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
57 |
* Made batchcount control the number of generations till restart. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
58 |
* 29-Jul-90: support for multiple screens. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
59 |
* 07-Feb-90: remove bogus semi-colon after #include line. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
60 |
* 15-Dec-89: Fix for proper skipping of {White,Black}Pixel() in colors. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
61 |
* 08-Oct-89: Moved seconds() to an extern. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
62 |
* 20-Sep-89: Written (life algorithm courtesy of Jim Graham, [email protected]). |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
63 |
*/ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
64 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
65 |
#include "xlock.h" |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
66 |
#include "lifeicon.bit" |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
67 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
68 |
#ifdef SYSV |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
69 |
#ifndef bcopy |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
70 |
#define bcopy(a,b,c) memmove(b,a,c) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
71 |
#endif |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
72 |
#ifndef bzero |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
73 |
#define bzero(a,b) memset(a,0,b) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
74 |
#endif |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
75 |
#endif |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
76 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
77 |
static XImage logo = { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
78 |
0, 0, /* width, height */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
79 |
0, XYBitmap, 0, /* xoffset, format, data */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
80 |
LSBFirst, 8, /* byte-order, bitmap-unit */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
81 |
LSBFirst, 8, 1 /* bitmap-bit-order, bitmap-pad, depth */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
82 |
}; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
83 |
#define min(a, b) ((a)<(b)?(a):(b)) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
84 |
#define MAXROWS 155 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
85 |
#define MAXCOLS 144 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
86 |
#define TIMEOUT 30 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
87 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
88 |
typedef struct { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
89 |
int pixelmode; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
90 |
int xs; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
91 |
int ys; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
92 |
int xb; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
93 |
int yb; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
94 |
int generation; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
95 |
long shooterTime; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
96 |
int nrows; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
97 |
int ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
98 |
int width; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
99 |
int height; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
100 |
unsigned char buffer[(MAXROWS + 2) * (MAXCOLS + 2) + 2]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
101 |
unsigned char tempbuf[MAXCOLS * 2]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
102 |
unsigned char lastbuf[MAXCOLS]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
103 |
unsigned char agebuf[(MAXROWS + 2) * (MAXCOLS + 2)]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
104 |
} lifestruct; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
105 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
106 |
extern XColor ssblack[]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
107 |
extern XColor sswhite[]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
108 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
109 |
static lifestruct lifes[MAXSCREENS]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
110 |
static int icon_width, icon_height; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
111 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
112 |
/* Buffer stores the data for each cell. Each cell is stored as |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
113 |
* 8 bits representing the presence of a critter in each of it's |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
114 |
* surrounding 8 cells. There is an empty row and column around |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
115 |
* the whole array to allow stores without bounds checking as well |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
116 |
* as an extra row at the end for the fetches into tempbuf. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
117 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
118 |
* Tempbuf stores the data for the next two rows so that we know |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
119 |
* the state of those critter before he was modified by the fate |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
120 |
* of the critters that have already been processed. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
121 |
* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
122 |
* Agebuf stores the age of each critter. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
123 |
*/ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
124 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
125 |
#define UPLT 0x01 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
126 |
#define UP 0x02 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
127 |
#define UPRT 0x04 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
128 |
#define LT 0x08 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
129 |
#define RT 0x10 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
130 |
#define DNLT 0x20 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
131 |
#define DN 0x40 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
132 |
#define DNRT 0x80 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
133 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
134 |
/* Fates is a lookup table for the fate of a critter. The 256 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
135 |
* entries represent the 256 possible combinations of the 8 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
136 |
* neighbor cells. Each entry is one of BIRTH (create a cell |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
137 |
* or leave one alive), SAME (leave the cell alive or dead), |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
138 |
* or DEATH (kill anything in the cell). |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
139 |
*/ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
140 |
#define BIRTH 0 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
141 |
#define SAME 1 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
142 |
#define DEATH 2 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
143 |
static unsigned char fates[256]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
144 |
static int initialized = 0; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
145 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
146 |
static int patterns[][128] = { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
147 |
{ /* EIGHT */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
148 |
-3, -3, -2, -3, -1, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
149 |
-3, -2, -2, -2, -1, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
150 |
-3, -1, -2, -1, -1, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
151 |
0, 0, 1, 0, 2, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
152 |
0, 1, 1, 1, 2, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
153 |
0, 2, 1, 2, 2, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
154 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
155 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
156 |
{ /* PULSAR */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
157 |
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
158 |
1, 2, 5, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
159 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
160 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
161 |
{ /* BARBER */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
162 |
-7, -7, -6, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
163 |
-7, -6, -5, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
164 |
-5, -4, -3, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
165 |
-3, -2, -1, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
166 |
-1, 0, 1, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
167 |
1, 2, 3, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
168 |
3, 4, 5, 4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
169 |
4, 5, 5, 5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
170 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
171 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
172 |
{ /* HERTZ */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
173 |
-2, -6, -1, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
174 |
-2, -5, -1, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
175 |
-7, -3, -6, -3, -2, -3, -1, -3, 0, -3, 1, -3, 5, -3, 6, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
176 |
-7, -2, -5, -2, -3, -2, 2, -2, 4, -2, 6, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
177 |
-5, -1, -3, -1, -2, -1, 2, -1, 4, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
178 |
-7, 0, -5, 0, -3, 0, 2, 0, 4, 0, 6, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
179 |
-7, 1, -6, 1, -2, 1, -1, 1, 0, 1, 1, 1, 5, 1, 6, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
180 |
-2, 3, -1, 3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
181 |
-2, 4, -1, 4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
182 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
183 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
184 |
{ /* TUMBLER */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
185 |
-6, -6, -5, -6, 6, -6, 7, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
186 |
-6, -5, -5, -5, 6, -5, 7, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
187 |
-5, 5, 6, 5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
188 |
-7, 6, -5, 6, 6, 6, 8, 6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
189 |
-7, 7, -5, 7, 6, 7, 8, 7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
190 |
-7, 8, -6, 8, 7, 8, 8, 8, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
191 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
192 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
193 |
{ /* PERIOD4 */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
194 |
-5, -8, -4, -8, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
195 |
-7, -7, -5, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
196 |
-8, -6, -2, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
197 |
-7, -5, -3, -5, -2, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
198 |
-5, -3, -3, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
199 |
-4, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
200 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
201 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
202 |
{ /* PERIOD5 */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
203 |
-5, -8, -4, -8, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
204 |
-6, -7, -3, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
205 |
-7, -6, -2, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
206 |
-8, -5, -1, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
207 |
-8, -4, -1, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
208 |
-7, -3, -2, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
209 |
-6, -2, -3, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
210 |
-5, -1, -4, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
211 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
212 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
213 |
{ /* PERIOD6 */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
214 |
-4, -8, -3, -8, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
215 |
-8, -7, -7, -7, -5, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
216 |
-8, -6, -7, -6, -4, -6, -1, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
217 |
-3, -5, -1, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
218 |
-2, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
219 |
-3, -2, -2, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
220 |
-3, -1, -2, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
221 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
222 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
223 |
{ /* PINWHEEL */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
224 |
-4, -8, -3, -8, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
225 |
-4, -7, -3, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
226 |
-4, -5, -3, -5, -2, -5, -1, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
227 |
-5, -4, -3, -4, 0, -4, 2, -4, 3, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
228 |
-5, -3, -1, -3, 0, -3, 2, -3, 3, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
229 |
-8, -2, -7, -2, -5, -2, -2, -2, 0, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
230 |
-8, -1, -7, -1, -5, -1, 0, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
231 |
-4, 0, -3, 0, -2, 0, -1, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
232 |
-2, 2, -1, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
233 |
-2, 3, -1, 3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
234 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
235 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
236 |
{ /* ] */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
237 |
-1, -1, 0, -1, 1, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
238 |
0, 0, 1, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
239 |
-1, 1, 0, 1, 1, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
240 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
241 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
242 |
{ /* cc: */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
243 |
-3, -1, -2, -1, -1, -1, 1, -1, 2, -1, 3, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
244 |
-3, 0, -2, 0, 1, 0, 2, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
245 |
-3, 1, -2, 1, -1, 1, 1, 1, 2, 1, 3, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
246 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
247 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
248 |
{ /* DOLBY */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
249 |
-3, -1, -2, -1, -1, -1, 1, -1, 2, -1, 3, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
250 |
-3, 0, -2, 0, 2, 0, 3, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
251 |
-3, 1, -2, 1, -1, 1, 1, 1, 2, 1, 3, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
252 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
253 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
254 |
{ /* HORIZON */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
255 |
-15, 0, -14, 0, -13, 0, -12, 0, -11, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
256 |
-10, 0, -9, 0, -8, 0, -7, 0, -6, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
257 |
-5, 0, -4, 0, -3, 0, -2, 0, -1, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
258 |
4, 0, 3, 0, 2, 0, 1, 0, 0, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
259 |
9, 0, 8, 0, 7, 0, 6, 0, 5, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
260 |
14, 0, 13, 0, 12, 0, 11, 0, 10, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
261 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
262 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
263 |
{ /* SHEAR */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
264 |
-7, -2, -6, -2, -5, -2, -4, -2, -3, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
265 |
-2, -2, -1, -2, 0, -2, 1, -2, 2, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
266 |
-5, -1, -4, -1, -3, -1, -2, -1, -1, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
267 |
0, -1, 1, -1, 2, -1, 3, -1, 4, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
268 |
-3, 0, -2, 0, -1, 0, 0, 0, 1, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
269 |
2, 0, 3, 0, 4, 0, 5, 0, 6, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
270 |
-10, 1, -9, 1, -8, 1, -7, 1, -6, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
271 |
-5, 1, -4, 1, -3, 1, -2, 1, -1, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
272 |
-10, 2, -9, 2, -8, 2, -7, 2, -6, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
273 |
-5, 2, -4, 2, -3, 2, -2, 2, -1, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
274 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
275 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
276 |
{ /* VERTIGO */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
277 |
0, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
278 |
0, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
279 |
0, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
280 |
0, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
281 |
0, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
282 |
0, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
283 |
0, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
284 |
0, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
285 |
0, 7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
286 |
0, 6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
287 |
0, 5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
288 |
0, 4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
289 |
0, 3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
290 |
0, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
291 |
0, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
292 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
293 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
294 |
{ /* CROSSBAR */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
295 |
-5, 0, -4, 0, -3, 0, -2, 0, -1, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
296 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
297 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
298 |
{ /* GOALPOSTS */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
299 |
-8, -7, 8, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
300 |
-8, -6, 8, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
301 |
-8, -5, 8, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
302 |
-8, -4, 8, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
303 |
-8, -3, 8, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
304 |
-8, -2, 8, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
305 |
-8, -1, 8, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
306 |
-8, 0, 8, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
307 |
-8, 1, 8, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
308 |
-8, 2, 8, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
309 |
-8, 3, 8, 3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
310 |
-8, 4, 8, 4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
311 |
-8, 5, 8, 5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
312 |
-8, 6, 8, 6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
313 |
-8, 7, 8, 7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
314 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
315 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
316 |
{ /* \ */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
317 |
-8, -8, -7, -8, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
318 |
-7, -7, -6, -7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
319 |
-6, -6, -5, -6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
320 |
-5, -5, -4, -5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
321 |
-4, -4, -3, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
322 |
-3, -3, -2, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
323 |
-2, -2, -1, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
324 |
-1, -1, 0, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
325 |
0, 0, 1, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
326 |
1, 1, 2, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
327 |
2, 2, 3, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
328 |
3, 3, 4, 3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
329 |
4, 4, 5, 4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
330 |
5, 5, 6, 5, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
331 |
6, 6, 7, 6, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
332 |
7, 7, 8, 7, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
333 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
334 |
}, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
335 |
{ /* LABYRINTH */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
336 |
-4, -4, -3, -4, -2, -4, -1, -4, 0, -4, 1, -4, 2, -4, 3, -4, 4, -4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
337 |
-4, -3, 0, -3, 4, -3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
338 |
-4, -2, -2, -2, -1, -2, 0, -2, 1, -2, 2, -2, 4, -2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
339 |
-4, -1, -2, -1, 2, -1, 4, -1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
340 |
-4, 0, -2, 0, -1, 0, 0, 0, 1, 0, 2, 0, 4, 0, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
341 |
-4, 1, -2, 1, 2, 1, 4, 1, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
342 |
-4, 2, -2, 2, -1, 2, 0, 2, 1, 2, 2, 2, 4, 2, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
343 |
-4, 3, 0, 3, 4, 3, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
344 |
-4, 4, -3, 4, -2, 4, -1, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
345 |
99 |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
346 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
347 |
}; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
348 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
349 |
#define NPATS (sizeof patterns / sizeof patterns[0]) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
350 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
351 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
352 |
static void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
353 |
drawcell(win, row, col) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
354 |
Window win; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
355 |
int row, col; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
356 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
357 |
lifestruct *lp = &lifes[screen]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
358 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
359 |
XSetForeground(dsp, Scr[screen].gc, sswhite[screen].pixel); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
360 |
if (!mono && Scr[screen].npixels > 2) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
361 |
unsigned char *loc = lp->buffer + ((row + 1) * (lp->ncols + 2)) + col + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
362 |
unsigned char *ageptr = lp->agebuf + (loc - lp->buffer); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
363 |
unsigned char age = *ageptr; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
364 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
365 |
/* if we aren't up to blue yet, then keep aging the cell. */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
366 |
if (age < Scr[screen].npixels * 0.7) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
367 |
++age; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
368 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
369 |
XSetForeground(dsp, Scr[screen].gc, Scr[screen].pixels[age]); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
370 |
*ageptr = age; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
371 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
372 |
if (lp->pixelmode) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
373 |
XFillRectangle(dsp, win, Scr[screen].gc, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
374 |
lp->xb + lp->xs * col, lp->yb + lp->ys * row, lp->xs, lp->ys); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
375 |
else |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
376 |
XPutImage(dsp, win, Scr[screen].gc, &logo, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
377 |
0, 0, lp->xb + lp->xs * col, lp->yb + lp->ys * row, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
378 |
icon_width, icon_height); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
379 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
380 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
381 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
382 |
static void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
383 |
erasecell(win, row, col) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
384 |
Window win; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
385 |
int row, col; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
386 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
387 |
lifestruct *lp = &lifes[screen]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
388 |
XSetForeground(dsp, Scr[screen].gc, ssblack[screen].pixel); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
389 |
XFillRectangle(dsp, win, Scr[screen].gc, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
390 |
lp->xb + lp->xs * col, lp->yb + lp->ys * row, lp->xs, lp->ys); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
391 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
392 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
393 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
394 |
static void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
395 |
spawn(loc) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
396 |
unsigned char *loc; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
397 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
398 |
lifestruct *lp = &lifes[screen]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
399 |
unsigned char *ulloc, *ucloc, *urloc, *clloc, *crloc, *llloc, *lcloc, *lrloc, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
400 |
*arloc; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
401 |
int off, row, col, lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
402 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
403 |
lastrow = (lp->nrows) * (lp->ncols + 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
404 |
off = loc - lp->buffer; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
405 |
col = off % (lp->ncols + 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
406 |
row = (off - col) / (lp->ncols + 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
407 |
ulloc = loc - lp->ncols - 3; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
408 |
ucloc = loc - lp->ncols - 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
409 |
urloc = loc - lp->ncols - 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
410 |
clloc = loc - 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
411 |
crloc = loc + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
412 |
arloc = loc + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
413 |
llloc = loc + lp->ncols + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
414 |
lcloc = loc + lp->ncols + 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
415 |
lrloc = loc + lp->ncols + 3; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
416 |
if (row == 1) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
417 |
ulloc += lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
418 |
ucloc += lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
419 |
urloc += lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
420 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
421 |
if (row == lp->nrows) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
422 |
llloc -= lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
423 |
lcloc -= lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
424 |
lrloc -= lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
425 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
426 |
if (col == 1) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
427 |
ulloc += lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
428 |
clloc += lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
429 |
llloc += lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
430 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
431 |
if (col == lp->ncols) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
432 |
urloc -= lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
433 |
crloc -= lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
434 |
lrloc -= lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
435 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
436 |
*ulloc |= UPLT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
437 |
*ucloc |= UP; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
438 |
*urloc |= UPRT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
439 |
*clloc |= LT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
440 |
*crloc |= RT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
441 |
*arloc |= RT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
442 |
*llloc |= DNLT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
443 |
*lcloc |= DN; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
444 |
*lrloc |= DNRT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
445 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
446 |
*(lp->agebuf + (loc - lp->buffer)) = 0; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
447 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
448 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
449 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
450 |
static void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
451 |
kill(loc) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
452 |
unsigned char *loc; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
453 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
454 |
lifestruct *lp = &lifes[screen]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
455 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
456 |
unsigned char *ulloc, *ucloc, *urloc, *clloc, *crloc, *llloc, *lcloc, |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
457 |
*lrloc, *arloc; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
458 |
int off, row, col, lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
459 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
460 |
lastrow = (lp->nrows) * (lp->ncols + 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
461 |
off = loc - lp->buffer; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
462 |
row = off / (lp->ncols + 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
463 |
col = off % (lp->ncols + 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
464 |
row = (off - col) / (lp->ncols + 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
465 |
ulloc = loc - lp->ncols - 3; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
466 |
ucloc = loc - lp->ncols - 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
467 |
urloc = loc - lp->ncols - 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
468 |
clloc = loc - 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
469 |
crloc = loc + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
470 |
arloc = loc + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
471 |
llloc = loc + lp->ncols + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
472 |
lcloc = loc + lp->ncols + 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
473 |
lrloc = loc + lp->ncols + 3; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
474 |
if (row == 1) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
475 |
ulloc += lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
476 |
ucloc += lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
477 |
urloc += lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
478 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
479 |
if (row == lp->nrows) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
480 |
llloc -= lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
481 |
lcloc -= lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
482 |
lrloc -= lastrow; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
483 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
484 |
if (col == 1) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
485 |
ulloc += lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
486 |
clloc += lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
487 |
llloc += lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
488 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
489 |
if (col == lp->ncols) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
490 |
urloc -= lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
491 |
crloc -= lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
492 |
lrloc -= lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
493 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
494 |
*ulloc &= ~UPLT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
495 |
*ucloc &= ~UP; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
496 |
*urloc &= ~UPRT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
497 |
*clloc &= ~LT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
498 |
*crloc &= ~RT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
499 |
*arloc &= ~RT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
500 |
*llloc &= ~DNLT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
501 |
*lcloc &= ~DN; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
502 |
*lrloc &= ~DNRT; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
503 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
504 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
505 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
506 |
static void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
507 |
setcell(win, row, col) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
508 |
Window win; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
509 |
int row; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
510 |
int col; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
511 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
512 |
lifestruct *lp = &lifes[screen]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
513 |
unsigned char *loc; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
514 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
515 |
loc = lp->buffer + ((row + 1) * (lp->ncols + 2)) + col + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
516 |
spawn(loc); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
517 |
drawcell(win, row, col); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
518 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
519 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
520 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
521 |
static void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
522 |
init_fates() |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
523 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
524 |
int i, bits, neighbors; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
525 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
526 |
for (i = 0; i < 256; i++) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
527 |
neighbors = 0; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
528 |
for (bits = i; bits; bits &= (bits - 1)) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
529 |
neighbors++; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
530 |
if (neighbors == 3) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
531 |
fates[i] = BIRTH; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
532 |
else if (neighbors == 2) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
533 |
fates[i] = SAME; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
534 |
else |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
535 |
fates[i] = DEATH; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
536 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
537 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
538 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
539 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
540 |
void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
541 |
initlife(win) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
542 |
Window win; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
543 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
544 |
int row, col; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
545 |
int *patptr; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
546 |
XWindowAttributes xgwa; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
547 |
lifestruct *lp = &lifes[screen]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
548 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
549 |
lp->generation = 0; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
550 |
lp->shooterTime = seconds(); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
551 |
icon_width = lifeicon_width; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
552 |
icon_height = lifeicon_height; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
553 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
554 |
if (!initialized) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
555 |
initialized = 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
556 |
init_fates(); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
557 |
logo.data = (char *) lifeicon_bits; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
558 |
logo.width = icon_width; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
559 |
logo.height = icon_height; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
560 |
logo.bytes_per_line = (icon_width + 7) / 8; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
561 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
562 |
XGetWindowAttributes(dsp, win, &xgwa); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
563 |
lp->width = xgwa.width; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
564 |
lp->height = xgwa.height; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
565 |
lp->pixelmode = (lp->width < 4 * icon_width); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
566 |
if (lp->pixelmode) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
567 |
lp->ncols = 32; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
568 |
lp->nrows = 32; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
569 |
} else { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
570 |
lp->ncols = min(lp->width / icon_width, MAXCOLS); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
571 |
lp->nrows = min(lp->height / icon_height, MAXROWS); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
572 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
573 |
lp->xs = lp->width / lp->ncols; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
574 |
lp->ys = lp->height / lp->nrows; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
575 |
lp->xb = (lp->width - lp->xs * lp->ncols) / 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
576 |
lp->yb = (lp->height - lp->ys * lp->nrows) / 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
577 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
578 |
XSetForeground(dsp, Scr[screen].gc, ssblack[screen].pixel); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
579 |
XFillRectangle(dsp, win, Scr[screen].gc, 0, 0, lp->width, lp->height); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
580 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
581 |
bzero(lp->buffer, sizeof(lp->buffer)); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
582 |
patptr = &patterns[random() % NPATS][0]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
583 |
while ((col = *patptr++) != 99) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
584 |
row = *patptr++; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
585 |
col += lp->ncols / 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
586 |
row += lp->nrows / 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
587 |
setcell(win, row, col); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
588 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
589 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
590 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
591 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
592 |
void |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
593 |
drawlife(win) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
594 |
Window win; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
595 |
{ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
596 |
unsigned char *loc, *temploc, *lastloc; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
597 |
int row, col; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
598 |
unsigned char fate; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
599 |
lifestruct *lp = &lifes[screen]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
600 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
601 |
loc = lp->buffer + lp->ncols + 2 + 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
602 |
temploc = lp->tempbuf; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
603 |
/* copy the first 2 rows to the tempbuf */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
604 |
bcopy(loc, temploc, lp->ncols); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
605 |
bcopy(loc + lp->ncols + 2, temploc + lp->ncols, lp->ncols); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
606 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
607 |
lastloc = lp->lastbuf; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
608 |
/* copy the last row to another buffer for wraparound */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
609 |
bcopy(loc + ((lp->nrows - 1) * (lp->ncols + 2)), lastloc, lp->ncols); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
610 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
611 |
for (row = 0; row < lp->nrows; ++row) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
612 |
for (col = 0; col < lp->ncols; ++col) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
613 |
fate = fates[*temploc]; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
614 |
*temploc = (row == (lp->nrows - 3)) ? |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
615 |
*(lastloc + col) : |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
616 |
*(loc + (lp->ncols + 2) * 2); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
617 |
switch (fate) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
618 |
case BIRTH: |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
619 |
if (!(*(loc + 1) & RT)) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
620 |
spawn(loc); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
621 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
622 |
/* NO BREAK */ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
623 |
case SAME: |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
624 |
if (*(loc + 1) & RT) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
625 |
drawcell(win, row, col); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
626 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
627 |
break; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
628 |
case DEATH: |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
629 |
if (*(loc + 1) & RT) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
630 |
kill(loc); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
631 |
erasecell(win, row, col); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
632 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
633 |
break; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
634 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
635 |
loc++; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
636 |
temploc++; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
637 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
638 |
loc += 2; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
639 |
if (temploc >= lp->tempbuf + lp->ncols * 2) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
640 |
temploc = lp->tempbuf; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
641 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
642 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
643 |
if (++lp->generation > batchcount) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
644 |
initlife(win); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
645 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
646 |
/* |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
647 |
* generate a randomized shooter aimed roughly toward the center of the |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
648 |
* screen after timeout. |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
649 |
*/ |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
650 |
|
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
651 |
if (seconds() - lp->shooterTime > TIMEOUT) { |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
652 |
int hsp = random() % (lp->ncols - 5) + 3; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
653 |
int vsp = random() % (lp->nrows - 5) + 3; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
654 |
int hoff = 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
655 |
int voff = 1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
656 |
if (vsp > lp->nrows / 2) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
657 |
voff = -1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
658 |
if (hsp > lp->ncols / 2) |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
659 |
hoff = -1; |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
660 |
setcell(win, vsp + 0 * voff, hsp + 2 * hoff); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
661 |
setcell(win, vsp + 1 * voff, hsp + 2 * hoff); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
662 |
setcell(win, vsp + 2 * voff, hsp + 2 * hoff); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
663 |
setcell(win, vsp + 2 * voff, hsp + 1 * hoff); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
664 |
setcell(win, vsp + 1 * voff, hsp + 0 * hoff); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
665 |
lp->shooterTime = seconds(); |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
666 |
} |
f3f84c886c69
6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff
changeset
|
667 |
} |