seperate rand instances for each thread
[carveJwlIkooP6JGAAIwe30JlM.git] / world_entity.c
index 9095e1b4310a63f7ebbc5a97ccc0de4a0610e5dd..ec7c2fe13426a5cbc0d773ef7711080bee0b0e80 100644 (file)
@@ -277,8 +277,7 @@ ent_spawn *world_find_spawn_by_name( world_instance *world, const char *name )
    return rp;
 }
 
-static void ent_volume_call( world_instance *world, ent_call *call )
-{
+static void ent_volume_call( world_instance *world, ent_call *call ){
    u32 index = mdl_entity_id_id( call->id );
    ent_volume *volume = mdl_arritm( &world->ent_volume, index );
    if( !volume->target ) return;
@@ -288,9 +287,9 @@ static void ent_volume_call( world_instance *world, ent_call *call )
 
       if( volume->flags & k_ent_volume_flag_particles ){
          float *co = alloca( sizeof(float)*3 );
-         co[0] = vg_randf64()*2.0f-1.0f;
-         co[1] = vg_randf64()*2.0f-1.0f;
-         co[2] = vg_randf64()*2.0f-1.0f;
+         co[0] = vg_randf64(&vg.rand)*2.0f-1.0f;
+         co[1] = vg_randf64(&vg.rand)*2.0f-1.0f;
+         co[2] = vg_randf64(&vg.rand)*2.0f-1.0f;
          m4x3_mulv( volume->to_world, co, co );
 
          call->function = k_ent_function_particle_spawn;
@@ -336,7 +335,7 @@ static void ent_audio_call( world_instance *world, ent_call *call ){
    else
       return;
 
-   float chance = vg_randf64()*100.0f,
+   float chance = vg_randf64(&vg.rand)*100.0f,
          bar = 0.0f;
 
    for( u32 i=0; i<audio->clip_count; i++ ){