diff --git a/src/elements/aray.c b/src/elements/aray.c index cce5e2deb..437963536 100644 --- a/src/elements/aray.c +++ b/src/elements/aray.c @@ -11,7 +11,7 @@ int update_ARAY(UPDATE_FUNC_ARGS) { r = pmap[y+ry][x+rx]; if (!r) continue; - if ((r&0xFF)==PT_SPRK && parts[r>>8].life<4) { + if ((r&0xFF)==PT_SPRK && parts[r>>8].life>0 && parts[r>>8].life<4) { int destroy = (parts[r>>8].ctype==PT_PSCN)?1:0; int nostop = (parts[r>>8].ctype==PT_INST)?1:0; for (docontinue = 1, nxx = 0, nyy = 0, nxi = rx*-1, nyi = ry*-1; docontinue; nyy+=nyi, nxx+=nxi) { diff --git a/src/elements/dlay.c b/src/elements/dlay.c index 9fa32d5bf..cb2e2d8ac 100644 --- a/src/elements/dlay.c +++ b/src/elements/dlay.c @@ -19,7 +19,7 @@ int update_DLAY(UPDATE_FUNC_ARGS) { r = pmap[y+ry][x+rx]; if (!r) continue; - if ((r&0xFF)==PT_SPRK && parts[i].life==0 && parts[r>>8].life<4 && parts[r>>8].ctype==PT_PSCN) + if ((r&0xFF)==PT_SPRK && parts[i].life==0 && parts[r>>8].life>0 && parts[r>>8].life<4 && parts[r>>8].ctype==PT_PSCN) { parts[i].life = (int)(parts[i].temp-273.15); } diff --git a/src/elements/emp.c b/src/elements/emp.c index a9b555b03..9f199cc3c 100644 --- a/src/elements/emp.c +++ b/src/elements/emp.c @@ -11,7 +11,7 @@ int update_EMP(UPDATE_FUNC_ARGS) { r = pmap[y+ry][x+rx]; if (!r) continue; - if ((r&0xFF)==PT_SPRK && parts[r>>8].life<4) + if ((r&0xFF)==PT_SPRK && parts[r>>8].life>0 && parts[r>>8].life<4) { ok=1; break; diff --git a/src/elements/pcln.c b/src/elements/pcln.c index aecd89c1c..aff8e76cc 100644 --- a/src/elements/pcln.c +++ b/src/elements/pcln.c @@ -11,7 +11,7 @@ int update_PCLN(UPDATE_FUNC_ARGS) { r = pmap[y+ry][x+rx]; if (!r) continue; - if ((r&0xFF)==PT_SPRK && parts[r>>8].life<4) + if ((r&0xFF)==PT_SPRK && parts[r>>8].life>0 && parts[r>>8].life<4) { if (parts[r>>8].ctype==PT_PSCN) parts[i].life = 10; diff --git a/src/elements/pvod.c b/src/elements/pvod.c index 6ff508b77..d52f758cb 100644 --- a/src/elements/pvod.c +++ b/src/elements/pvod.c @@ -11,7 +11,7 @@ int update_PVOD(UPDATE_FUNC_ARGS) { r = pmap[y+ry][x+rx]; if (!r) continue; - if ((r&0xFF)==PT_SPRK && parts[r>>8].life<4) + if ((r&0xFF)==PT_SPRK && parts[r>>8].life>0 && parts[r>>8].life<4) { if (parts[r>>8].ctype==PT_PSCN) parts[i].life = 10; diff --git a/src/elements/stor.c b/src/elements/stor.c index b84f54fcb..16cd2c353 100644 --- a/src/elements/stor.c +++ b/src/elements/stor.c @@ -20,7 +20,7 @@ int update_STOR(UPDATE_FUNC_ARGS) { parts[i].pavg[1] = parts[r>>8].ctype; kill_part(r>>8); } - if(parts[i].tmp && (r&0xFF)==PT_SPRK && parts[r>>8].ctype==PT_PSCN && parts[r>>8].life<4) + if(parts[i].tmp && (r&0xFF)==PT_SPRK && parts[r>>8].ctype==PT_PSCN && parts[r>>8].life>0 && parts[r>>8].life<4) { for(ry1 = 1; ry1 >= -1; ry1--){ for(rx1 = 0; rx1 >= -1 && rx1 <= 1; rx1 = -rx1-rx1+1){ // Oscilate the X starting at 0, 1, -1, 3, -5, etc (Though stop at -1) diff --git a/src/elements/wire.c b/src/elements/wire.c index 2177ec70f..2688e5a57 100644 --- a/src/elements/wire.c +++ b/src/elements/wire.c @@ -29,10 +29,9 @@ int update_WIRE(UPDATE_FUNC_ARGS) { r = pmap[y+ry][x+rx]; if (!r) continue; - if((r&0xFF)==PT_SPRK && parts[r>>8].life<4 && parts[r>>8].ctype==PT_PSCN) + if((r&0xFF)==PT_SPRK && parts[r>>8].life==3 && parts[r>>8].ctype==PT_PSCN) { parts[i].ctype=1; - parts[r>>8].life=0; return 0; } else if((r&0xFF)==PT_NSCN && parts[i].tmp==1){create_part(-1, x+rx, y+ry, PT_SPRK);}