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/SLTW.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/SLTW.cpp')
| -rw-r--r-- | src/simulation/elements/SLTW.cpp | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/src/simulation/elements/SLTW.cpp b/src/simulation/elements/SLTW.cpp index 1a7586f..7ff1b0b 100644 --- a/src/simulation/elements/SLTW.cpp +++ b/src/simulation/elements/SLTW.cpp @@ -55,24 +55,37 @@ int Element_SLTW::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_SALT && 1>(rand()%10000)) - sim->part_change_type(r>>8,x+rx,y+ry,PT_SLTW); - if ((r&0xFF)==PT_PLNT&&5>(rand()%1000)) - sim->kill_part(r>>8); - if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && (sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && 1>(rand()%500)) + switch (r&0xFF) { - sim->part_change_type(i,x,y,PT_FIRE); - parts[i].life = 4; - parts[i].ctype = PT_WATR; - } - if ((r&0xFF)==PT_FIRE && parts[r>>8].ctype!=PT_WATR){ - sim->kill_part(r>>8); - if(1>(rand()%150)){ - sim->kill_part(i); - return 1; + case PT_SALT: + if (!(rand()%10000)) + sim->part_change_type(r>>8,x+rx,y+ry,PT_SLTW); + break; + case PT_PLNT: + if (!(rand()%200)) + sim->kill_part(r>>8); + break; + case PT_RBDM: + case PT_LRBD: + if ((sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && !(rand()%500)) + { + sim->part_change_type(i,x,y,PT_FIRE); + parts[i].life = 4; + parts[i].ctype = PT_WATR; } + break; + case PT_FIRE: + if (parts[r>>8].ctype!=PT_WATR) + { + sim->kill_part(r>>8); + if(!(rand()%150)){ + sim->kill_part(i); + return 1; + } + } + break; + default: + continue; } } return 0; |
