X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_common.c;h=84ce9e3606e1deb7c937dde3af1022152fad0c41;hb=8090b8da9ce1397ba47d7e2d91b4f1716f708f25;hp=7daa3993d511df73c847e6cb81b9734965fe280f;hpb=22f62f001f21d1b91fefd9fc495c122d9ddf205a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_common.c b/player_common.c index 7daa399..84ce9e3 100644 --- a/player_common.c +++ b/player_common.c @@ -52,14 +52,13 @@ static void player_camera_portal_correction(void){ m4x3_invert_affine( localplayer.gate_waiting->transport, inverse ); m4x3_mulv( inverse, localplayer.cam.pos, localplayer.cam.pos ); - struct skeleton *sk = &localplayer.playeravatar->sk; - skeleton_apply_transform( sk, inverse ); + skeleton_apply_transform( &localplayer.skeleton, inverse, + localplayer.final_mtx ); } } } static void player__cam_iterate(void){ - struct player_avatar *av = localplayer.playeravatar; struct player_cam_controller *cc = &localplayer.cam_control; if( localplayer.subsystem == k_player_subsystem_walk ){ @@ -127,7 +126,7 @@ static void player__cam_iterate(void){ /* position */ v3f fpv_pos, fpv_offset; - m4x3_mulv( av->sk.final_mtx[ av->id_head-1 ], + m4x3_mulv( localplayer.final_mtx[ localplayer.id_head-1 ], cc->fpv_viewpoint_smooth, fpv_pos ); m3x3_mulv( localplayer.rb.to_world, cc->fpv_offset_smooth, fpv_offset ); v3_add( fpv_offset, fpv_pos, fpv_pos ); @@ -188,6 +187,8 @@ static void player__cam_iterate(void){ v3f pco; v4f pq; rb_extrapolate( &localplayer.rb, pco, pq ); + v3_muladds( pco, localplayer.holdout_pose.root_co, + localplayer.holdout_time, pco ); v3_lerp( cc->tpv_lpf, pco, 20.0f*vg.time_frame_delta, cc->tpv_lpf ); /* now move into world */ @@ -203,13 +204,6 @@ static void player__cam_iterate(void){ v3_muladds( tpv_offset, cc->cam_velocity_smooth, -0.025f, tpv_offset ); v3_add( tpv_origin, tpv_offset, tpv_pos ); -#if 0 - f32 t; v3f n; - if( spherecast_world( world_current_instance(), tpv_origin, tpv_pos, - 0.2f, &t, n ) != -1 ){ - v3_lerp( tpv_origin, tpv_pos, t, tpv_pos ); - } -#endif /* * Blend cameras