X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_audio.h;h=298ce0f0dab5994bcdd6e0d1f62e70a996983b78;hb=47941822dae18a018c985847b052e70214a3ccc6;hp=757f495a1b761e3d94da2bafad365d5828cad33a;hpb=a98ce96041b248580c0447bf87d4c6106483cade;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_audio.h b/player_audio.h index 757f495..298ce0f 100644 --- a/player_audio.h +++ b/player_audio.h @@ -10,7 +10,7 @@ /* * Audio */ -static void player_audio(void) +VG_STATIC void player_audio(void) { struct player_phys *phys = &player.phys; @@ -25,27 +25,35 @@ static void player_audio(void) audio_lock(); - + double revert_delta = vg.time - last_revert; - if( phys->on_board && (!_air && l2) && (fabsf(phys->slip) > 0.5f) && - (revert_delta > 0.7) ) + if( phys->on_board && (!_air && l2) && (revert_delta > 0.7) && + (player.air_time > 0.5f) ) { audio_player_set_position( &audio_player_extra, phys->rb.co ); audio_player_set_flags( &audio_player_extra, AUDIO_FLAG_SPACIAL_3D ); audio_player_set_vol( &audio_player_extra, 2.0f ); - audio_player_playclip( &audio_player_extra, &audio_lands[rand()%5] ); + + if( (fabsf(phys->slip) > 0.75f) ) + { + audio_player_playclip( &audio_player_extra, &audio_lands[rand()%2+3] ); + } + else + { + audio_player_playclip( &audio_player_extra, &audio_lands[rand()%3] ); + } last_revert = vg.time; } static float air = 0.0f; - air = vg_lerpf(air, phys->in_air? 1.0f: 0.0f, 5.0f*VG_TIMESTEP_FIXED ); + air = vg_lerpf( air, phys->in_air? 1.0f: 0.0f, 5.0f*vg.time_delta ); /* Spacial info */ v3f ears = { 1.0f,0.0f,0.0f }; v3f delta; - float *cam = player.camera[3], + float *cam = camera_pos, *pos = phys->rb.co; audio_player_set_position( &audio_player0, phys->rb.co ); @@ -54,16 +62,16 @@ static void player_audio(void) audio_player_set_position( &audio_player_gate, world.render_gate_pos ); audio_player_set_vol( &audio_player_gate, 5.0f ); - v3_sub( phys->rb.co, player.camera[3], delta ); + v3_sub( phys->rb.co, camera_pos, delta ); v3_normalize( delta ); - m3x3_mulv( player.camera, ears, ears ); + m3x3_mulv( camera_mtx, ears, ears ); /* TODO, Make function */ v3_copy( ears, vg_audio.listener_ears ); - v3_copy( player.camera[3], vg_audio.listener_pos ); + v3_copy( camera_pos, vg_audio.listener_pos ); /* Tunnel / occlusion */ - audio_sample_occlusion( player.camera[3] ); + audio_sample_occlusion( camera_pos ); int sprite_avail = -1; for( int i=0; i