X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_render.c;h=13aa5516ddc883d2d3df44fa4a51fbb794f6c02b;hb=6ba5c35d106d749a1ebafbd3cbe18c3a02f781d3;hp=2cf0e283e5736109f61f914a0bd5f4a8e6e1c7b4;hpb=1d8d9366022c064ef56d80d463c90a79721c6243;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_render.c b/player_render.c index 2cf0e28..13aa551 100644 --- a/player_render.c +++ b/player_render.c @@ -170,17 +170,22 @@ static void player__animate(void){ assert( sys->animator_data ); sys->animate(); - sys->pose( sys->animator_data, &localplayer.pose ); + + player_pose *pose = &localplayer.pose; + sys->pose( sys->animator_data, pose ); struct skeleton *sk = &localplayer.playeravatar->sk; if( localplayer.holdout_time > 0.0f ){ - player_pose *pose = &localplayer.pose; skeleton_lerp_pose( sk, pose->keyframes,localplayer.holdout_pose.keyframes, localplayer.holdout_time, pose->keyframes ); + + v3_muladds( pose->root_co, localplayer.holdout_pose.root_co, + localplayer.holdout_time, pose->root_co ); q_nlerp( pose->root_q, localplayer.holdout_pose.root_q, localplayer.holdout_time, pose->root_q ); + localplayer.holdout_time -= vg.time_frame_delta * 2.0f; } @@ -428,7 +433,7 @@ static void render_playermodel( camera *cam, world_instance *world, glUniformMatrix4x3fv( _uniform_model_character_view_uTransforms, skeleton->bone_count, 0, - (f32 *)final_mtx ); + (const GLfloat *)final_mtx ); mesh_bind( &model->mdl.mesh ); mesh_draw( &model->mdl.mesh );