summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil <cracker642@gmail.com>2010-09-08 00:32:51 (GMT)
committer Phil <cracker642@gmail.com>2010-09-08 00:32:51 (GMT)
commiteb7206aa304ac46ee08d4d2466b48ffe217f7bcb (patch)
tree263bea4f47667e7350c10d94ce451d14ed5ae8fc
parentd7bb4932e675f31381f36bcc1dd933f875ac9496 (diff)
downloadpowder-eb7206aa304ac46ee08d4d2466b48ffe217f7bcb.zip
powder-eb7206aa304ac46ee08d4d2466b48ffe217f7bcb.tar.gz
Fireworks look much better, and random colors for each firework yay!
-rw-r--r--graphics.c13
-rw-r--r--powder.c40
-rw-r--r--powder.h2
3 files changed, 21 insertions, 34 deletions
diff --git a/graphics.c b/graphics.c
index 758dd8e..c8eb964 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 e395a75..7e25ce0 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<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;
}
diff --git a/powder.h b/powder.h
index 5bc041f..dab31e0 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
};