summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCracker64 <cracker642@gmail.com>2011-02-23 18:33:36 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-02-24 01:16:17 (GMT)
commit879dd43e31c21e83fb61f640ee64eeeaa9b83b64 (patch)
treecd8e55e1d8e4ff9e48b6efb6bb832fd022327870 /src
parent3011367eb09249d94462c769da2e708e8a9aa930 (diff)
downloadpowder-879dd43e31c21e83fb61f640ee64eeeaa9b83b64.zip
powder-879dd43e31c21e83fb61f640ee64eeeaa9b83b64.tar.gz
Fix GoL to not set gol2 on other things
Diffstat (limited to 'src')
-rw-r--r--src/powder.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/powder.c b/src/powder.c
index 98fedb2..b2751c5 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -1320,8 +1320,12 @@ void update_particles_i(pixel *vid, int start, int inc)
for ( nnx=-1; nnx<2; nnx++)
for ( nny=-1; nny<2; nny++)//it will count itself as its own neighbor, which is needed, but will have 1 extra for delete check
{
- gol2[((nx+nnx+XRES-3*CELL)%(XRES-2*CELL))+CELL][((ny+nny+YRES-3*CELL)%(YRES-2*CELL))+CELL][golnum] ++;
- gol2[((nx+nnx+XRES-3*CELL)%(XRES-2*CELL))+CELL][((ny+nny+YRES-3*CELL)%(YRES-2*CELL))+CELL][0] ++;
+ rt = pmap[((ny+nny+YRES-3*CELL)%(YRES-2*CELL))+CELL][((nx+nnx+XRES-3*CELL)%(XRES-2*CELL))+CELL];
+ if (!rt || ptypes[rt&0xFF].properties&PROP_LIFE)
+ {
+ gol2[((nx+nnx+XRES-3*CELL)%(XRES-2*CELL))+CELL][((ny+nny+YRES-3*CELL)%(YRES-2*CELL))+CELL][golnum] ++;
+ gol2[((nx+nnx+XRES-3*CELL)%(XRES-2*CELL))+CELL][((ny+nny+YRES-3*CELL)%(YRES-2*CELL))+CELL][0] ++;
+ }
}
} else {
parts[r>>8].tmp --;