X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.c;h=72055cf7ffb6a54dd9eb435ca0c581cd2c2236c3;hb=981f43376c7929866e9294fc35b8bc4cf806eb38;hp=c70d1f39b9ea4f4b0fbe91322ff7ea731670a4fd;hpb=4fe3835ea66a7c1f775ba1fb36a33c0c5496d2f5;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.c b/player_skate.c index c70d1f3..72055cf 100644 --- a/player_skate.c +++ b/player_skate.c @@ -746,7 +746,7 @@ static void skate_apply_trick_model(void){ v3_zero( state->trick_vel ); audio_lock(); - audio_oneshot_3d( &audio_flips[vg_randu32()%4], + audio_oneshot_3d( &audio_flips[vg_randu32(&vg.rand)%4], localplayer.rb.co, 40.0f, 1.0f ); audio_unlock(); } @@ -957,6 +957,7 @@ static void skate_apply_jump_model(void){ q_mulv( qtilt, jumpdir, jumpdir ); } state->surface_cooldown = 10; + state->trick_input_collect = 0.0f; float force = k_jump_force*state->jump_charge; v3_muladds( localplayer.rb.v, jumpdir, force, localplayer.rb.v ); @@ -1100,12 +1101,17 @@ static void player__skate_pre_update(void){ return; } + enum trick_type trick = player_skate_trick_input(); + if( trick ) + state->trick_input_collect += vg.time_frame_delta; + else + state->trick_input_collect = 0.0f; + if( state->activity <= k_skate_activity_air_to_grind ){ - enum trick_type trick = k_trick_type_none; - if( (trick = player_skate_trick_input()) ){ + if( trick && (state->trick_input_collect < 0.1f) ){ if( state->trick_time == 0.0f ){ audio_lock(); - audio_oneshot_3d( &audio_flips[vg_randu32()%4], + audio_oneshot_3d( &audio_flips[vg_randu32(&vg.rand)%4], localplayer.rb.co, 40.0f, 1.0f ); audio_unlock(); } @@ -2671,7 +2677,7 @@ static void player__skate_animate(void){ float curspeed = v3_length( localplayer.rb.v ), kickspeed = vg_clampf( curspeed*(1.0f/40.0f), 0.0f, 1.0f ), - kicks = (vg_randf64()-0.5f)*2.0f*kickspeed, + kicks = (vg_randf64(&vg.rand)-0.5f)*2.0f*kickspeed, sign = vg_signf( kicks ); animator->wobble[0] = vg_lerpf( animator->wobble[0], kicks*kicks*sign, @@ -3311,16 +3317,20 @@ static void player__skate_sfx_oneshot( u8 id, v3f pos, f32 volume ){ audio_lock(); if( id == k_player_skate_soundeffect_jump ){ - audio_oneshot_3d( &audio_jumps[vg_randu32()%2], pos, 40.0f, volume ); + audio_oneshot_3d( &audio_jumps[vg_randu32(&vg.rand)%2], + pos, 40.0f, volume ); } else if( id == k_player_skate_soundeffect_tap ){ - audio_oneshot_3d( &audio_taps[vg_randu32()%4], pos, 40.0f, volume ); + audio_oneshot_3d( &audio_taps[vg_randu32(&vg.rand)%4], + pos, 40.0f, volume ); } else if( id == k_player_skate_soundeffect_land_good ){ - audio_oneshot_3d( &audio_lands[vg_randu32()%3], pos, 40.0f, volume ); + audio_oneshot_3d( &audio_lands[vg_randu32(&vg.rand)%3], + pos, 40.0f, volume ); } else if( id == k_player_skate_soundeffect_land_bad ){ - audio_oneshot_3d( &audio_lands[vg_randu32()%2+3], pos, 40.0f, volume ); + audio_oneshot_3d( &audio_lands[vg_randu32(&vg.rand)%2+3], + pos, 40.0f, volume ); } else if( id == k_player_skate_soundeffect_grind_metal ){ audio_oneshot_3d( &audio_board[3], pos, 40.0f, volume );