lerp root_q in holdout
authorhgn <hgodden00@gmail.com>
Tue, 25 Jul 2023 00:47:22 +0000 (01:47 +0100)
committerhgn <hgodden00@gmail.com>
Tue, 25 Jul 2023 00:47:22 +0000 (01:47 +0100)
player_render.c
player_walk.c

index 38e65867faa16bb6a4c7ee6bdfa749389ae316a6..0d7e9221f547e2b7042e1d3ee22e0cacc47cb139 100644 (file)
@@ -174,6 +174,8 @@ VG_STATIC void player__animate( player_instance *player ){
          skeleton_lerp_pose( sk, 
                              pose->keyframes, player->holdout_pose.keyframes, 
                              player->holdout_time, pose->keyframes );
+         q_nlerp( pose->root_q, player->holdout_pose.root_q, 
+                  player->holdout_time, pose->root_q );
          player->holdout_time -= vg.time_frame_delta * 2.0f;
       }
 
index 815e4b4a70f81ade5c718023fa6ec1cd82b719a5..87c2246fe6960a662852f3210d95abfc8e1c062d 100644 (file)
@@ -918,6 +918,12 @@ VG_STATIC void player__walk_bind( player_instance *player ){
 VG_STATIC void player__walk_transition( player_instance *player ){
    struct player_walk *w = &player->_walk;
    w->state.activity = k_walk_activity_air;
+   w->state.outro_type = k_walk_outro_none;
+   w->state.outro_start_time = 0.0;
+   w->state.jump_queued = 0;
+   w->state.jump_input_time = 0.0;
+   w->state.walk_timer = 0.0f;
+   w->state.step_phase = 0;
 
    v3f fwd = { 0.0f, 0.0f, 1.0f };
    q_mulv( player->rb.q, fwd, fwd );