diff options
Diffstat (limited to 'src/powder.c')
| -rw-r--r-- | src/powder.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/powder.c b/src/powder.c index ad3c9b6..aabe04f 100644 --- a/src/powder.c +++ b/src/powder.c @@ -2815,7 +2815,7 @@ void update_particles_i(pixel *vid, int start, int inc) r = pmap[y+ny][x+nx]; if((r>>8)>=NPART || !r) continue; - if(parts[r>>8].type!=PT_NONE && parts[r>>8].type!=PT_BOMB){ + if(parts[r>>8].type!=PT_NONE && parts[r>>8].type!=PT_BOMB && parts[r>>8].type!=PT_DMND && parts[r>>8].type!=PT_CLNE && parts[r>>8].type!=PT_PCLN && parts[r>>8].type!=PT_BCLN){ int rad = 8; int nxi; int nxj; @@ -2834,16 +2834,17 @@ void update_particles_i(pixel *vid, int start, int inc) } for(nxj=-rad; nxj<=rad; nxj++) for(nxi=-rad; nxi<=rad; nxi++) - if((pow(nxi,2))/(pow(rad,2))+(pow(nxj,2))/(pow(rad,2))<=1){ - delete_part(x+nxi, y+nxj); - pv[(y+nxj)/CELL][(x+nxi)/CELL] += 0.1f; - int nb = create_part(-1, x+nxi, y+nxj, PT_BOMB); - if(nb!=-1){ - parts[nb].tmp = 2; - parts[nb].life = 2; - parts[nb].temp = MAX_TEMP; + if((pow(nxi,2))/(pow(rad,2))+(pow(nxj,2))/(pow(rad,2))<=1) + if((pmap[y+nxj][x+nxi]&0xFF)!=PT_DMND && (pmap[y+nxj][x+nxi]&0xFF)!=PT_CLNE && (pmap[y+nxj][x+nxi]&0xFF)!=PT_PCLN && (pmap[y+nxj][x+nxi]&0xFF)!=PT_BCLN){ + delete_part(x+nxi, y+nxj); + pv[(y+nxj)/CELL][(x+nxi)/CELL] += 0.1f; + int nb = create_part(-1, x+nxi, y+nxj, PT_BOMB); + if(nb!=-1){ + parts[nb].tmp = 2; + parts[nb].life = 2; + parts[nb].temp = MAX_TEMP; + } } - } //create_parts(x, y, 9, 9, PT_BOMB); //create_parts(x, y, 8, 8, PT_NONE); parts[i].type = PT_NONE; |
