diff options
| author | cracker64 <cracker642@gmail.com> | 2013-02-28 05:40:36 (GMT) |
|---|---|---|
| committer | cracker64 <cracker642@gmail.com> | 2013-02-28 05:40:36 (GMT) |
| commit | c65081d3ed44a97cea0f41a63e9ec07cf0feb5f2 (patch) | |
| tree | 90744a56bc618c12aab5ef617445b283ce2d6d57 /src/simulation/elements/SPNG.cpp | |
| parent | 08d1a68ce091b6ba53788224fd1bda92c1895ca6 (diff) | |
| download | powder-c65081d3ed44a97cea0f41a63e9ec07cf0feb5f2.zip powder-c65081d3ed44a97cea0f41a63e9ec07cf0feb5f2.tar.gz | |
Finished first pass-through for all elements.
Will get a few more places later.
Diffstat (limited to 'src/simulation/elements/SPNG.cpp')
| -rw-r--r-- | src/simulation/elements/SPNG.cpp | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/src/simulation/elements/SPNG.cpp b/src/simulation/elements/SPNG.cpp index 95dd12f..de32c24 100644 --- a/src/simulation/elements/SPNG.cpp +++ b/src/simulation/elements/SPNG.cpp @@ -59,30 +59,43 @@ int Element_SPNG::update(UPDATE_FUNC_ARGS) if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry)) { r = pmap[y+ry][x+rx]; - if (!r) - continue; - if (((r&0xFF)==PT_WATR || (r&0xFF)==PT_DSTW || (r&0xFF)==PT_FRZW) && parts[i].life<limit && 500>rand()%absorbChanceDenom) + switch (r&0xFF) { - parts[i].life++; - sim->kill_part(r>>8); - } - if ((r&0xFF)==PT_SLTW && parts[i].life<limit && 50>rand()%absorbChanceDenom) - { - parts[i].life++; - if (rand()%4) + case PT_WATR: + case PT_DSTW: + case PT_FRZW: + if (parts[i].life<limit && 500>rand()%absorbChanceDenom) + { + parts[i].life++; sim->kill_part(r>>8); - else - sim->part_change_type(r>>8, x+rx, y+ry, PT_SALT); - } - if ((r&0xFF)==PT_CBNW && parts[i].life<limit && 100>rand()%absorbChanceDenom) - { - parts[i].life++; - sim->part_change_type(r>>8, x+rx, y+ry, PT_CO2); - } - if ((r&0xFF)==PT_PSTE && parts[i].life<limit && 20>rand()%absorbChanceDenom) - { - parts[i].life++; - sim->create_part(r>>8, x+rx, y+ry, PT_CLST); + } + break; + case PT_SLTW: + if (parts[i].life<limit && 50>rand()%absorbChanceDenom) + { + parts[i].life++; + if (rand()%4) + sim->kill_part(r>>8); + else + sim->part_change_type(r>>8, x+rx, y+ry, PT_SALT); + } + break; + case PT_CBNW: + if (parts[i].life<limit && 100>rand()%absorbChanceDenom) + { + parts[i].life++; + sim->part_change_type(r>>8, x+rx, y+ry, PT_CO2); + } + break; + case PT_PSTE: + if (parts[i].life<limit && 20>rand()%absorbChanceDenom) + { + parts[i].life++; + sim->create_part(r>>8, x+rx, y+ry, PT_CLST); + } + break; + default: + continue; } } } |
