WIND works with line tool, BOMB shine affected by velocity and flickers
This commit is contained in:
parent
812798d70d
commit
ed244f42cb
@ -2646,23 +2646,25 @@ void draw_parts(pixel *vid)
|
|||||||
cb = PIXB(ptypes[t].pcolors);
|
cb = PIXB(ptypes[t].pcolors);
|
||||||
if (cmode != CM_CRACK) {
|
if (cmode != CM_CRACK) {
|
||||||
int newx = 0;
|
int newx = 0;
|
||||||
float gradv = 100;
|
float flicker = rand()%20;
|
||||||
blendpixel(vid, nx+1, ny, cr, cg, cb, 223);
|
float gradv = flicker + fabs(parts[i].vx)*17 + fabs(parts[i].vy)*17;
|
||||||
blendpixel(vid, nx-1, ny, cr, cg, cb, 223);
|
blendpixel(vid, nx, ny, cr, cg, cb, (gradv*4)>255?255:(gradv*4) );
|
||||||
blendpixel(vid, nx, ny+1, cr, cg, cb, 223);
|
blendpixel(vid, nx+1, ny, cr, cg, cb, (gradv*2)>255?255:(gradv*2) );
|
||||||
blendpixel(vid, nx, ny-1, cr, cg, cb, 223);
|
blendpixel(vid, nx-1, ny, cr, cg, cb, (gradv*2)>255?255:(gradv*2) );
|
||||||
|
blendpixel(vid, nx, ny+1, cr, cg, cb, (gradv*2)>255?255:(gradv*2) );
|
||||||
blendpixel(vid, nx+1, ny-1, cr, cg, cb, 112);
|
blendpixel(vid, nx, ny-1, cr, cg, cb, (gradv*2)>255?255:(gradv*2) );
|
||||||
blendpixel(vid, nx-1, ny-1, cr, cg, cb, 112);
|
if(gradv>255) gradv=255;
|
||||||
blendpixel(vid, nx+1, ny+1, cr, cg, cb, 112);
|
blendpixel(vid, nx+1, ny-1, cr, cg, cb, gradv);
|
||||||
blendpixel(vid, nx-1, ny+1, cr, cg, cb, 112);
|
blendpixel(vid, nx-1, ny-1, cr, cg, cb, gradv);
|
||||||
for (newx = 0; gradv>0.5; newx++) {
|
blendpixel(vid, nx+1, ny+1, cr, cg, cb, gradv);
|
||||||
|
blendpixel(vid, nx-1, ny+1, cr, cg, cb, gradv);
|
||||||
|
for (newx = 1; 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-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);
|
||||||
addpixel(vid, nx, ny-newx, cr, cg, cb, gradv);
|
addpixel(vid, nx, ny-newx, cr, cg, cb, gradv);
|
||||||
gradv = gradv/1.1f;
|
gradv = gradv/1.2f;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
blendpixel(vid, nx, ny, cr, cg, cb, 255);
|
blendpixel(vid, nx, ny, cr, cg, cb, 255);
|
||||||
@ -2674,7 +2676,8 @@ void draw_parts(pixel *vid)
|
|||||||
cb = PIXB(ptypes[t].pcolors);
|
cb = PIXB(ptypes[t].pcolors);
|
||||||
if (cmode != CM_CRACK) {
|
if (cmode != CM_CRACK) {
|
||||||
int newx = 0;
|
int newx = 0;
|
||||||
float gradv = 4*parts[i].life;
|
float flicker = rand()%20;
|
||||||
|
float gradv = 4*parts[i].life + flicker;
|
||||||
for (newx = 0; gradv>0.5; newx++) {
|
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-newx, ny, cr, cg, cb, gradv);
|
addpixel(vid, nx-newx, ny, cr, cg, cb, gradv);
|
||||||
|
10
src/main.c
10
src/main.c
@ -3364,6 +3364,16 @@ int main(int argc, char *argv[])
|
|||||||
bmap[j][i] = WL_FAN;
|
bmap[j][i] = WL_FAN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (c == PT_WIND)
|
||||||
|
{
|
||||||
|
for (j=-bsy; j<=bsy; j++)
|
||||||
|
for (i=-bsx; i<=bsx; i++)
|
||||||
|
if (x+i>0 && y+j>0 && x+i<XRES && y+j<YRES && ((CURRENT_BRUSH==CIRCLE_BRUSH && (pow(i,2))/(pow(bsx,2))+(pow(j,2))/(pow(bsy,2))<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=bsy*bsx)))
|
||||||
|
{
|
||||||
|
vx[(ly+j)/CELL][(lx+i)/CELL] += (x-lx)*0.002f;
|
||||||
|
vy[(ly+j)/CELL][(lx+i)/CELL] += (y-ly)*0.002f;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (lm == 2)
|
else if (lm == 2)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user