From 29283b038c4c7966e656e38b3ff25574521b543d Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Mon, 20 Aug 2012 13:55:11 +0100 Subject: [PATCH] TPT: Consistent proportions of WATR and SALT in SLTW (1 SALT + 3 WATR = 4 SLTW) --- src/simulation/Simulation.cpp | 2 +- src/simulation/elements/SLTW.cpp | 2 +- src/simulation/elements/WATR.cpp | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index d9da20630..88dcc9ecf 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -3626,7 +3626,7 @@ void Simulation::update_particles_i(int start, int inc) { pt = (c_heat - elements[t].Enthalpy)/c_Cm; - if (1>rand()%6) t = PT_SALT; + if (rand()%4==0) t = PT_SALT; else t = PT_WTRV; } else diff --git a/src/simulation/elements/SLTW.cpp b/src/simulation/elements/SLTW.cpp index 7afdc26c3..c422a9fbb 100644 --- a/src/simulation/elements/SLTW.cpp +++ b/src/simulation/elements/SLTW.cpp @@ -58,7 +58,7 @@ int Element_SLTW::update(UPDATE_FUNC_ARGS) if (!r) continue; if ((r&0xFF)==PT_SALT && 1>(rand()%10000)) - sim->kill_part(r>>8); + 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)) diff --git a/src/simulation/elements/WATR.cpp b/src/simulation/elements/WATR.cpp index ca3b92602..bac8b68b3 100644 --- a/src/simulation/elements/WATR.cpp +++ b/src/simulation/elements/WATR.cpp @@ -61,7 +61,9 @@ int Element_WATR::update(UPDATE_FUNC_ARGS) if ((r&0xFF)==PT_SALT && 1>(rand()%250)) { sim->part_change_type(i,x,y,PT_SLTW); - sim->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) + sim->part_change_type(r>>8,x+rx,y+ry,PT_SLTW); } if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && (sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && 1>(rand()%500)) {