diff options
Diffstat (limited to 'src/elements')
| -rw-r--r-- | src/elements/cbnw.c | 9 | ||||
| -rw-r--r-- | src/elements/co2.c | 7 |
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); |
