X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_glide.c;fp=player_glide.c;h=95337b240bc1b84fe86a8aeb9ebd047c2ee68f63;hb=859178c6d4b2a9b9a95f8b01b113f589ce0f197f;hp=5cf1dd11a6ce15fd040f743063198e1644fa4a78;hpb=ad4482080bf2dc650945f7bb0765ca8dba76155f;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_glide.c b/player_glide.c index 5cf1dd1..95337b2 100644 --- a/player_glide.c +++ b/player_glide.c @@ -230,14 +230,15 @@ static void player_glide_animate(void){ static void player_glide_pose( void *_animator, player_pose *pose ){ struct skeleton *sk = &localplayer.skeleton; struct player_glide_animator *animator = _animator; + pose->type = k_player_pose_type_ik; + pose->board.lean = 0.0f; skeleton_sample_anim( sk, player_glide.anim_glide, 0.0f, pose->keyframes ); - /* TODO: again the offset is wrong */ v3f temp; - q_mulv( pose->root_q, (v3f){0,-0.5f,0}, temp ); - + q_mulv( animator->root_q, (v3f){0,-0.5f,0}, temp ); v3_add( animator->root_co, temp, pose->root_co ); + v4_copy( animator->root_q, pose->root_q ); } @@ -339,7 +340,6 @@ static void player_glide_bind(void){ struct skeleton *sk = &localplayer.skeleton; player_glide.anim_glide = skeleton_get_anim( sk, "glide_pose" ); - void *alloc = vg_mem.rtmemory; mdl_context *mdl = &player_glide.glider; @@ -394,9 +394,16 @@ static void player_glide_transition(void){ player__begin_holdout( (v3f){0,0,0} ); } +/* + * TODO: more flexible way to call + * - this depends on the current state, but we need to pass a struct in + * that can hold that information instead so we can save it into + * the replay + */ static void player_glide_render( camera *cam, world_instance *world, player_pose *pose ){ if( !((localplayer.subsystem == k_player_subsystem_glide) || + (localplayer.observing_system == k_player_subsystem_glide) || localplayer.have_glider || localplayer.glider_orphan) ) return; @@ -428,7 +435,10 @@ static void player_glide_render( camera *cam, world_instance *world, f32 target; if( localplayer.subsystem == k_player_subsystem_glide ) target = 1.0f; else target = 0.0f; - vg_slewf( &player_glide.t, target, vg.time_frame_delta * 4.0f ); + + /* TODO: TEMP */ + if( skaterift.activity != k_skaterift_replay ) + vg_slewf( &player_glide.t, target, vg.time_frame_delta * 4.0f ); mdl_keyframe kf_backpack;