diff options
Diffstat (limited to 'src/elements')
| -rw-r--r-- | src/elements/qrtz.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/elements/qrtz.c b/src/elements/qrtz.c index d40b06d..e585361 100644 --- a/src/elements/qrtz.c +++ b/src/elements/qrtz.c @@ -18,23 +18,21 @@ int update_QRTZ(UPDATE_FUNC_ARGS) { else if ((r&0xFF)==PT_SLTW && (1>rand()%2500)) { kill_part(r>>8); - - parts[i].life = 1; + parts[i].life ++; } } - if (parts[i].life==1) + if (parts[i].life>0) { for (rx=-1; rx<2; rx++) for (ry=-1; ry<2; ry++) if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry)) { r = pmap[y+ry][x+rx]; - if ((r>>8)>=NPART || r) - continue; - np = create_part(-1,x+rx,y+ry,PT_QRTZ); - if (np<0) continue; - parts[np].tmp = parts[i].tmp; - parts[i].life = 0; + if ((r>>8)>=NPART || r || parts[i].life==0) continue; + np = create_part(-1,x+rx,y+ry,PT_QRTZ); + if (np<0) continue; + parts[np].tmp = parts[i].tmp; + parts[i].life = 0; } } for ( trade = 0; trade<9; trade ++) |
