summaryrefslogtreecommitdiff
path: root/src/simulation
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-05-20 15:26:51 (GMT)
committer jacob1 <jfu614@gmail.com>2013-05-20 15:26:51 (GMT)
commit826b966668fe37d836de91cf29a6db0d1afee1f4 (patch)
treef617c944418a227769408b75b075d334df93417c /src/simulation
parent77bf649fb4482c86ac1fd9b3233f062b53226007 (diff)
downloadpowder-826b966668fe37d836de91cf29a6db0d1afee1f4.zip
powder-826b966668fe37d836de91cf29a6db0d1afee1f4.tar.gz
reduce rand() chances to 5x the old values in elements that were changed to 3x3 loop checks instead of 5x5. Also some other fixes I found when looking at what had been changed.
Diffstat (limited to 'src/simulation')
-rw-r--r--src/simulation/elements/ANAR.cpp2
-rw-r--r--src/simulation/elements/BCOL.cpp78
-rw-r--r--src/simulation/elements/CBNW.cpp4
-rw-r--r--src/simulation/elements/CO2.cpp6
-rw-r--r--src/simulation/elements/COAL.cpp19
-rw-r--r--src/simulation/elements/DSTW.cpp14
-rw-r--r--src/simulation/elements/ICEI.cpp4
-rw-r--r--src/simulation/elements/PLNT.cpp8
-rw-r--r--src/simulation/elements/PQRT.cpp111
-rw-r--r--src/simulation/elements/QRTZ.cpp23
-rw-r--r--src/simulation/elements/SLTW.cpp8
-rw-r--r--src/simulation/elements/WATR.cpp12
-rw-r--r--src/simulation/elements/WTRV.cpp2
-rw-r--r--src/simulation/elements/YEST.cpp2
14 files changed, 64 insertions, 229 deletions
diff --git a/src/simulation/elements/ANAR.cpp b/src/simulation/elements/ANAR.cpp
index 5a5ea33..150c2cc 100644
--- a/src/simulation/elements/ANAR.cpp
+++ b/src/simulation/elements/ANAR.cpp
@@ -60,7 +60,7 @@ int Element_ANAR::update(UPDATE_FUNC_ARGS)
r = pmap[y+ry][x+rx];
if (!r)
continue;
- if ((r&0xFF)==PT_CFLM && !(rand()%7))
+ if ((r&0xFF)==PT_CFLM && !(rand()%4))
{
sim->part_change_type(i,x,y,PT_CFLM);
parts[i].life = rand()%150+50;
diff --git a/src/simulation/elements/BCOL.cpp b/src/simulation/elements/BCOL.cpp
index 9c90ff3..3fb85af 100644
--- a/src/simulation/elements/BCOL.cpp
+++ b/src/simulation/elements/BCOL.cpp
@@ -42,82 +42,8 @@ Element_BCOL::Element_BCOL()
HighTemperature = ITH;
HighTemperatureTransition = NT;
- Update = &Element_BCOL::update;
- Graphics = &Element_BCOL::graphics;
+ Update = &Element_COAL::update;
+ Graphics = &Element_COAL::graphics;
}
-//#TPT-Directive ElementHeader Element_BCOL static int update(UPDATE_FUNC_ARGS)
-int Element_BCOL::update(UPDATE_FUNC_ARGS)
- {
- int r, rx, ry, trade, temp;
- if (parts[i].life<=0) {
- sim->create_part(i, x, y, PT_FIRE);
- return 1;
- } else if (parts[i].life < 100) {
- parts[i].life--;
- sim->create_part(-1, x+rand()%3-1, y+rand()%3-1, PT_FIRE);
- }
- /*if(100-parts[i].life > parts[i].tmp2)
- parts[i].tmp2 = 100-parts[i].life;
- if(parts[i].tmp2 < 0) parts[i].tmp2 = 0;
- for ( trade = 0; trade<4; trade ++)
- {
- rx = rand()%5-2;
- ry = rand()%5-2;
- if (BOUNDS_CHECK && (rx || ry))
- {
- r = pmap[y+ry][x+rx];
- if (!r)
- continue;
- if (((r&0xFF)==PT_COAL || (r&0xFF)==PT_BCOL)&&(parts[i].tmp2>parts[r>>8].tmp2)&&parts[i].tmp2>0)//diffusion
- {
- int temp = parts[i].tmp2 - parts[r>>8].tmp2;
- if(temp < 10)
- continue;
- if (temp ==1)
- {
- parts[r>>8].tmp2 ++;
- parts[i].tmp2 --;
- }
- else if (temp>0)
- {
- parts[r>>8].tmp2 += temp/2;
- parts[i].tmp2 -= temp/2;
- }
- }
- }
- }*/
- if(parts[i].temp > parts[i].tmp2)
- parts[i].tmp2 = parts[i].temp;
- return 0;
-}
-
-
-//#TPT-Directive ElementHeader Element_BCOL static int graphics(GRAPHICS_FUNC_ARGS)
-int Element_BCOL::graphics(GRAPHICS_FUNC_ARGS)
- //Both COAL and Broken Coal
-{
- *colr += (cpart->tmp2-295.15f)/3;
-
- if (*colr > 170)
- *colr = 170;
- if (*colr < *colg)
- *colr = *colg;
-
- *colg = *colb = *colr;
-
- if((cpart->temp-295.15f) > 300.0f-200.0f)
- {
- float frequency = 3.1415/(2*300.0f-(300.0f-200.0f));
- int q = ((cpart->temp-295.15f)>300.0f)?300.0f-(300.0f-200.0f):(cpart->temp-295.15f)-(300.0f-200.0f);
-
- *colr += sin(frequency*q) * 226;
- *colg += sin(frequency*q*4.55 +3.14) * 34;
- *colb += sin(frequency*q*2.22 +3.14) * 64;
- }
- return 0;
-}
-
-
-
Element_BCOL::~Element_BCOL() {}
diff --git a/src/simulation/elements/CBNW.cpp b/src/simulation/elements/CBNW.cpp
index 3f07730..ed01cf5 100644
--- a/src/simulation/elements/CBNW.cpp
+++ b/src/simulation/elements/CBNW.cpp
@@ -96,7 +96,7 @@ int Element_CBNW::update(UPDATE_FUNC_ARGS)
//Start explode
parts[i].tmp = rand()%25;//(rand()%100)+50;
}
- else if((sim->elements[r&0xFF].Properties&TYPE_SOLID) && (r&0xFF)!=PT_DMND && (r&0xFF)!=PT_GLAS && parts[i].tmp == 0 && (2-sim->pv[y/CELL][x/CELL])>(rand()%13333))
+ else if((sim->elements[r&0xFF].Properties&TYPE_SOLID) && (r&0xFF)!=PT_DMND && (r&0xFF)!=PT_GLAS && parts[i].tmp == 0 && (2-sim->pv[y/CELL][x/CELL])>(rand()%6667))
{
sim->part_change_type(i,x,y,PT_CO2);
parts[i].ctype = 5;
@@ -131,7 +131,7 @@ int Element_CBNW::update(UPDATE_FUNC_ARGS)
}
else if ((r&0xFF)==PT_FIRE && parts[r>>8].ctype!=PT_WATR){
sim->kill_part(r>>8);
- if(1>(rand()%50)){
+ if(!(rand()%50)){
sim->kill_part(i);
return 1;
}
diff --git a/src/simulation/elements/CO2.cpp b/src/simulation/elements/CO2.cpp
index c3bb7c9..3e982b5 100644
--- a/src/simulation/elements/CO2.cpp
+++ b/src/simulation/elements/CO2.cpp
@@ -57,7 +57,7 @@ int Element_CO2::update(UPDATE_FUNC_ARGS)
r = pmap[y+ry][x+rx];
if (!r)
{
- if (parts[i].ctype==5 && !(rand()%27))
+ if (parts[i].ctype==5 && !(rand()%2000))
{
if (sim->create_part(-1, x+rx, y+ry, PT_WATR)>=0)
parts[i].ctype = 0;
@@ -66,12 +66,12 @@ int Element_CO2::update(UPDATE_FUNC_ARGS)
}
if ((r&0xFF)==PT_FIRE){
sim->kill_part(r>>8);
- if(!(rand()%50)){
+ if(!(rand()%30)){
sim->kill_part(i);
return 1;
}
}
- else if (((r&0xFF)==PT_WATR || (r&0xFF)==PT_DSTW) && !(rand()%83))
+ else if (((r&0xFF)==PT_WATR || (r&0xFF)==PT_DSTW) && !(rand()%50))
{
sim->part_change_type(r>>8, x+rx, y+ry, PT_CBNW);
if (parts[i].ctype==5) //conserve number of water particles - ctype=5 means this CO2 hasn't released the water particle from BUBW yet
diff --git a/src/simulation/elements/COAL.cpp b/src/simulation/elements/COAL.cpp
index 3186167..b2cc89c 100644
--- a/src/simulation/elements/COAL.cpp
+++ b/src/simulation/elements/COAL.cpp
@@ -49,7 +49,7 @@ Element_COAL::Element_COAL()
//#TPT-Directive ElementHeader Element_COAL static int update(UPDATE_FUNC_ARGS)
int Element_COAL::update(UPDATE_FUNC_ARGS)
{
- int r, rx, ry, trade, temp;
+ int r, rx, ry, trade, temp, t = parts[i].type;
if (parts[i].life<=0) {
sim->create_part(i, x, y, PT_FIRE);
return 1;
@@ -57,13 +57,16 @@ int Element_COAL::update(UPDATE_FUNC_ARGS)
parts[i].life--;
sim->create_part(-1, x+rand()%3-1, y+rand()%3-1, PT_FIRE);
}
- if ((sim->pv[y/CELL][x/CELL] > 4.3f)&&parts[i].tmp>40)
- parts[i].tmp=39;
- else if (parts[i].tmp<40&&parts[i].tmp>0)
- parts[i].tmp--;
- else if (parts[i].tmp<=0) {
- sim->create_part(i, x, y, PT_BCOL);
- return 1;
+ if (t == PT_COAL)
+ {
+ if ((sim->pv[y/CELL][x/CELL] > 4.3f)&&parts[i].tmp>40)
+ parts[i].tmp=39;
+ else if (parts[i].tmp<40&&parts[i].tmp>0)
+ parts[i].tmp--;
+ else if (parts[i].tmp<=0) {
+ sim->create_part(i, x, y, PT_BCOL);
+ return 1;
+ }
}
/*if(100-parts[i].life > parts[i].tmp2)
parts[i].tmp2 = 100-parts[i].life;
diff --git a/src/simulation/elements/DSTW.cpp b/src/simulation/elements/DSTW.cpp
index d077f25..d6b879f 100644
--- a/src/simulation/elements/DSTW.cpp
+++ b/src/simulation/elements/DSTW.cpp
@@ -58,7 +58,7 @@ int Element_DSTW::update(UPDATE_FUNC_ARGS)
switch (r&0xFF)
{
case PT_SALT:
- if (!(rand()%83))
+ if (!(rand()%50))
{
sim->part_change_type(i,x,y,PT_SLTW);
// on average, convert 3 DSTW to SLTW before SALT turns into SLTW
@@ -67,20 +67,24 @@ int Element_DSTW::update(UPDATE_FUNC_ARGS)
}
break;
case PT_SLTW:
- if (!(rand()%3333))
+ if (!(rand()%100))
+ {
+ sim->part_change_type(i,x,y,PT_WATR);
+ }
+ if (!(rand()%2000))
{
sim->part_change_type(i,x,y,PT_SLTW);
break;
}
case PT_WATR:
- if (!(rand()%166))
+ if (!(rand()%100))
{
sim->part_change_type(i,x,y,PT_WATR);
}
break;
case PT_RBDM:
case PT_LRBD:
- if ((sim->legacy_enable||parts[i].temp>12.0f) && !(rand()%166))
+ if ((sim->legacy_enable||parts[i].temp>12.0f) && !(rand()%100))
{
sim->part_change_type(i,x,y,PT_FIRE);
parts[i].life = 4;
@@ -88,7 +92,7 @@ int Element_DSTW::update(UPDATE_FUNC_ARGS)
break;
case PT_FIRE:
sim->kill_part(r>>8);
- if(!(rand()%50)){
+ if(!(rand()%30)){
sim->kill_part(i);
return 1;
}
diff --git a/src/simulation/elements/ICEI.cpp b/src/simulation/elements/ICEI.cpp
index 7edfd22..a9c87b6 100644
--- a/src/simulation/elements/ICEI.cpp
+++ b/src/simulation/elements/ICEI.cpp
@@ -63,14 +63,14 @@ int Element_ICEI::update(UPDATE_FUNC_ARGS)
continue;
if ((r&0xFF)==PT_SALT || (r&0xFF)==PT_SLTW)
{
- if (parts[i].temp > sim->elements[PT_SLTW].LowTemperature && !(rand()%333))
+ if (parts[i].temp > sim->elements[PT_SLTW].LowTemperature && !(rand()%200))
{
sim->part_change_type(i,x,y,PT_SLTW);
sim->part_change_type(r>>8,x+rx,y+ry,PT_SLTW);
return 0;
}
}
- else if (((r&0xFF)==PT_FRZZ) && (parts[i].ctype=PT_FRZW) && !(rand()%333))
+ else if (((r&0xFF)==PT_FRZZ) && (parts[i].ctype=PT_FRZW) && !(rand()%200))
sim->part_change_type(r>>8,x+rx,y+ry,PT_ICEI);
}
return 0;
diff --git a/src/simulation/elements/PLNT.cpp b/src/simulation/elements/PLNT.cpp
index da03a4a..61218d5 100644
--- a/src/simulation/elements/PLNT.cpp
+++ b/src/simulation/elements/PLNT.cpp
@@ -58,7 +58,7 @@ int Element_PLNT::update(UPDATE_FUNC_ARGS)
switch (r&0xFF)
{
case PT_WATR:
- if (!(rand()%83))
+ if (!(rand()%50))
{
np = sim->create_part(r>>8,x+rx,y+ry,PT_PLNT);
if (np<0) continue;
@@ -66,7 +66,7 @@ int Element_PLNT::update(UPDATE_FUNC_ARGS)
}
break;
case PT_LAVA:
- if (!(rand()%83))
+ if (!(rand()%50))
{
sim->part_change_type(i,x,y,PT_FIRE);
parts[i].life = 4;
@@ -74,14 +74,14 @@ int Element_PLNT::update(UPDATE_FUNC_ARGS)
break;
case PT_SMKE:
case PT_CO2:
- if (!(rand()%83))
+ if (!(rand()%50))
{
sim->kill_part(r>>8);
parts[i].life = rand()%60 + 60;
}
break;
case PT_WOOD:
- if (surround_space && !(rand()%7) && (abs(rx+ry)<=2) && (sim->VINE_MODE || parts[i].tmp==1))
+ if (surround_space && !(rand()%4) && (abs(rx+ry)<=2) && (sim->VINE_MODE || parts[i].tmp==1))
{
int nnx = rand()%3 -1;
int nny = rand()%3 -1;
diff --git a/src/simulation/elements/PQRT.cpp b/src/simulation/elements/PQRT.cpp
index 665f5a4..5510c7a 100644
--- a/src/simulation/elements/PQRT.cpp
+++ b/src/simulation/elements/PQRT.cpp
@@ -26,7 +26,7 @@ Element_PQRT::Element_PQRT()
Weight = 90;
- Temperature = R_TEMP+0.0f +273.15f;
+ Temperature = R_TEMP+273.15f;
HeatConduct = 3;
Description = "Powdered quartz, broken form of QRTZ.";
@@ -42,113 +42,8 @@ Element_PQRT::Element_PQRT()
HighTemperature = 2573.15f;
HighTemperatureTransition = PT_LAVA;
- Update = &Element_PQRT::update;
- Graphics = &Element_PQRT::graphics;
+ Update = &Element_QRTZ::update;
+ Graphics = &Element_QRTZ::graphics;
}
-//#TPT-Directive ElementHeader Element_PQRT static int update(UPDATE_FUNC_ARGS)
-int Element_PQRT::update(UPDATE_FUNC_ARGS)
-{
- int r, tmp, trade, rx, ry, np;
- // absorb SLTW
- if (parts[i].ctype!=-1)
- for (rx=-1; rx<2; rx++)
- for (ry=-1; ry<2; ry++)
- if (BOUNDS_CHECK && (rx || ry))
- {
- r = pmap[y+ry][x+rx];
- if (!r)
- continue;
- else if ((r&0xFF)==PT_SLTW && !(rand()%833))
- {
- sim->kill_part(r>>8);
- parts[i].ctype ++;
- }
- }
- // grow and diffuse
- if (parts[i].ctype>0)
- {
- bool stopgrow=false;
- int rnd, sry, srx;
- for ( trade = 0; trade<9; trade ++)
- {
- rnd = rand()%0x3FF;
- rx = (rnd%5)-2;
- srx = (rnd%3)-1;
- rnd = rnd>>3;
- ry = (rnd%5)-2;
- sry = (rnd%3)-1;
- if (BOUNDS_CHECK && (rx || ry))
- {
- if (!stopgrow)//try to grow
- {
- if (!pmap[y+sry][x+srx] && parts[i].ctype!=0)
- {
- np = sim->create_part(-1,x+srx,y+sry,PT_QRTZ);
- if (np>-1)
- {
- parts[np].tmp = parts[i].tmp;
- parts[i].ctype--;
- if (rand()%2)
- {
- parts[np].ctype=-1;//dead qrtz
- }
- else if (!parts[i].ctype && !(rand()%15))
- {
- parts[i].ctype=-1;
- }
- stopgrow=true;
- }
- }
- }
- //diffusion
- r = pmap[y+ry][x+rx];
- if (!r)
- continue;
- else if ((r&0xFF)==PT_PQRT && (parts[i].ctype>parts[r>>8].ctype) && parts[r>>8].ctype>=0 )
- {
- tmp = parts[i].ctype - parts[r>>8].ctype;
- if (tmp ==1)
- {
- parts[r>>8].ctype ++;
- parts[i].ctype --;
- break;
- }
- if (tmp>0)
- {
- parts[r>>8].ctype += tmp/2;
- parts[i].ctype -= tmp/2;
- break;
- }
- }
- }
- }
- }
- return 0;
-}
-
-
-//#TPT-Directive ElementHeader Element_PQRT static int graphics(GRAPHICS_FUNC_ARGS)
-int Element_PQRT::graphics(GRAPHICS_FUNC_ARGS)
- //QRTZ and PQRT
-{
- int t = cpart->type, z = cpart->tmp - 5;//speckles!
- /*if (cpart->temp>(ptransitions[t].thv-800.0f))//hotglow for quartz
- {
- float frequency = 3.1415/(2*ptransitions[t].thv-(ptransitions[t].thv-800.0f));
- int q = (cpart->temp>ptransitions[t].thv)?ptransitions[t].thv-(ptransitions[t].thv-800.0f):cpart->temp-(ptransitions[t].thv-800.0f);
- *colr += sin(frequency*q) * 226 + (z * 16);
- *colg += sin(frequency*q*4.55 +3.14) * 34 + (z * 16);
- *colb += sin(frequency*q*2.22 +3.14) * 64 + (z * 16);
- }
- else*/
- {
- *colr += z * 16;
- *colg += z * 16;
- *colb += z * 16;
- }
- return 0;
-}
-
-
Element_PQRT::~Element_PQRT() {}
diff --git a/src/simulation/elements/QRTZ.cpp b/src/simulation/elements/QRTZ.cpp
index a9510b1..5eec6d6 100644
--- a/src/simulation/elements/QRTZ.cpp
+++ b/src/simulation/elements/QRTZ.cpp
@@ -26,7 +26,7 @@ Element_QRTZ::Element_QRTZ()
Weight = 100;
- Temperature = R_TEMP+0.0f +273.15f;
+ Temperature = R_TEMP+273.15f;
HeatConduct = 3;
Description = "Quartz, breakable mineral. Conducts but becomes brittle at lower temperatures.";
@@ -49,23 +49,26 @@ Element_QRTZ::Element_QRTZ()
//#TPT-Directive ElementHeader Element_QRTZ static int update(UPDATE_FUNC_ARGS)
int Element_QRTZ::update(UPDATE_FUNC_ARGS)
{
- int r, tmp, trade, rx, ry, np;
- parts[i].pavg[0] = parts[i].pavg[1];
- parts[i].pavg[1] = sim->pv[y/CELL][x/CELL];
- if (parts[i].pavg[1]-parts[i].pavg[0] > 0.05*(parts[i].temp/3) || parts[i].pavg[1]-parts[i].pavg[0] < -0.05*(parts[i].temp/3))
+ int r, tmp, trade, rx, ry, np, t = parts[i].type;
+ if (t == PT_QRTZ)
{
- sim->part_change_type(i,x,y,PT_PQRT);
+ parts[i].pavg[0] = parts[i].pavg[1];
+ parts[i].pavg[1] = sim->pv[y/CELL][x/CELL];
+ if (parts[i].pavg[1]-parts[i].pavg[0] > 0.05*(parts[i].temp/3) || parts[i].pavg[1]-parts[i].pavg[0] < -0.05*(parts[i].temp/3))
+ {
+ sim->part_change_type(i,x,y,PT_PQRT);
+ }
}
// absorb SLTW
if (parts[i].ctype!=-1)
- for (rx=-2; rx<3; rx++)
- for (ry=-2; ry<3; ry++)
+ for (rx=-1; rx<2; rx++)
+ for (ry=-1; ry<2; ry++)
if (BOUNDS_CHECK && (rx || ry))
{
r = pmap[y+ry][x+rx];
if (!r)
continue;
- else if ((r&0xFF)==PT_SLTW && !(rand()%2500))
+ else if ((r&0xFF)==PT_SLTW && !(rand()%500))
{
sim->kill_part(r>>8);
parts[i].ctype ++;
@@ -111,7 +114,7 @@ int Element_QRTZ::update(UPDATE_FUNC_ARGS)
r = pmap[y+ry][x+rx];
if (!r)
continue;
- else if ((r&0xFF)==PT_QRTZ && (parts[i].ctype>parts[r>>8].ctype) && parts[r>>8].ctype>=0 )
+ else if ((r&0xFF)==PT_QRTZ && (parts[i].ctype>parts[r>>8].ctype) && parts[r>>8].ctype>=0)
{
tmp = parts[i].ctype - parts[r>>8].ctype;
if (tmp ==1)
diff --git a/src/simulation/elements/SLTW.cpp b/src/simulation/elements/SLTW.cpp
index 7c38286..7575750 100644
--- a/src/simulation/elements/SLTW.cpp
+++ b/src/simulation/elements/SLTW.cpp
@@ -58,16 +58,16 @@ int Element_SLTW::update(UPDATE_FUNC_ARGS)
switch (r&0xFF)
{
case PT_SALT:
- if (!(rand()%3333))
+ if (!(rand()%2000))
sim->part_change_type(r>>8,x+rx,y+ry,PT_SLTW);
break;
case PT_PLNT:
- if (!(rand()%66))
+ if (!(rand()%40))
sim->kill_part(r>>8);
break;
case PT_RBDM:
case PT_LRBD:
- if ((sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && !(rand()%166))
+ if ((sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && !(rand()%100))
{
sim->part_change_type(i,x,y,PT_FIRE);
parts[i].life = 4;
@@ -78,7 +78,7 @@ int Element_SLTW::update(UPDATE_FUNC_ARGS)
if (parts[r>>8].ctype!=PT_WATR)
{
sim->kill_part(r>>8);
- if(!(rand()%150)){
+ if(!(rand()%30)){
sim->kill_part(i);
return 1;
}
diff --git a/src/simulation/elements/WATR.cpp b/src/simulation/elements/WATR.cpp
index ab5b814..17289e0 100644
--- a/src/simulation/elements/WATR.cpp
+++ b/src/simulation/elements/WATR.cpp
@@ -57,14 +57,14 @@ int Element_WATR::update(UPDATE_FUNC_ARGS)
r = pmap[y+ry][x+rx];
if (!r)
continue;
- if ((r&0xFF)==PT_SALT && !(rand()%83))
+ if ((r&0xFF)==PT_SALT && !(rand()%50))
{
sim->part_change_type(i,x,y,PT_SLTW);
// on average, convert 3 WATR to SLTW before SALT turns into SLTW
if (!(rand()%3))
sim->part_change_type(r>>8,x+rx,y+ry,PT_SLTW);
}
- else if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && (sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && !(rand()%166))
+ else if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && (sim->legacy_enable||parts[i].temp>(273.15f+12.0f)) && !(rand()%100))
{
sim->part_change_type(i,x,y,PT_FIRE);
parts[i].life = 4;
@@ -72,12 +72,16 @@ int Element_WATR::update(UPDATE_FUNC_ARGS)
}
else if ((r&0xFF)==PT_FIRE && parts[r>>8].ctype!=PT_WATR){
sim->kill_part(r>>8);
- if(!(rand()%50)){
+ if(!(rand()%30)){
sim->kill_part(i);
return 1;
}
}
- /*if ((r&0xFF)==PT_CNCT && 1>(rand()%500)) Concrete+Water to paste, not very popular
+ else if ((r&0xFF)==PT_SLTW && !(rand()%2000))
+ {
+ sim->part_change_type(i,x,y,PT_SLTW);
+ }
+ /*if ((r&0xFF)==PT_CNCT && !(rand()%100)) Concrete+Water to paste, not very popular
{
part_change_type(i,x,y,PT_PSTE);
sim.kill_part(r>>8);
diff --git a/src/simulation/elements/WTRV.cpp b/src/simulation/elements/WTRV.cpp
index b49ef67..73b0808 100644
--- a/src/simulation/elements/WTRV.cpp
+++ b/src/simulation/elements/WTRV.cpp
@@ -57,7 +57,7 @@ int Element_WTRV::update(UPDATE_FUNC_ARGS)
r = pmap[y+ry][x+rx];
if (!r)
continue;
- if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && !sim->legacy_enable && parts[i].temp>(273.15f+12.0f) && !(rand()%166))
+ if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && !sim->legacy_enable && parts[i].temp>(273.15f+12.0f) && !(rand()%100))
{
sim->part_change_type(i,x,y,PT_FIRE);
parts[i].life = 4;
diff --git a/src/simulation/elements/YEST.cpp b/src/simulation/elements/YEST.cpp
index 0d82eeb..3987cd6 100644
--- a/src/simulation/elements/YEST.cpp
+++ b/src/simulation/elements/YEST.cpp
@@ -57,7 +57,7 @@ int Element_YEST::update(UPDATE_FUNC_ARGS)
r = pmap[y+ry][x+rx];
if (!r)
continue;
- if ((r&0xFF)==PT_DYST && !(rand()%10) && !sim->legacy_enable)
+ if ((r&0xFF)==PT_DYST && !(rand()%6) && !sim->legacy_enable)
{
sim->part_change_type(i,x,y,PT_DYST);
}