diff options
Diffstat (limited to 'src/elements')
| -rw-r--r-- | src/elements/legacy.c | 4 | ||||
| -rw-r--r-- | src/elements/sltw.c | 2 | ||||
| -rw-r--r-- | src/elements/watr.c | 8 |
3 files changed, 10 insertions, 4 deletions
diff --git a/src/elements/legacy.c b/src/elements/legacy.c index 4cf51ad..1db6966 100644 --- a/src/elements/legacy.c +++ b/src/elements/legacy.c @@ -68,8 +68,8 @@ int update_legacy_all(UPDATE_FUNC_ARGS) { continue; if (((r&0xFF)==PT_FIRE || (r&0xFF)==PT_LAVA) && 1>(rand()%10)) { - part_change_type(i,x,y,PT_SALT); - part_change_type(r>>8,x+rx,y+ry,PT_WTRV); + if (rand()%4==0) part_change_type(i,x,y,PT_SALT); + else part_change_type(i,x,y,PT_WTRV); } } } diff --git a/src/elements/sltw.c b/src/elements/sltw.c index 4ceeb0b..4e562f7 100644 --- a/src/elements/sltw.c +++ b/src/elements/sltw.c @@ -25,7 +25,7 @@ int update_SLTW(UPDATE_FUNC_ARGS) { if (!r) continue; if ((r&0xFF)==PT_SALT && 1>(rand()%10000)) - kill_part(r>>8); + part_change_type(r>>8,x+rx,y+ry,PT_SLTW); if ((r&0xFF)==PT_PLNT&&5>(rand()%1000)) kill_part(r>>8); if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && !legacy_enable && parts[i].temp>(273.15f+12.0f) && 1>(rand()%500)) diff --git a/src/elements/watr.c b/src/elements/watr.c index 2dbe0fb..ecf96aa 100644 --- a/src/elements/watr.c +++ b/src/elements/watr.c @@ -27,7 +27,9 @@ int update_WATR(UPDATE_FUNC_ARGS) { if ((r&0xFF)==PT_SALT && 1>(rand()%250)) { part_change_type(i,x,y,PT_SLTW); - part_change_type(r>>8,x+rx,y+ry,PT_SLTW); + // on average, convert 3 WATR to SLTW before SALT turns into SLTW + if (rand()%3==0) + part_change_type(r>>8,x+rx,y+ry,PT_SLTW); } if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && (legacy_enable||parts[i].temp>(273.15f+12.0f)) && 1>(rand()%500)) { @@ -42,6 +44,10 @@ int update_WATR(UPDATE_FUNC_ARGS) { return 1; } } + if ((r&0xFF)==PT_SLTW && 1>(rand()%10000)) + { + part_change_type(i,x,y,PT_SLTW); + } /*if ((r&0xFF)==PT_CNCT && 1>(rand()%500)) Concrete+Water to paste, not very popular { part_change_type(i,x,y,PT_PSTE); |
