diff --git a/powder.c b/powder.c index 3b4dfac17..5ac8e3307 100755 --- a/powder.c +++ b/powder.c @@ -2060,6 +2060,8 @@ void update_particles_i(pixel *vid, int start, int inc){ for(nx = -2; nx <= 2; nx++) for(ny = 0; ny>=-2; ny--) { + if(!pmap[ny+y][nx+x] || (pmap[ny+y][nx+x]>>8)>=NPART) + continue; if(pmap[ny+y][nx+x] && (pmap[ny+y][nx+x]&0xFF)!=0xFF && pstates[pmap[ny+y][nx+x]&0xFF].state != ST_SOLID //&& (abs(nx-x)+abs(ny-y))>8)>8)>8)>8)>8)>8].temp>=50) { @@ -2232,12 +2237,12 @@ void update_particles_i(pixel *vid, int start, int inc){ parts[i].life -= 1; r = pmap[(int)(player[16]+1.5)][(int)(player[15]+0.5)]; - if((r&0xFF)==PT_SPRK && (r&0xFF)!=0xFF) //If on charge + if((r&0xFF)==PT_SPRK && r && (r>>8)>8)>8].temp>=50) { @@ -2262,7 +2267,8 @@ void update_particles_i(pixel *vid, int start, int inc){ if(x+nx>=0 && y+ny>0 && x+nx