summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-10-09 12:55:16 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-10-09 12:55:16 (GMT)
commitee47b2dd6817e44a3cd388403a574a4b9bf61482 (patch)
tree16dfa355015fff13c9013c4c3230f5294a81af13 /src
parentcb30cbcce7709899829ec4a5b07e8ea9b7c8a30e (diff)
downloadpowder-ee47b2dd6817e44a3cd388403a574a4b9bf61482.zip
powder-ee47b2dd6817e44a3cd388403a574a4b9bf61482.tar.gz
Pretty effect when drawing powders, activate with 'n'
Diffstat (limited to 'src')
-rw-r--r--src/graphics.c5
-rw-r--r--src/main.c10
-rw-r--r--src/powder.c14
3 files changed, 29 insertions, 0 deletions
diff --git a/src/graphics.c b/src/graphics.c
index eec5946..c038f10 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -25,6 +25,11 @@ unsigned cmode = CM_FIRE;
SDL_Surface *sdl_scrn;
int sdl_scale = 1;
+int sandcolour_r = 0;
+int sandcolour_g = 0;
+int sandcolour_b = 0;
+int sandcolour_frame = 0;
+
unsigned char fire_r[YRES/CELL][XRES/CELL];
unsigned char fire_g[YRES/CELL][XRES/CELL];
unsigned char fire_b[YRES/CELL][XRES/CELL];
diff --git a/src/main.c b/src/main.c
index ac3512b..f3d655f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -179,6 +179,7 @@ int decorations_enable = 1;
int hud_enable = 1;
int active_menu = 0;
int framerender = 0;
+int pretty_powder = 0;
int amd = 1;
int FPSB = 0;
int MSIGN =-1;
@@ -1801,6 +1802,13 @@ int main(int argc, char *argv[])
bsy = 1180;
if (bsy<0)
bsy = 0;
+
+ //Pretty powders, colour cycle
+ //sandcolour_r = 0;
+ //sandcolour_g = 0;
+ sandcolour_b = sandcolour_r = sandcolour_g = (int)(20.0f*sin((float)sandcolour_frame*(M_PI/180.0f)));
+ sandcolour_frame++;
+ sandcolour_frame%=360;
if(ngrav_enable && drawgrav_enable)
draw_grav(vid_buf);
@@ -2362,6 +2370,8 @@ int main(int argc, char *argv[])
aheat_enable = !aheat_enable;
if (sdl_key=='h')
hud_enable = !hud_enable;
+ if (sdl_key=='n')
+ pretty_powder = !pretty_powder;
if (sdl_key=='p')
dump_frame(vid_buf, XRES, YRES, XRES+BARSIZE);
if (sdl_key=='v'&&(sdl_mod & (KMOD_LCTRL|KMOD_RCTRL)))
diff --git a/src/powder.c b/src/powder.c
index e8b875b..077a242 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -987,6 +987,20 @@ inline int create_part(int p, int x, int y, int tv)//the function for creating a
photons[y][x] = t|(i<<8);
if (t!=PT_STKM&&t!=PT_STKM2 && t!=PT_PHOT && t!=PT_NEUT)
pmap[y][x] = t|(i<<8);
+
+ //Fancy dust effects for powder types
+ if((ptypes[t].properties & TYPE_PART) && pretty_powder)
+ {
+ int colr, colg, colb, randa;
+ randa = (rand()%30)-15;
+ colr = (PIXR(ptypes[t].pcolors)+sandcolour_r+(rand()%20)-10+randa);
+ colg = (PIXG(ptypes[t].pcolors)+sandcolour_g+(rand()%20)-10+randa);
+ colb = (PIXB(ptypes[t].pcolors)+sandcolour_b+(rand()%20)-10+randa);
+ colr = colr>255 ? 255 : (colr<0 ? 0 : colr);
+ colg = colg>255 ? 255 : (colg<0 ? 0 : colg);
+ colb = colb>255 ? 255 : (colb<0 ? 0 : colb);
+ parts[i].dcolour = 0xFF000000 | (colr<<16) | (colg<<8) | colb;
+ }
return i;
}