summaryrefslogtreecommitdiff
path: root/src/graphics.c
diff options
context:
space:
mode:
authorCracker64 <cracker642@gmail.com>2010-12-14 22:23:27 (GMT)
committer Cracker64 <cracker642@gmail.com>2010-12-14 22:23:27 (GMT)
commit5b2c6893941cc04bbe80f74b8ea35a744b0164cc (patch)
treeb18eeb273faf4ad6329e4183c1e16381b304f53b /src/graphics.c
parent23f828135a21831adeb5511eb59b6dd2105baf27 (diff)
downloadpowder-5b2c6893941cc04bbe80f74b8ea35a744b0164cc.zip
powder-5b2c6893941cc04bbe80f74b8ea35a744b0164cc.tar.gz
another swch fix, desl fire fix, shift-g will make grid go down, BIZR glows from velocity in FIRE,ect. METL/BRMT/BMTL change color when heated in heat gradient view. other small changes.
Diffstat (limited to 'src/graphics.c')
-rw-r--r--src/graphics.c76
1 files changed, 60 insertions, 16 deletions
diff --git a/src/graphics.c b/src/graphics.c
index 8dfea36..54ca233 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -1432,27 +1432,50 @@ void draw_parts(pixel *vid)
blendpixel(vid, nx, ny, cr, cg, cb, 255);
}
}
- else if(cmode==CM_GRAD)//forgot to put else, broke nothing view
+ else if(cmode==CM_GRAD)
{
- float frequency = 0.05;
- int q = parts[i].temp;
- cr = sin(frequency*q) * 16 + PIXR(ptypes[t].pcolors);
- cg = sin(frequency*q) * 16 + PIXG(ptypes[t].pcolors);
- cb = sin(frequency*q) * 16 + PIXB(ptypes[t].pcolors);
- if(cr>=255)
+ if((t==PT_METL||t==PT_BRMT||t==PT_BMTL)&&parts[i].temp>473&&parts[i].temp<1370)
+ {
+ float frequency = 0.00146;
+ int q = 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)
+ if(cg>=255)
cg = 255;
- if(cb>=255)
+ if(cb>=255)
cb = 255;
- if(cr<=0)
+ if(cr<=0)
cr = 0;
- if(cg<=0)
+ if(cg<=0)
cg = 0;
- if(cb<=0)
+ if(cb<=0)
cb = 0;
- blendpixel(vid, nx, ny, cr, cg, cb, 255);
-
+ blendpixel(vid, nx, ny, cr, cg, cb, 255);
+ }
+ else
+ {
+ float frequency = 0.05;
+ int q = parts[i].temp-40;
+ cr = sin(frequency*q) * 16 + PIXR(ptypes[t].pcolors);
+ cg = sin(frequency*q) * 16 + PIXG(ptypes[t].pcolors);
+ cb = sin(frequency*q) * 16 + 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_MWAX&&cmode == CM_FANCY)
@@ -1471,7 +1494,7 @@ void draw_parts(pixel *vid)
}
}
- else if(t==PT_CRAC)
+ else if(t==PT_SPNG)
{
cr = PIXR(ptypes[t].pcolors) - parts[i].life*15;
cg = PIXG(ptypes[t].pcolors) - parts[i].life*15;
@@ -1623,7 +1646,28 @@ void draw_parts(pixel *vid)
cr = cr>255?255:cr;
cg = cg>255?255:cg;
cb = cb>255?255:cb;
- blendpixel(vid, nx, ny, cr, cg, cb, 255);
+ if(fabs(parts[i].vx)+fabs(parts[i].vy)>0 &&(cmode == CM_FIRE||cmode==CM_BLOB || cmode==CM_FANCY)) {
+ fg = 0;
+ fb = 0;
+ fr = 0;
+ fg = cg/40 * fabs(parts[i].vx)+fabs(parts[i].vy);
+ fb = cb/40 * fabs(parts[i].vx)+fabs(parts[i].vy);
+ fr = cr/40 * fabs(parts[i].vx)+fabs(parts[i].vy);
+ vid[ny*(XRES+BARSIZE)+nx] = PIXRGB((int)restrict_flt(cr, 0, 255), (int)restrict_flt(cg, 0, 255), (int)restrict_flt(cb, 0, 255));
+ x = nx/CELL;
+ y = ny/CELL;
+ fg += fire_g[y][x];
+ if(fg > 255) fg = 255;
+ fire_g[y][x] = fg;
+ fb += fire_b[y][x];
+ if(fb > 255) fb = 255;
+ fire_b[y][x] = fb;
+ fr += fire_r[y][x];
+ if(fr > 255) fr = 255;
+ fire_r[y][x] = fr;
+ }
+ else
+ blendpixel(vid, nx, ny, cr, cg, cb, 255);
}
else if(t==PT_PIPE)
{