summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilip <philip@philip-linuxlaptop.(none)>2010-11-06 03:17:46 (GMT)
committer Philip <philip@philip-linuxlaptop.(none)>2010-11-06 03:17:46 (GMT)
commit5c91fde92e7321f9b3a56eaf90b5d288545472c3 (patch)
tree9649dada1edc424b55f70631aa003d1d6ec2f64c /src
parent76bfb3cc8ae83d6b3804010925d6f3ac02b9b8d0 (diff)
downloadpowder-5c91fde92e7321f9b3a56eaf90b5d288545472c3.zip
powder-5c91fde92e7321f9b3a56eaf90b5d288545472c3.tar.gz
GOL wraps around the edges
Diffstat (limited to 'src')
-rw-r--r--src/powder.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/powder.c b/src/powder.c
index 2c49d1c..67e743c 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -825,8 +825,8 @@ void update_particles_i(pixel *vid, int start, int inc)
if(sys_pause&&!framerender)
return;
if(CGOL>=GSPEED)
- for(nx=0;nx<XRES;nx++)
- for(ny=0;ny<YRES;ny++)
+ for(nx=4;nx<XRES-4;nx++)
+ for(ny=4;ny<YRES-4;ny++)
{
CGOL=0;
r = pmap[ny][nx];
@@ -838,17 +838,37 @@ void update_particles_i(pixel *vid, int start, int inc)
if(parts[r>>8].type==PT_GOL)
gol[nx][ny] = 1;
}
- for(nx=0;nx<XRES;nx++)
- for(ny=0;ny<YRES;ny++)
+ for(nx=4;nx<XRES-4;nx++)
+ for(ny=4;ny<YRES-4;ny++)
{
if(gol[nx][ny]==1)
for(int nnx=-1;nnx<2;nnx++)
for(int nny=-1;nny<2;nny++)
- if(nx+nnx>=0 && ny+nny>0 && nx+nnx<XRES && ny+nny<YRES)
+ {
+ if(ny+nny<4&&nx+nnx<4)
+ gol2[XRES-5][YRES-5] ++;
+ else if(ny+nny<4&&nx+nnx>=XRES-4)
+ gol2[4][YRES-5] ++;
+ else if(ny+nny>=YRES-4&&nx+nnx<4)
+ gol2[XRES-5][4] ++;
+ else if(nx+nnx<4)
+ gol2[XRES-5][ny+nny] ++;
+ else if(ny+nny<4)
+ gol2[nx+nnx][YRES-5] ++;
+ else if(ny+nny>=YRES-4&&nx+nnx>=XRES-4)
+ gol2[4][4] ++;
+ else if(ny+nny>=YRES-4)
+ gol2[nx+nnx][4] ++;
+ else if(nx+nnx>=XRES-4)
+ gol2[4][ny+nny] ++;
+ else
gol2[nx+nnx][ny+nny] ++;
+
+
+ }
}
- for(nx=0;nx<XRES;nx++)
- for(ny=0;ny<YRES;ny++)
+ for(nx=4;nx<XRES-4;nx++)
+ for(ny=4;ny<YRES-4;ny++)
{
r = pmap[ny][nx];
if(gol2[nx][ny]==3&&gol[nx][ny]==0)