Fireworks look much better, and random colors for each firework yay!

This commit is contained in:
Phil 2010-09-07 20:32:51 -04:00
parent d7bb4932e6
commit eb7206aa30
3 changed files with 21 additions and 34 deletions

View File

@ -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)
{

View File

@ -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<XRES && y+ny<YRES && (nx || ny))
x+nx<XRES && y+ny<YRES)
{
if(5>=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;
}

View File

@ -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
};