summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/cbnw.c9
-rw-r--r--src/elements/co2.c7
2 files changed, 15 insertions, 1 deletions
diff --git a/src/elements/cbnw.c b/src/elements/cbnw.c
index 1834879..60b1bf3 100644
--- a/src/elements/cbnw.c
+++ b/src/elements/cbnw.c
@@ -3,6 +3,15 @@
int update_CBNW(UPDATE_FUNC_ARGS) {
int r, rx, ry, oldt;
oldt = parts[i].tmp;
+ if (pv[y/CELL][x/CELL]<=1)
+ {
+ if(20>(rand()%20000))
+ {
+ part_change_type(i,x,y,PT_CO2);
+ parts[i].ctype = 5;
+ pv[y/CELL][x/CELL] += 0.5f;
+ }
+ }
if (parts[i].tmp>0)
parts[i].tmp--;
if(!(rand()%200))
diff --git a/src/elements/co2.c b/src/elements/co2.c
index afe4af3..3bc86a8 100644
--- a/src/elements/co2.c
+++ b/src/elements/co2.c
@@ -1,7 +1,7 @@
#include <element.h>
int update_CO2(UPDATE_FUNC_ARGS) {
- int r, rx, ry;
+ int r, rx, ry, np;
for (rx=-2; rx<3; rx++)
for (ry=-2; ry<3; ry++)
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
@@ -16,6 +16,11 @@ int update_CO2(UPDATE_FUNC_ARGS) {
return 1;
}
}
+ if ((r)&&parts[i].ctype==5)
+ {
+ parts[i].ctype = 0;
+ create_part(-1, x+rand()%3-1, y+rand()%3-1, PT_WATR);
+ }
if (((r&0xFF)==PT_WATR || (r&0xFF)==PT_DSTW) && 1>(rand()%250))
{
part_change_type(i,x,y,PT_CBNW);