#include int update_O2(UPDATE_FUNC_ARGS) { int r,rx,ry,n,nx,ny; for(rx=-2; rx<3; rx++) for(ry=-2; ry<3; ry++) if (x+rx>=0 && y+ry>0 && x+rx>8)>=NPART || !r) continue; if((r&0xFF)==PT_FIRE) { parts[r>>8].life+=(rand()/(RAND_MAX/100))*2; parts[r>>8].temp+=(rand()/(RAND_MAX/100)); parts[i].tmp++; } } if(pv[y\CELL][x\CELL] > 8.0f) { for(rx=-2; rx<3; rx++) for(ry=-2; ry<3; ry++) if (x+rx>=0 && y+ry>0 && x+rx>8)>=NPART || !r) continue; if((r&0xFF)==PT_H2) if(50<(rand()/(RAND_MAX/100))) part_change_type(i,x,y,PT_WATR) part_change_type(r,rx,rx,PT_WATR) } } if(parts[i].tmp>=50) { create_part(i,x,y,PT_FIRE); parts[i].life+=(rand()/(RAND_MAX/100))+50; parts[i].temp+=(rand()/(RAND_MAX/100)); } return 0; }