summaryrefslogtreecommitdiff
path: root/src/modules/sparkler/xplode.c
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2022-07-20 21:06:31 -0700
committerVito Caputo <vcaputo@pengaru.com>2022-07-20 21:06:31 -0700
commitb38db01c835fa222aa11ace3a2d84095fe2c3f83 (patch)
tree18464eac0c46a1e8a82f96faadc370066d8bf61c /src/modules/sparkler/xplode.c
parentb68ec04f86f83ba3d7926ffafc1d8a6456e72c05 (diff)
modules/sparkler: s/rand/rand_r/ and wire up seed
This is a little contorted but not too bad. The input to particles_new() is just a const conf struct, so instead of passing in the seed value for particles_t to contain, a pointer to where the seed lives is passed in via the conf. This requires the caller to persist a seed somewhere outside the particles instance, but at least in rototiller we already have that conveniently in til_module_context_t.
Diffstat (limited to 'src/modules/sparkler/xplode.c')
-rw-r--r--src/modules/sparkler/xplode.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/modules/sparkler/xplode.c b/src/modules/sparkler/xplode.c
index 31f56fd..1534369 100644
--- a/src/modules/sparkler/xplode.c
+++ b/src/modules/sparkler/xplode.c
@@ -26,8 +26,8 @@ static int xplode_init(particles_t *particles, const particles_conf_t *conf, par
{
xplode_ctxt_t *ctxt = p->ctxt;
- ctxt->decay_rate = rand_within_range(XPLODE_MIN_DECAY_RATE, XPLODE_MAX_DECAY_RATE);
- ctxt->lifetime = ctxt->longevity = rand_within_range(XPLODE_MIN_LIFETIME, XPLODE_MAX_LIFETIME);
+ ctxt->decay_rate = rand_within_range(conf->seedp, XPLODE_MIN_DECAY_RATE, XPLODE_MAX_DECAY_RATE);
+ ctxt->lifetime = ctxt->longevity = rand_within_range(conf->seedp, XPLODE_MIN_LIFETIME, XPLODE_MAX_LIFETIME);
p->props->drag = 10.9;
p->props->mass = 0.3;
@@ -50,7 +50,7 @@ static particle_status_t xplode_sim(particles_t *particles, const particles_conf
if (!(ctxt->lifetime % 30)) {
particle_props_t props = *p->props;
- props.velocity = (float)rand_within_range(10, 50) / 10000.0;
+ props.velocity = (float)rand_within_range(conf->seedp, 10, 50) / 10000.0;
particles_spawn_particle(particles, p, &props, &xplode_ops);
}
© All Rights Reserved