diff options
Diffstat (limited to 'src/simulation/elements/FIRE.cpp')
| -rw-r--r-- | src/simulation/elements/FIRE.cpp | 51 |
1 files changed, 30 insertions, 21 deletions
diff --git a/src/simulation/elements/FIRE.cpp b/src/simulation/elements/FIRE.cpp index 37745ab..35c7758 100644 --- a/src/simulation/elements/FIRE.cpp +++ b/src/simulation/elements/FIRE.cpp @@ -50,31 +50,40 @@ Element_FIRE::Element_FIRE() int Element_FIRE::update(UPDATE_FUNC_ARGS) { int r, rx, ry, rt, t = parts[i].type; - if (t==PT_PLSM && parts[i].ctype == PT_NBLE && parts[i].life <=1) + switch (t) { - sim->part_change_type(i,x,y,PT_NBLE); - parts[i].life = 0; - } - else if (t==PT_FIRE && parts[i].life <=1) - { - if ((parts[i].tmp&0x3) == 3){ - sim->part_change_type(i,x,y,PT_DSTW); - parts[i].life = 0; - parts[i].ctype = PT_FIRE; - } - else if (parts[i].temp<625) + case PT_PLSM: + if (parts[i].life <=1) { - sim->part_change_type(i,x,y,PT_SMKE); - parts[i].life = rand()%20+250; + if (parts[i].ctype == PT_NBLE) + { + sim->part_change_type(i,x,y,PT_NBLE); + parts[i].life = 0; + } + else if ((parts[i].tmp&0x3) == 3){ + sim->part_change_type(i,x,y,PT_DSTW); + parts[i].life = 0; + parts[i].ctype = PT_FIRE; + } } - } - else if (t==PT_PLSM && parts[i].life <=1) - { - if ((parts[i].tmp&0x3) == 3){ - sim->part_change_type(i,x,y,PT_DSTW); - parts[i].life = 0; - parts[i].ctype = PT_FIRE; + break; + case PT_FIRE: + if (parts[i].life <=1) + { + if ((parts[i].tmp&0x3) == 3){ + sim->part_change_type(i,x,y,PT_DSTW); + parts[i].life = 0; + parts[i].ctype = PT_FIRE; + } + else if (parts[i].temp<625) + { + sim->part_change_type(i,x,y,PT_SMKE); + parts[i].life = rand()%20+250; + } } + break; + default: + break; } for (rx=-2; rx<3; rx++) for (ry=-2; ry<3; ry++) |
