summaryrefslogtreecommitdiff
path: root/modules/sparkler/spark.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/sparkler/spark.c')
-rw-r--r--modules/sparkler/spark.c63
1 files changed, 0 insertions, 63 deletions
diff --git a/modules/sparkler/spark.c b/modules/sparkler/spark.c
deleted file mode 100644
index ea68ac2..0000000
--- a/modules/sparkler/spark.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <stdlib.h>
-
-#include "draw.h"
-#include "particle.h"
-#include "particles.h"
-
-/* a "spark" particle type, emitted from behind rockets */
-#define SPARK_MAX_DECAY_RATE 20
-#define SPARK_MIN_DECAY_RATE 2
-#define SPARK_MAX_LIFETIME 150
-#define SPARK_MIN_LIFETIME 1
-
-typedef struct _spark_ctxt_t {
- int decay_rate;
- int longevity;
- int lifetime;
-} spark_ctxt_t;
-
-
-static int spark_init(particles_t *particles, particle_t *p)
-{
- spark_ctxt_t *ctxt = p->ctxt;
-
- p->props->drag = 20.0;
- p->props->mass = 0.1;
- ctxt->decay_rate = rand_within_range(SPARK_MIN_DECAY_RATE, SPARK_MAX_DECAY_RATE);
- ctxt->lifetime = ctxt->longevity = rand_within_range(SPARK_MIN_LIFETIME, SPARK_MAX_LIFETIME);
-
- return 1;
-}
-
-
-static particle_status_t spark_sim(particles_t *particles, particle_t *p)
-{
- spark_ctxt_t *ctxt = p->ctxt;
-
- if (!ctxt->longevity || (ctxt->longevity -= ctxt->decay_rate) <= 0) {
- ctxt->longevity = 0;
- return PARTICLE_DEAD;
- }
-
- return PARTICLE_ALIVE;
-}
-
-
-static void spark_draw(particles_t *particles, particle_t *p, int x, int y, fb_fragment_t *f)
-{
- spark_ctxt_t *ctxt = p->ctxt;
-
- if (!draw_pixel(f, x, y, makergb(0xff, 0xa0, 0x20, ((float)ctxt->longevity / ctxt->lifetime)))) {
- /* offscreen */
- ctxt->longevity = 0;
- }
-}
-
-
-particle_ops_t spark_ops = {
- .context_size = sizeof(spark_ctxt_t),
- .sim = spark_sim,
- .init = spark_init,
- .draw = spark_draw,
- .cleanup = NULL,
- };
© All Rights Reserved