From eb7206aa304ac46ee08d4d2466b48ffe217f7bcb Mon Sep 17 00:00:00 2001 From: Phil Date: Tue, 7 Sep 2010 20:32:51 -0400 Subject: [PATCH] Fireworks look much better, and random colors for each firework yay! --- graphics.c | 13 +------------ powder.c | 40 +++++++++++++++++++--------------------- powder.h | 2 +- 3 files changed, 21 insertions(+), 34 deletions(-) diff --git a/graphics.c b/graphics.c index 758dd8e8e..c8eb964f4 100644 --- a/graphics.c +++ b/graphics.c @@ -1407,18 +1407,7 @@ void draw_parts(pixel *vid) { x = nx; y = ny; - if(parts[i].life>=50&&parts[i].life<=250) - blendpixel(vid,x,y,255,5,20,255); - if(parts[i].life>=251&&parts[i].life<=450) - blendpixel(vid,x,y,12,245,2,255); - if(parts[i].life>=451&&parts[i].life<=650) - blendpixel(vid,x,y,1,5,255,255); - if(parts[i].life>=651&&parts[i].life<=850) - blendpixel(vid,x,y,0,139,139,255); - if(parts[i].life>=851&&parts[i].life<=1050) - blendpixel(vid,x,y,238,154,0,255); - if(parts[i].life>=1051&&parts[i].life<=1250) - blendpixel(vid,x,y,24,154,236,255); + blendpixel(vid,x,y,parts[i].tmp,parts[i].ctype,parts[i].flags,255); } else if(t==PT_LNTG&&cmode == 6) { diff --git a/powder.c b/powder.c index e395a7555..7e25ce009 100644 --- a/powder.c +++ b/powder.c @@ -1911,41 +1911,42 @@ player[23] = 1; create_part(-1, x , y-1 , PT_FWRK); r = pmap[y-1][x]; - parts[r>>8].vy = rand()%5-10; - parts[r>>8].vx = rand()%5-rand()%5; + parts[r>>8].vy = rand()%10-25; + parts[r>>8].vx = rand()%30-rand()%30; parts[r>>8].life=rand()%30+50; parts[i].type=PT_NONE; } if(parts[i].life>1) { - if(parts[i].life>5) - { - parts[i].vy += rand()%3-rand()%5; - parts[i].vx += rand()%3-rand()%3; - } parts[i].life--; + if(parts[i].life>=90&&parts[i].type==PT_FWRK) + parts[i].life=0; } - if(parts[i].life==1||(parts[i].vy>6&&parts[i].life>1)) + if((parts[i].life<3&&parts[i].life>0)||parts[i].vy>6&&parts[i].life>0) { - int q = (rand()%6+1)*200+50; + int q = (rand()%255+1); + int w = (rand()%255+1); + int e = (rand()%255+1); for(nx=-1; nx<2; nx++) - for(ny=-1; ny<2; ny++) + for(ny=-2; ny<3; ny++) if(x+nx>=0 && y+ny>0 && - x+nx=rand()%8) { - create_part(-1, x+nx, y+ny , PT_DUST); a= pmap[y+ny][x+nx]; - parts[a>>8].vy = rand()%(ny*16+4)-rand()%9; - parts[a>>8].vx = rand()%(nx*16+4)-rand()%9; - parts[a>>8].life= q; + parts[a>>8].vy = -(rand()%8+1); + parts[a>>8].vx = rand()%8-rand()%8+(parts[i].vx)*2; + parts[a>>8].life= rand()%75+175; + parts[a>>8].tmp=q; + parts[a>>8].flags=w; + parts[a>>8].ctype=e; parts[a>>8].temp= rand()%20+600; - parts[i].type=PT_NONE; } + } - + parts[i].type=PT_NONE; } } if(t==PT_DUST&&!parts[i].life==0) @@ -1953,10 +1954,7 @@ player[23] = 1; if(parts[i].life>=0) { parts[i].life--; - if(parts[i].life<=50||(parts[i].life>248&&parts[i].life<252)||(parts[i].life>448&&parts[i].life<452)||(parts[i].life>648&&parts[i].life<652)|| - (parts[i].life>848&&parts[i].life<852)||(parts[i].life>1048&&parts[i].life<1052)||parts[i].life==rand()%50+50||parts[i].life==rand()%50+10|| - parts[i].life==rand()%50+250||parts[i].life==rand()%50+350||parts[i].life==rand()%50+450||parts[i].life==rand()%50+550||parts[i].life==rand()%50+50||parts[i].life==rand()%50+10|| - parts[i].life==rand()%50+250||parts[i].life==rand()%50+350||parts[i].life==rand()%50+450||parts[i].life==rand()%50+550) + if(parts[i].life<1) parts[i].type=PT_NONE; } diff --git a/powder.h b/powder.h index 5bc041fe6..dab31e0bc 100644 --- a/powder.h +++ b/powder.h @@ -253,7 +253,7 @@ static const part_type ptypes[PT_NUM] = {"THRM", PIXPACK(0xA08090), 0.4f, 0.04f * CFDS, 0.94f, 0.95f, -0.1f, 0.3f, 0.00f, 0.000f * CFDS, 1, 0, 0, 2, 2, 1, SC_POWDERS, R_TEMP+0.0f +273.15f, 211, "Thermite."}, {"GLOW", PIXPACK(0x445544), 0.3f, 0.02f * CFDS, 0.95f, 0.80f, 0.0f, 0.15f, 0.00f, 0.000f * CFDS, 2, 0, 0, 0, 2, 1, SC_LIQUID, R_TEMP+20.0f+273.15f, 44, "Glow."}, {"BRCK", PIXPACK(0x808080), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 1, 1, SC_SOLIDS, R_TEMP+0.0f +273.15f, 251, "Brick, breakable building material."}, - {"FWRK", PIXPACK(0x707020), 0.4f, 0.01f * CFDS, 0.99f, 0.95f, 0.0f, 0.4f, 0.00f, 0.000f * CFDS, 1, 0, 0, 0, 0, 1, SC_POWDERS, R_TEMP+0.0f+273.15f, 100, "Fireworks!! in progress"}, + {"FWRK", PIXPACK(0x666666), 0.4f, 0.01f * CFDS, 0.99f, 0.95f, 0.0f, 0.4f, 0.00f, 0.000f * CFDS, 1, 0, 0, 0, 0, 1, SC_POWDERS, R_TEMP+0.0f+273.15f, 100, "Fireworks!! in progress"}, //Name Colour Advec Airdrag Airloss Loss Collid Grav Diffus Hotair Fal Burn Exp Mel Hrd M Section H Ins(real world, by triclops200) Description };