GOL wraps around the edges
This commit is contained in:
parent
76bfb3cc8a
commit
5c91fde92e
34
src/powder.c
34
src/powder.c
@ -825,8 +825,8 @@ void update_particles_i(pixel *vid, int start, int inc)
|
|||||||
if(sys_pause&&!framerender)
|
if(sys_pause&&!framerender)
|
||||||
return;
|
return;
|
||||||
if(CGOL>=GSPEED)
|
if(CGOL>=GSPEED)
|
||||||
for(nx=0;nx<XRES;nx++)
|
for(nx=4;nx<XRES-4;nx++)
|
||||||
for(ny=0;ny<YRES;ny++)
|
for(ny=4;ny<YRES-4;ny++)
|
||||||
{
|
{
|
||||||
CGOL=0;
|
CGOL=0;
|
||||||
r = pmap[ny][nx];
|
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)
|
if(parts[r>>8].type==PT_GOL)
|
||||||
gol[nx][ny] = 1;
|
gol[nx][ny] = 1;
|
||||||
}
|
}
|
||||||
for(nx=0;nx<XRES;nx++)
|
for(nx=4;nx<XRES-4;nx++)
|
||||||
for(ny=0;ny<YRES;ny++)
|
for(ny=4;ny<YRES-4;ny++)
|
||||||
{
|
{
|
||||||
if(gol[nx][ny]==1)
|
if(gol[nx][ny]==1)
|
||||||
for(int nnx=-1;nnx<2;nnx++)
|
for(int nnx=-1;nnx<2;nnx++)
|
||||||
for(int nny=-1;nny<2;nny++)
|
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] ++;
|
gol2[nx+nnx][ny+nny] ++;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for(nx=0;nx<XRES;nx++)
|
for(nx=4;nx<XRES-4;nx++)
|
||||||
for(ny=0;ny<YRES;ny++)
|
for(ny=4;ny<YRES-4;ny++)
|
||||||
{
|
{
|
||||||
r = pmap[ny][nx];
|
r = pmap[ny][nx];
|
||||||
if(gol2[nx][ny]==3&&gol[nx][ny]==0)
|
if(gol2[nx][ny]==3&&gol[nx][ny]==0)
|
||||||
|
Reference in New Issue
Block a user