diff --git a/src/elements/pcln.c b/src/elements/pcln.c index 0ce469e07..54fc611d1 100644 --- a/src/elements/pcln.c +++ b/src/elements/pcln.c @@ -2,25 +2,29 @@ int update_PCLN(UPDATE_FUNC_ARGS) { int r; - if (parts[i].life==10) - { - for (nx=-2; nx<3; nx++) - for (ny=-2; ny<3; ny++) - if (x+nx>=0 && y+ny>0 && - x+nx=0 && y+ny>0 && + x+nx>8)>=NPART || !r) + continue; + if ((r&0xFF)==PT_SPRK) { - r = pmap[y+ny][x+nx]; - if ((r>>8)>=NPART || !r) - continue; - if ((r&0xFF)==PT_PCLN) - { - if (parts[r>>8].life<10&&parts[r>>8].life>0) - parts[i].life = 9; - else if (parts[r>>8].life==0) - parts[r>>8].life = 10; - } + if (parts[r>>8].ctype==PT_PSCN) + parts[i].life = 10; + else if (parts[r>>8].ctype==PT_NSCN) + parts[i].life = 9; } - } + if ((r&0xFF)==PT_PCLN) + { + if (parts[i].life==10&&parts[r>>8].life<10&&parts[r>>8].life>0) + parts[i].life = 9; + else if (parts[i].life==0&&parts[r>>8].life==10) + parts[i].life = 10; + } + } if (!parts[i].ctype) for (nx=-1; nx<2; nx++) for (ny=-1; ny<2; ny++) diff --git a/src/elements/sprk.c b/src/elements/sprk.c index a4db735a0..749689714 100644 --- a/src/elements/sprk.c +++ b/src/elements/sprk.c @@ -87,7 +87,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) { parts[r>>8].life = 9; } } - else if ((ct==PT_PSCN||ct==PT_NSCN) && (rt==PT_PUMP||rt==PT_HSWC||rt==PT_PCLN||(rt==PT_LCRY&&abs(nx)<2&&abs(ny)<2))) + else if ((ct==PT_PSCN||ct==PT_NSCN) && (rt==PT_PUMP||rt==PT_HSWC||(rt==PT_LCRY&&abs(nx)<2&&abs(ny)<2))) { if (ct==PT_PSCN) parts[r>>8].life = 10; else if (ct==PT_NSCN) parts[r>>8].life = 9;