remove avatar concept
[carveJwlIkooP6JGAAIwe30JlM.git] / player_walk.c
index 193e79a2feba0ecf8f6d28b7431c6456d87b473c..100e21f60e020b4ceea67f39bdcc2436515faf9d 100644 (file)
@@ -318,9 +318,10 @@ static void player__walk_pre_update(void){
                w->state.outro_start_time = vg.time;
                localplayer.immobile = 1;
 
-               struct player_avatar *av = localplayer.playeravatar;
-               m4x3_mulv( localplayer.final_mtx[ av->id_ik_foot_r ], 
-                          av->sk.bones[ av->id_ik_foot_r ].co, 
+               u32 foot_id = localplayer.id_ik_foot_r;
+
+               m4x3_mulv( localplayer.final_mtx[ foot_id ], 
+                          localplayer.skeleton.bones[ foot_id ].co, 
                           w->state.drop_in_foot_anchor );
             }
             else{
@@ -819,7 +820,6 @@ static void player__walk_animate(void){
    }
 
    if( w->state.outro_type ){
-      struct player_avatar *av = localplayer.playeravatar;
       struct skeleton_anim *anim = 
          player_walk_outro_anim( w->state.outro_type );
       f32 outro_length = (f32)anim->length / anim->rate,
@@ -890,8 +890,7 @@ static void player__walk_animate(void){
 static void player__walk_pose( void *_animator, player_pose *pose ){
    struct player_walk *w = &player_walk;
    struct player_walk_animator *animator = _animator;
-   struct skeleton *sk = &localplayer.playeravatar->sk;
-   struct player_avatar *av = localplayer.playeravatar;
+   struct skeleton *sk = &localplayer.skeleton;
 
    v3_copy( animator->root_co, pose->root_co );
    v4_copy( animator->root_q, pose->root_q );
@@ -926,14 +925,14 @@ static void player__walk_pose( void *_animator, player_pose *pose ){
       skeleton_sample_anim( sk, w->anim_sit, st*sit_norm, bpose );
 
       v4f qy,qp;
-      f32 *qh = bpose[av->id_head-1].q;
+      f32 *qh = bpose[localplayer.id_head-1].q;
       q_axis_angle( qy, (v3f){0.0f,1.0f,0.0f}, animator->yaw*0.5f*st );
       q_axis_angle( qp, (v3f){0.0f,0.0f,1.0f}, animator->pitch*st );
       q_mul( qy, qh, qh );
       q_mul( qh, qp, qh );
       q_normalize( qh );
 
-      qh = bpose[av->id_chest-1].q;
+      qh = bpose[localplayer.id_chest-1].q;
       q_axis_angle( qy, (v3f){0.0f,1.0f,0.0f}, animator->yaw*0.5f*st );
       q_mul( qy, qh, qh );
       q_normalize( qh );
@@ -965,9 +964,10 @@ static void player__walk_pose( void *_animator, player_pose *pose ){
          v3f anchored_pos;
          m4x3_mulv( inverse, animator->foot_anchor, anchored_pos );
 
-         v3_lerp( pose->keyframes[ av->id_ik_foot_r-1 ].co, anchored_pos, 
+         v3_lerp( pose->keyframes[ localplayer.id_ik_foot_r-1 ].co, 
+                  anchored_pos, 
                   1.0f-animator->commit_t,
-                  pose->keyframes[ av->id_ik_foot_r-1 ].co );
+                  pose->keyframes[ localplayer.id_ik_foot_r-1 ].co );
       }
    }
    else
@@ -979,7 +979,6 @@ static void player__walk_post_animate(void){
     * Camera 
     */
    struct player_walk *w = &player_walk;
-   struct player_avatar *av = localplayer.playeravatar;
 
    if( w->state.outro_type ){
       struct skeleton_anim *anim = player_walk_outro_anim(w->state.outro_type);
@@ -1030,8 +1029,7 @@ static void player__walk_im_gui(void){
 
 static void player__walk_bind(void){
    struct player_walk *w = &player_walk;
-   struct player_avatar *av = localplayer.playeravatar;
-   struct skeleton *sk = &av->sk;
+   struct skeleton *sk = &localplayer.skeleton;
 
    w->anim_idle         = skeleton_get_anim( sk, "idle_cycle+y" );
    w->anim_walk         = skeleton_get_anim( sk, "walk+y" );