diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2012-02-03 23:35:44 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-02-05 14:45:29 (GMT) |
| commit | 6bdc05cc40a89b6454fdbaca7a2315a07f085bf9 (patch) | |
| tree | ddda52ecac10186b524f397983ebcb2c116fba02 /src/elements/sprk.c | |
| parent | a4ad6ee428759346604437f416e27606b6ce09a1 (diff) | |
| download | powder-6bdc05cc40a89b6454fdbaca7a2315a07f085bf9.zip powder-6bdc05cc40a89b6454fdbaca7a2315a07f085bf9.tar.gz | |
Separate loop for updating life, and add SPRK life checks to most electronics
Diffstat (limited to 'src/elements/sprk.c')
| -rw-r--r-- | src/elements/sprk.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/elements/sprk.c b/src/elements/sprk.c index c0ded2d..67b8132 100644 --- a/src/elements/sprk.c +++ b/src/elements/sprk.c @@ -119,7 +119,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) { pavg = parts_avg(r>>8, i,PT_INSL); - if ((rt==PT_SWCH||(rt==PT_SPRK&&parts[r>>8].ctype==PT_SWCH)) && pavg!=PT_INSL) // make sparked SWCH turn off correctly + if ((rt==PT_SWCH||(rt==PT_SPRK&&parts[r>>8].ctype==PT_SWCH)) && pavg!=PT_INSL && parts[i].life<4) // make sparked SWCH turn off correctly { if (rt==PT_SWCH&&ct==PT_PSCN&&parts[r>>8].life<10) { parts[r>>8].life = 10; @@ -130,12 +130,12 @@ int update_SPRK(UPDATE_FUNC_ARGS) { parts[r>>8].life = 9; } } - else if ((ct==PT_PSCN||ct==PT_NSCN) && (rt==PT_PUMP||rt==PT_GPMP||rt==PT_HSWC||rt==PT_PBCN)) // PROP_PTOGGLE, Maybe? We seem to use 2 different methods for handling actived elements, this one seems better. Yes, use this one for new elements, PCLN is different for compatibility with existing saves + else if ((ct==PT_PSCN||ct==PT_NSCN) && (rt==PT_PUMP||rt==PT_GPMP||rt==PT_HSWC||rt==PT_PBCN) && parts[i].life<4) // PROP_PTOGGLE, Maybe? We seem to use 2 different methods for handling actived elements, this one seems better. Yes, use this one for new elements, PCLN is different for compatibility with existing saves { if (ct==PT_PSCN) parts[r>>8].life = 10; else if (ct==PT_NSCN && parts[r>>8].life>=10) parts[r>>8].life = 9; } - else if ((ct==PT_PSCN||ct==PT_NSCN) && (rt==PT_LCRY&&abs(rx)<2&&abs(ry)<2)) + else if ((ct==PT_PSCN||ct==PT_NSCN) && (rt==PT_LCRY&&abs(rx)<2&&abs(ry)<2) && parts[i].life<4) { if (ct==PT_PSCN && parts[r>>8].tmp == 0) parts[r>>8].tmp = 2; else if (ct==PT_NSCN && parts[r>>8].tmp == 3) parts[r>>8].tmp = 1; @@ -150,7 +150,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) { conduct_sprk = 0; - if (ct==PT_METL && (rt==PT_NTCT||rt==PT_PTCT||rt==PT_INWR||(rt==PT_SPRK&&(parts[r>>8].ctype==PT_NTCT||parts[r>>8].ctype==PT_PTCT))) && pavg!=PT_INSL) + if (ct==PT_METL && (rt==PT_NTCT||rt==PT_PTCT||rt==PT_INWR||(rt==PT_SPRK&&(parts[r>>8].ctype==PT_NTCT||parts[r>>8].ctype==PT_PTCT))) && pavg!=PT_INSL && parts[i].life<4) { parts[r>>8].temp = 473.0f; if (rt==PT_NTCT||rt==PT_PTCT) @@ -182,7 +182,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) { if (conduct_sprk) { if (rt==PT_WATR||rt==PT_SLTW) { - if (parts[r>>8].life==0 && (parts[i].life<2 || ((r>>8)<i && parts[i].life<3))) + if (parts[r>>8].life==0 && parts[i].life<3) { part_change_type(r>>8,x+rx,y+ry,PT_SPRK); if (rt==PT_WATR) parts[r>>8].life = 6; @@ -191,12 +191,12 @@ int update_SPRK(UPDATE_FUNC_ARGS) { } } else if (rt==PT_INST) { - if (parts[i].life>=3&&parts[r>>8].life==0) + if (parts[r>>8].life==0 && parts[i].life<4) { flood_parts(x+rx,y+ry,PT_SPRK,PT_INST,-1, 0);//spark the wire } } - else if (parts[r>>8].life==0 && (parts[i].life<3 || ((r>>8)<i && parts[i].life<4))) { + else if (parts[r>>8].life==0 && parts[i].life<4) { parts[r>>8].life = 4; parts[r>>8].ctype = rt; part_change_type(r>>8,x+rx,y+ry,PT_SPRK); |
