X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_audio.c;h=b33d62fd30ee80d678e214583424037d3e6bb57c;hb=HEAD;hp=a8e88d6631fdbf00e14ad98774a32bdbb56a5b64;hpb=844527ec68c063d78d4993bd8e4053f9ddc47b78;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_audio.c b/world_audio.c index a8e88d6..b33d62f 100644 --- a/world_audio.c +++ b/world_audio.c @@ -1,12 +1,9 @@ -#ifndef WORLD_AUDIO_C -#define WORLD_AUDIO_C - #include "audio.h" #include "world_audio.h" /* finds any active playing in world and fades them out, we can only do this * while unloading */ -VG_STATIC void world_fadeout_audio( world_instance *world ) +void world_fadeout_audio( world_instance *world ) { if( world->status != k_world_status_unloading ){ vg_fatal_error( "World status must be set to 'unloading', to fadeout" @@ -29,12 +26,11 @@ VG_STATIC void world_fadeout_audio( world_instance *world ) /* * Trace out a random point, near the player to try and determine water areas */ -VG_STATIC enum audio_sprite_type world_audio_sample_sprite_random(v3f origin, v3f output) { - v3f chance = { (vg_randf64()-0.5f) * 30.0f, - 8.0f, - (vg_randf64()-0.5f) * 30.0f }; + v3f chance = { (vg_randf64(&vg.rand)-0.5f) * 30.0f, + 8, + (vg_randf64(&vg.rand)-0.5f) * 30.0f }; v3f pos; v3_add( chance, origin, pos ); @@ -44,7 +40,8 @@ enum audio_sprite_type world_audio_sample_sprite_random(v3f origin, v3f output) world_instance *world = world_current_instance(); - if( ray_world( world, pos, (v3f){0.0f,-1.0f,0.0f}, &contact ) ){ + if( ray_world( world, pos, (v3f){0.0f,-1.0f,0.0f}, &contact, + k_material_flag_ghosts ) ){ struct world_surface *mat = ray_hit_surface( world, &contact ); if( mat->info.surface_prop == k_surface_prop_grass){ @@ -62,13 +59,13 @@ enum audio_sprite_type world_audio_sample_sprite_random(v3f origin, v3f output) float dist = fabsf(output[1] - origin[1]); - if( world->water.enabled && dist<=40.0f ) + if( world->water.enabled && dist<=40.0f && !(world->info.flags&0x2) ) return k_audio_sprite_type_water; else return k_audio_sprite_type_none; } -VG_STATIC void world_audio_sample_distances( v3f co, int *index, float *value ) +void world_audio_sample_distances( v3f co, int *index, float *value ) { float inr3 = 0.57735027, inr2 = 0.70710678118; @@ -104,7 +101,8 @@ VG_STATIC void world_audio_sample_distances( v3f co, int *index, float *value ) float dist = 200.0f; for( int i=0; i<10; i++ ){ - if( ray_world( world_current_instance(), rc, rd, &ray ) ){ + if( ray_world( world_current_instance(), rc, rd, &ray, + k_material_flag_ghosts ) ){ dist = (float)i*5.0f + ray.dist; break; } @@ -115,7 +113,7 @@ VG_STATIC void world_audio_sample_distances( v3f co, int *index, float *value ) distances[si] = dist; - if( vg_audio.debug_ui && vg_lines.draw ){ + if( vg_audio.debug_ui && vg_lines.enabled ){ for( int i=0; i<14; i++ ){ if( distances[i] != 200.0f ){ u32 colours[] = { VG__RED, VG__BLUE, VG__GREEN, @@ -139,5 +137,3 @@ VG_STATIC void world_audio_sample_distances( v3f co, int *index, float *value ) if( si >= 14 ) si = 0; } - -#endif /* WORLD_AUDIO_C */