/* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include int update_DSTW(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(rand()%250)) { part_change_type(i,x,y,PT_SLTW); // on average, convert 3 DSTW to SLTW before SALT turns into SLTW if (rand()%3==0) part_change_type(r>>8,x+rx,y+ry,PT_SLTW); } if (((r&0xFF)==PT_WATR||(r&0xFF)==PT_SLTW) && 1>(rand()%500)) { part_change_type(i,x,y,PT_WATR); } if ((r&0xFF)==PT_SLTW && 1>(rand()%10000)) { part_change_type(i,x,y,PT_SLTW); } if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && (legacy_enable||parts[i].temp>12.0f) && 1>(rand()%500)) { part_change_type(i,x,y,PT_FIRE); parts[i].life = 4; } if ((r&0xFF)==PT_FIRE){ kill_part(r>>8); if(1>(rand()%150)){ kill_part(i); return 1; } } } return 0; }