diff options
Diffstat (limited to 'src/elements/gel.cpp')
| -rw-r--r-- | src/elements/gel.cpp | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/src/elements/gel.cpp b/src/elements/gel.cpp deleted file mode 100644 index 0853a5f..0000000 --- a/src/elements/gel.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include "simulation/Element.h" - -int update_GEL(UPDATE_FUNC_ARGS) { - int r, rx, ry; - 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)) - { - r = pmap[y+ry][x+rx]; - if (!r) - continue; - - //Desaturation - if (((r&0xFF)==PT_WATR || (r&0xFF)==PT_DSTW || (r&0xFF)==PT_SLTW || (r&0xFF)==PT_CBNW) - && parts[i].tmp<100) - { - parts[i].tmp = (100+parts[i].tmp)/2; - sim->kill_part(r>>8); - } - - char gel = 0; - if ((r&0xFF)==PT_GEL) - gel = 1; - - //Concentration diffusion - if (gel && (parts[r>>8].tmp+1)<parts[i].tmp) - { - parts[r>>8].tmp++; - parts[i].tmp--; - } - - if ((r&0xFF)==PT_SPNG && (parts[r>>8].life+1)<parts[i].tmp) - { - parts[r>>8].life++; - parts[i].tmp--; - } - - float dx, dy; - dx = parts[i].x - parts[r>>8].x; - dy = parts[i].y - parts[r>>8].y; - - //Stickness - if ((dx*dx + dy*dy)>1.5 && (gel || !sim->ptypes[r&0xFF].falldown || (fabs(rx)<2 && fabs(ry)<2))) - { - float per, nd; - nd = dx*dx + dy*dy - 0.5; - - per = 5*(1 - parts[i].tmp/100)*(nd/(dx*dx + dy*dy + nd) - 0.5); - if (sim->ptypes[r&0xFF].state==ST_LIQUID) - per *= 0.1; - - dx *= per; dy *= per; - parts[i].vx += dx; parts[r>>8].vx -= dx; - parts[i].vy += dy; parts[r>>8].vy -= dy; - } - } - return 0; -} - -int graphics_GEL(GRAPHICS_FUNC_ARGS) -{ - int q = cpart->tmp; - *colr = q*(32-255)/120+255; - *colg = q*(48-186)/120+186; - *colb = q*208/120; - return 0; -} - |
