X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.c;h=7da514f7609f0639448d54ee899051c2f90ca345;hb=1b522daa02f28128498b04def4d60b63e590d1f3;hp=fc10b7341fc0487cff6ba9b68ddde5f87efff120;hpb=469722649507c5df7547afa6feccce04ed5c716f;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.c b/player_skate.c index fc10b73..7da514f 100644 --- a/player_skate.c +++ b/player_skate.c @@ -128,7 +128,7 @@ VG_STATIC int skate_grind_scansq( player_instance *player, v3f tri[3]; struct world_surface *surf = world_tri_index_surface(world,ptri[0]); - if( !(surf->info.flags & k_material_flag_skate_surface) ) + if( !(surf->info.flags & k_material_flag_grindable) ) continue; for( int j=0; j<3; j++ ) @@ -532,11 +532,13 @@ void player__approximate_best_trajectory( player_instance *player ) inf->score = -v3_dot( ve, inf->n ); inf->land_dist = t + k_trace_delta * t1; - /* Bias prediction towords ramps */ - if( !(surf->info.flags & k_material_flag_skate_surface) ) + if( !(surf->info.flags & k_material_flag_skate_target) ) inf->score *= 10.0f; + if( surf->info.flags & k_material_flag_boundary ) + s->possible_jump_count --; + break; } @@ -2955,15 +2957,20 @@ VG_STATIC void player__skate_animate( player_instance *player, q_mul( kf_board->q, qtrick, kf_board->q ); q_normalize( kf_board->q ); + struct player_board *board = player->playerboard; /* foot weight distribution */ if( s->blend_weight > 0.0f ){ - kf_foot_l->co[2] += s->blend_weight * 0.2f; - kf_foot_r->co[2] += s->blend_weight * 0.1f; + kf_foot_l->co[2] = + vg_lerpf( kf_foot_l->co[2], + board->truck_positions[k_board_truck_back][2]+0.3f, + 0.5f*s->blend_weight ); } else{ - kf_foot_r->co[2] += s->blend_weight * 0.3f; - kf_foot_l->co[2] += s->blend_weight * 0.1f; + kf_foot_r->co[2] = + vg_lerpf( kf_foot_r->co[2], + board->truck_positions[k_board_truck_front][2]-0.3f, + -0.5f*s->blend_weight ); } float slapm = vg_maxf( 1.0f-v3_length2( s->state.trick_vel ), 0.0f );