summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/meta2d/meta2d.c7
-rw-r--r--src/modules/meta2d/v2f.h10
-rw-r--r--src/modules/meta2d/v3f.h12
3 files changed, 14 insertions, 15 deletions
diff --git a/src/modules/meta2d/meta2d.c b/src/modules/meta2d/meta2d.c
index 1bb8827..b7b6708 100644
--- a/src/modules/meta2d/meta2d.c
+++ b/src/modules/meta2d/meta2d.c
@@ -82,10 +82,9 @@ static til_module_context_t * meta2d_create_context(unsigned seed, unsigned tick
for (int i = 0; i < META2D_NUM_BALLS; i++) {
meta2d_ball_t *ball = &ctxt->balls[i];
- /* TODO: add _r() variants of v[23]f_rand()? */
- v2f_rand(&ball->position, &(v2f_t){-.7f, -.7f}, &(v2f_t){.7f, .7f});
- ball->radius = rand_r(&seed) / (float)RAND_MAX * .2f + .05f;
- v3f_rand(&ball->color, &(v3f_t){0.f, 0.f, 0.f}, &(v3f_t){1.f, 1.f, 1.f});
+ v2f_rand(&ball->position, &ctxt->til_module_context.seed, &(v2f_t){-.7f, -.7f}, &(v2f_t){.7f, .7f});
+ ball->radius = rand_r(&ctxt->til_module_context.seed) / (float)RAND_MAX * .2f + .05f;
+ v3f_rand(&ball->color, &ctxt->til_module_context.seed, &(v3f_t){0.f, 0.f, 0.f}, &(v3f_t){1.f, 1.f, 1.f});
}
return &ctxt->til_module_context;
diff --git a/src/modules/meta2d/v2f.h b/src/modules/meta2d/v2f.h
index 8f51ee0..088772d 100644
--- a/src/modules/meta2d/v2f.h
+++ b/src/modules/meta2d/v2f.h
@@ -278,19 +278,19 @@ static inline v2f_t * v2f_trilerp(v2f_t *res, const v2f_t *aaa, const v2f_t *aba
}
-static inline v2f_t _v2f_rand(const v2f_t *min, const v2f_t *max)
+static inline v2f_t _v2f_rand(unsigned *seedp, const v2f_t *min, const v2f_t *max)
{
return (v2f_t){
- .x = min->x + (float)rand() * (1.f/RAND_MAX) * (max->x - min->x),
- .y = min->y + (float)rand() * (1.f/RAND_MAX) * (max->y - min->y),
+ .x = min->x + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->x - min->x),
+ .y = min->y + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->y - min->y),
};
}
-static inline v2f_t * v2f_rand(v2f_t *res, const v2f_t *min, const v2f_t *max)
+static inline v2f_t * v2f_rand(v2f_t *res, unsigned *seedp, const v2f_t *min, const v2f_t *max)
{
if (_v2f_allocated(&res))
- *res = _v2f_rand(min, max);
+ *res = _v2f_rand(seedp, min, max);
return res;
}
diff --git a/src/modules/meta2d/v3f.h b/src/modules/meta2d/v3f.h
index 79aea72..d923ecc 100644
--- a/src/modules/meta2d/v3f.h
+++ b/src/modules/meta2d/v3f.h
@@ -297,20 +297,20 @@ static inline v3f_t * v3f_cross(v3f_t *res, const v3f_t *a, const v3f_t *b)
}
-static inline v3f_t _v3f_rand(const v3f_t *min, const v3f_t *max)
+static inline v3f_t _v3f_rand(unsigned *seedp, const v3f_t *min, const v3f_t *max)
{
return (v3f_t){
- .x = min->x + (float)rand() * (1.f/RAND_MAX) * (max->x - min->x),
- .y = min->y + (float)rand() * (1.f/RAND_MAX) * (max->y - min->y),
- .z = min->z + (float)rand() * (1.f/RAND_MAX) * (max->z - min->z),
+ .x = min->x + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->x - min->x),
+ .y = min->y + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->y - min->y),
+ .z = min->z + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->z - min->z),
};
}
-static inline v3f_t * v3f_rand(v3f_t *res, const v3f_t *min, const v3f_t *max)
+static inline v3f_t * v3f_rand(v3f_t *res, unsigned *seedp, const v3f_t *min, const v3f_t *max)
{
if (_v3f_allocated(&res))
- *res = _v3f_rand(min, max);
+ *res = _v3f_rand(seedp, min, max);
return res;
}
© All Rights Reserved