diff options
| author | Philip <philip@philip-linuxlaptop.(none)> | 2010-11-12 17:46:02 (GMT) |
|---|---|---|
| committer | Philip <philip@philip-linuxlaptop.(none)> | 2010-11-12 17:46:02 (GMT) |
| commit | ebcded767e1e35a3431b4938cb9dd39b6b8ad188 (patch) | |
| tree | ae59c29202d7095eecea81c745c494bb909f5312 /src/powder.c | |
| parent | 383b2ad709e8b03702c8590ce944639ddd471e7b (diff) | |
| download | powder-ebcded767e1e35a3431b4938cb9dd39b6b8ad188.zip powder-ebcded767e1e35a3431b4938cb9dd39b6b8ad188.tar.gz | |
First release of the mod
Diffstat (limited to 'src/powder.c')
| -rw-r--r-- | src/powder.c | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/src/powder.c b/src/powder.c index 97e6ae7..04999fb 100644 --- a/src/powder.c +++ b/src/powder.c @@ -929,7 +929,7 @@ void update_particles_i(pixel *vid, int start, int inc) { if(!(parts[i].life==10&&(parts[i].type==PT_LCRY||parts[i].type==PT_PCLN||parts[i].type==PT_HSWC))) parts[i].life--; - if(parts[i].life<=0 && t!=PT_METL && t!=PT_IRON && t!=PT_FIRW && t!=PT_PCLN && t!=PT_HSWC && t!=PT_WATR && t!=PT_RBDM && t!=PT_LRBD && t!=PT_SLTW && t!=PT_BRMT && t!=PT_PSCN && t!=PT_NSCN && t!=PT_NTCT && t!=PT_PTCT && t!=PT_BMTL && t!=PT_SPRK && t!=PT_LAVA && t!=PT_ETRD&&t!=PT_LCRY && t!=PT_INWR && t!=PT_GLOW) + if(parts[i].life<=0 && t!=PT_METL && t!=PT_IRON && t!=PT_FIRW && t!=PT_PCLN && t!=PT_HSWC && t!=PT_WATR && t!=PT_RBDM && t!=PT_LRBD && t!=PT_SLTW && t!=PT_BRMT && t!=PT_PSCN && t!=PT_NSCN && t!=PT_NTCT && t!=PT_PTCT && t!=PT_BMTL && t!=PT_SPRK && t!=PT_LAVA && t!=PT_ETRD&&t!=PT_LCRY && t!=PT_INWR && t!=PT_GLOW && t!= PT_FOG) { kill_part(i); continue; @@ -1995,6 +1995,51 @@ void update_particles_i(pixel *vid, int start, int inc) } } } + else if(t==PT_FOG) + { + for(nx=-1; nx<2; nx++) + for(ny=-1; ny<2; ny++) + if(x+nx>=0 && y+ny>0 && + x+nx<XRES && y+ny<YRES && (nx || ny)) + { + r = pmap[y+ny][x+nx]; + if((r>>8)>=NPART || !r) + continue; + if(pstates[parts[r>>8].type].state==ST_SOLID&&5>=rand()%50&&parts[i].life==0&&!(parts[r>>8].type==PT_CLNE||parts[r>>8].type==PT_PCLN)) + { + t = parts[i].type = PT_RIME; + parts[i].vx = 0; + parts[i].vy = 0; + } + if(parts[r>>8].type==PT_SPRK) + { + parts[i].life += rand()%20; + } + } + } + else if(t==PT_RIME) + { + for(nx=-1; nx<2; nx++) + for(ny=-1; ny<2; ny++) + if(x+nx>=0 && y+ny>0 && + x+nx<XRES && y+ny<YRES && (nx || ny)) + { + r = pmap[y+ny][x+nx]; + if((r>>8)>=NPART || !r) + continue; + rt = parts[r>>8].type; + if(rt==PT_SPRK) + { + t = parts[i].type = PT_FOG; + parts[i].life = rand()%50 + 60; + } + else if(rt==PT_FOG&&parts[r>>8].life>0) + { + t = parts[i].type = PT_FOG; + parts[i].life = parts[r>>8].life/2; + } + } + } else if(t==PT_LCRY) { for(nx=-1; nx<2; nx++) |
