add freecam
[carveJwlIkooP6JGAAIwe30JlM.git] / player_walk.c
index dea80e567e671cfaf4bb8b921aced0d055f6074d..e0cdbecbb33d18e8f307c48af0fc9cd400a74f44 100644 (file)
@@ -88,7 +88,7 @@ VG_STATIC void player_walk_drop_in_to_skate( player_instance *player )
    v3_muladds( player->rb.co, player->rb.to_world[1], 1.0f, s->state.cog );
    v3_copy( init_velocity, s->state.cog_v );
    v3_copy( init_velocity, player->rb.v );
-   v3_copy( init_velocity, player->cam_velocity_smooth );
+   v3_copy( init_velocity, player->cam_control.cam_velocity_smooth );
    v3_copy( (v3f){1.0f,0.0f,0.0f}, s->state.trick_euler );
 }
 
@@ -256,7 +256,7 @@ VG_STATIC void player__walk_pre_update( player_instance *player )
    struct player_walk *w = &player->_walk;
 
    if( !player->immobile )
-      player_look( player, player->angles );
+      player_look( player->angles, skaterift.time_rate );
 
    if( w->state.outro_anim ){
       float outro_length = (float)w->state.outro_anim->length /
@@ -751,7 +751,12 @@ VG_STATIC void player__walk_animate( player_instance *player,
    skeleton_lerp_pose( sk, apose, bpose, w->blend_fly, apose );
 
    /* Create transform */
-   rb_extrapolate( &player->rb, dest->root_co, dest->root_q );
+   if( !player->immobile )
+      rb_extrapolate( &player->rb, dest->root_co, dest->root_q );
+   else{
+      v3_copy( player->rb.co, dest->root_co );
+      v4_copy( player->rb.q,  dest->root_q );
+   }
 
    float walk_yaw = player_get_heading_yaw( player );