X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.c;h=745a6ff85b07cf437ce4280fca186c93158d42db;hb=b35ac7383d4aba1d0b8a74be7bf1695996ff57f4;hp=a89783c7e15ef669355b154114b2ea6aa7a0ebcd;hpb=2179a91415c4d0726fd134ad942acfc0515844eb;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.c b/player_skate.c index a89783c..745a6ff 100644 --- a/player_skate.c +++ b/player_skate.c @@ -9,9 +9,7 @@ #include "addon.h" static void player__skate_bind(void){ - struct player_avatar *av = localplayer.playeravatar; - struct skeleton *sk = &av->sk; - + struct skeleton *sk = &localplayer.skeleton; rb_update_transform( &localplayer.rb ); struct { struct skeleton_anim **anim; const char *name; } @@ -2903,8 +2901,7 @@ static void player__skate_animate(void){ } static void player__skate_pose( void *_animator, player_pose *pose ){ - struct player_avatar *av = localplayer.playeravatar; - struct skeleton *sk = &av->sk; + struct skeleton *sk = &localplayer.skeleton; struct player_skate_animator *animator = _animator; pose->type = k_player_pose_type_ik; @@ -2986,14 +2983,14 @@ static void player__skate_pose( void *_animator, player_pose *pose ){ skeleton_lerp_pose( sk, ground_pose, air_pose, animator->fly, pose->keyframes ); - mdl_keyframe *kf_board = &pose->keyframes[av->id_board-1], - *kf_foot_l = &pose->keyframes[av->id_ik_foot_l-1], - *kf_foot_r = &pose->keyframes[av->id_ik_foot_r-1], - *kf_knee_l = &pose->keyframes[av->id_ik_knee_l-1], - *kf_knee_r = &pose->keyframes[av->id_ik_knee_r-1], - *kf_hip = &pose->keyframes[av->id_hip-1], - *kf_wheels[] = { &pose->keyframes[av->id_wheel_r-1], - &pose->keyframes[av->id_wheel_l-1] }; + mdl_keyframe *kf_board = &pose->keyframes[localplayer.id_board-1], + *kf_foot_l = &pose->keyframes[localplayer.id_ik_foot_l-1], + *kf_foot_r = &pose->keyframes[localplayer.id_ik_foot_r-1], + *kf_knee_l = &pose->keyframes[localplayer.id_ik_knee_l-1], + *kf_knee_r = &pose->keyframes[localplayer.id_ik_knee_r-1], + *kf_hip = &pose->keyframes[localplayer.id_hip-1], + *kf_wheels[] = { &pose->keyframes[localplayer.id_wheel_r-1], + &pose->keyframes[localplayer.id_wheel_l-1] }; mdl_keyframe grind_pose[32]; @@ -3009,11 +3006,11 @@ static void player__skate_pose( void *_animator, player_pose *pose ){ float add_grab_mod = 1.0f - animator->fly; /* additive effects */ - u32 apply_to[] = { av->id_hip, - av->id_ik_hand_l, - av->id_ik_hand_r, - av->id_ik_elbow_l, - av->id_ik_elbow_r }; + u32 apply_to[] = { localplayer.id_hip, + localplayer.id_ik_hand_l, + localplayer.id_ik_hand_r, + localplayer.id_ik_elbow_l, + localplayer.id_ik_elbow_r }; float apply_rates[] = { 1.0f, 0.75f, @@ -3028,11 +3025,11 @@ static void player__skate_pose( void *_animator, player_pose *pose ){ /* angle 'correction' */ v3f origin; - v3_add( av->sk.bones[av->id_hip].co, kf_hip->co, origin ); + v3_add( sk->bones[localplayer.id_hip].co, kf_hip->co, origin ); for( int i=0; ikeyframes[apply_to[i]-1]; - keyframe_rotate_around( kf, origin, av->sk.bones[apply_to[i]].co, + keyframe_rotate_around( kf, origin, sk->bones[apply_to[i]].co, animator->qfixuptotal ); } @@ -3094,14 +3091,13 @@ static void player__skate_pose( void *_animator, player_pose *pose ){ q_normalize( kf_wheels[i]->q ); } -#if 0 { mdl_keyframe - *kf_head = &pose->keyframes[av->id_head-1], - *kf_elbow_l = &pose->keyframes[av->id_ik_elbow_l-1], - *kf_elbow_r = &pose->keyframes[av->id_ik_elbow_r-1], - *kf_hand_l = &pose->keyframes[av->id_ik_hand_l-1], - *kf_hand_r = &pose->keyframes[av->id_ik_hand_r-1]; + *kf_head = &pose->keyframes[localplayer.id_head-1], + *kf_elbow_l = &pose->keyframes[localplayer.id_ik_elbow_l-1], + *kf_elbow_r = &pose->keyframes[localplayer.id_ik_elbow_r-1], + *kf_hand_l = &pose->keyframes[localplayer.id_ik_hand_l-1], + *kf_hand_r = &pose->keyframes[localplayer.id_ik_hand_r-1]; float warble = perlin1d( vg.time, 2.0f, 2, 300 ); warble *= vg_maxf(animator->grind, fabsf(animator->weight)) * 0.3f; @@ -3111,31 +3107,28 @@ static void player__skate_pose( void *_animator, player_pose *pose ){ v3f origin = {0.0f,0.2f,0.0f}; keyframe_rotate_around( kf_hand_l, origin, - av->sk.bones[av->id_ik_hand_l].co, qrot ); + sk->bones[localplayer.id_ik_hand_l].co, qrot ); keyframe_rotate_around( kf_hand_r, origin, - av->sk.bones[av->id_ik_hand_r].co, qrot ); + sk->bones[localplayer.id_ik_hand_r].co, qrot ); keyframe_rotate_around( kf_hip, origin, - av->sk.bones[av->id_hip].co, qrot ); + sk->bones[localplayer.id_hip].co, qrot ); keyframe_rotate_around( kf_elbow_r, origin, - av->sk.bones[av->id_ik_elbow_r].co, qrot ); + sk->bones[localplayer.id_ik_elbow_r].co, qrot ); keyframe_rotate_around( kf_elbow_l, origin, - av->sk.bones[av->id_ik_elbow_l].co, qrot ); + sk->bones[localplayer.id_ik_elbow_l].co, qrot ); q_inv( qrot, qrot ); q_mul( qrot, kf_head->q, kf_head->q ); q_normalize( kf_head->q ); } -#endif } static void player__skate_post_animate(void){ - struct player_avatar *av = localplayer.playeravatar; struct player_skate_state *state = &player_skate.state; - localplayer.cam_velocity_influence = 1.0f; v3f head = { 0.0f, 1.8f, 0.0f }; - m4x3_mulv( localplayer.final_mtx[ av->id_head ], + m4x3_mulv( localplayer.final_mtx[ localplayer.id_head ], head, state->head_position ); m4x3_mulv( localplayer.rb.to_local, state->head_position, state->head_position );