diff options
Diffstat (limited to 'src/modules/sparkler/xplode.c')
| -rw-r--r-- | src/modules/sparkler/xplode.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/src/modules/sparkler/xplode.c b/src/modules/sparkler/xplode.c index 24a436e..5f99f7b 100644 --- a/src/modules/sparkler/xplode.c +++ b/src/modules/sparkler/xplode.c @@ -1,6 +1,7 @@  #include <stdlib.h>  #include "draw.h" +#include "fb.h"  #include "particle.h"  #include "particles.h" @@ -60,16 +61,19 @@ static void xplode_draw(particles_t *particles, particle_t *p, int x, int y, fb_  	xplode_ctxt_t	*ctxt = p->ctxt;  	uint32_t	color; +	if (!fb_fragment_contains(f, x, y)) { +		/* offscreen */ +		ctxt->longevity = 0; +		return; +	} +  	if (ctxt->longevity == ctxt->lifetime) {  		color = makergb(0xff, 0xff, 0xa0, 1.0);  	} else {  		color = makergb(0xff, 0xff, 0x00, ((float)ctxt->longevity / ctxt->lifetime));  	} -	if (!draw_pixel(f, x, y, color)) { -		/* offscreen */ -		ctxt->longevity = 0; -	} +	draw_pixel(f, x, y, color);  } | 
