diff options
| author | Cracker64 <cracker642@gmail.com> | 2010-12-24 20:00:59 (GMT) |
|---|---|---|
| committer | Cracker64 <cracker642@gmail.com> | 2010-12-24 20:00:59 (GMT) |
| commit | 65a60b3812b708620b4ff4b13c3521fa5e4547ab (patch) | |
| tree | 2bb37a97351e5069f550ddebec49bee5644e67f4 /src/graphics.c | |
| parent | 41d9dca73fd5f29bfd30927ec5429d050718f68c (diff) | |
| download | powder-65a60b3812b708620b4ff4b13c3521fa5e4547ab.zip powder-65a60b3812b708620b4ff4b13c3521fa5e4547ab.tar.gz | |
updated with BOMB
Diffstat (limited to 'src/graphics.c')
| -rw-r--r-- | src/graphics.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/graphics.c b/src/graphics.c index e719a04..9beeeb0 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -2425,6 +2425,76 @@ void draw_parts(pixel *vid) blendpixel(vid, nx-1, ny-1, cr, cg, cb, 32); } } + else if(t==PT_BOMB){ + if(parts[i].tmp==0){ + cr = PIXR(ptypes[t].pcolors); + cg = PIXG(ptypes[t].pcolors); + cb = PIXB(ptypes[t].pcolors); + if(cmode != CM_NOTHING && cmode != CM_CRACK){ + int newx = 0; + float gradv = 100; + blendpixel(vid, nx+1, ny, cr, cg, cb, 223); + blendpixel(vid, nx-1, ny, cr, cg, cb, 223); + blendpixel(vid, nx, ny+1, cr, cg, cb, 223); + blendpixel(vid, nx, ny-1, cr, cg, cb, 223); + + blendpixel(vid, nx+1, ny-1, cr, cg, cb, 112); + blendpixel(vid, nx-1, ny-1, cr, cg, cb, 112); + blendpixel(vid, nx+1, ny+1, cr, cg, cb, 112); + blendpixel(vid, nx-1, ny+1, cr, cg, cb, 112); + for(newx = 0; gradv>0.5; newx++){ + addpixel(vid, nx+newx, ny, cr, cg, cb, gradv); + addpixel(vid, nx-newx, ny, cr, cg, cb, gradv); + + addpixel(vid, nx, ny+newx, cr, cg, cb, gradv); + addpixel(vid, nx, ny-newx, cr, cg, cb, gradv); + gradv = gradv/1.1f; + } + } + } + else if(parts[i].tmp==1){ + cr = PIXR(ptypes[t].pcolors); + cg = PIXG(ptypes[t].pcolors); + cb = PIXB(ptypes[t].pcolors); + if(cmode != CM_NOTHING && cmode != CM_CRACK){ + int newx = 0; + float gradv = 4*parts[i].life; + for(newx = 0; gradv>0.5; newx++){ + addpixel(vid, nx+newx, ny, cr, cg, cb, gradv); + addpixel(vid, nx-newx, ny, cr, cg, cb, gradv); + + addpixel(vid, nx, ny+newx, cr, cg, cb, gradv); + addpixel(vid, nx, ny-newx, cr, cg, cb, gradv); + gradv = gradv/1.5f; + } + } + } + else { + blendpixel(vid, nx, ny, 255, 255, 255, 255); + } + + } + else if(ptypes[t].properties&PROP_HOT_GLOW && parts[i].temp>473.0f) + { + float frequency = 0.00146; + int q = (parts[i].temp>1370)?1370-473:parts[i].temp-473; + cr = sin(frequency*q) * 226 + PIXR(ptypes[t].pcolors); + cg = sin(frequency*q*4.55 +3.14) * 34 + PIXG(ptypes[t].pcolors); + cb = sin(frequency*q*2.22 +3.14) * 64 + PIXB(ptypes[t].pcolors); + if(cr>=255) + cr = 255; + if(cg>=255) + cg = 255; + if(cb>=255) + cb = 255; + if(cr<=0) + cr = 0; + if(cg<=0) + cg = 0; + if(cb<=0) + cb = 0; + blendpixel(vid, nx, ny, cr, cg, cb, 255); + } else if(t==PT_FIRE && parts[i].life) { float ttemp = (float)((int)(parts[i].life/2)); |
