diff --git a/src/powder.c b/src/powder.c index be647601c..b178318ae 100644 --- a/src/powder.c +++ b/src/powder.c @@ -1382,7 +1382,7 @@ void update_particles_i(pixel *vid, int start, int inc) if (!(parts[i].life==10&&(t==PT_SWCH||t==PT_LCRY||t==PT_PCLN||t==PT_HSWC||t==PT_PUMP))) parts[i].life--; //this if is for stopping death when life hits 0 - if (parts[i].life<=0 && !(ptypes[t].properties&PROP_CONDUCTS) && t!=PT_ARAY && t!=PT_FIRW && t!=PT_SWCH && t!=PT_PCLN && t!=PT_HSWC && t!=PT_PUMP && t!=PT_SPRK && t!=PT_LAVA && t!=PT_LCRY && t!=PT_QRTZ && t!=PT_GLOW && t!= PT_FOG && t!=PT_PIPE && t!=PT_FRZW &&(t!=PT_ICEI&&parts[i].ctype!=PT_FRZW)&&t!=PT_INST && t!=PT_SHLD1&& t!=PT_SHLD2&& t!=PT_SHLD3&& t!=PT_SHLD4 && t!=PT_SING) + if (parts[i].life<=0 && !(ptypes[t].properties&PROP_CONDUCTS) && t!=PT_ARAY && t!=PT_FIRW && t!=PT_SWCH && t!=PT_PCLN && t!=PT_HSWC && t!=PT_PUMP && t!=PT_SPRK && t!=PT_LAVA && t!=PT_LCRY && t!=PT_QRTZ && t!=PT_GLOW && t!= PT_FOG && t!=PT_PIPE && t!=PT_FRZW &&!(t!=PT_ICEI&&parts[i].ctype!=PT_FRZW)&&t!=PT_INST && t!=PT_SHLD1&& t!=PT_SHLD2&& t!=PT_SHLD3&& t!=PT_SHLD4 && t!=PT_SING) { kill_part(i); continue; @@ -1591,13 +1591,12 @@ void update_particles_i(pixel *vid, int start, int inc) else s = 0; } else s = 0; - if (s) parts[i].life = 0; } else s = 0; if (s) { // particle type change occurred - parts[i].life = 0; if (t==PT_ICEI||t==PT_LAVA) parts[i].ctype = parts[i].type; + if (!(t==PT_ICEI&&parts[i].ctype==PT_FRZW)) parts[i].life = 0; if (ptypes[t].state==ST_GAS&&ptypes[parts[i].type].state!=ST_GAS) pv[y/CELL][x/CELL] += 0.50f; part_change_type(i,x,y,t);