X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_walk.h;h=3dcdbd8001bbbe14a2fe634ac3431eba81ee6d54;hb=7d8f90d019453ff1186f16c2d36a08d5a53ad638;hp=3e450bcc26f541182bdb613987f0d242e109caf7;hpb=9a7f395032111ebea53acf45c5af67ecbfbf7651;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_walk.h b/player_walk.h index 3e450bc..3dcdbd8 100644 --- a/player_walk.h +++ b/player_walk.h @@ -34,28 +34,35 @@ struct player_walk{ k_walk_outro_regular } outro_type; - - struct skeleton_anim *outro_anim; double outro_start_time; int jump_queued; f64 jump_input_time; } - state, - state_gate_storage; + state; + + f32 move_speed, + walk_timer; + + int step_phase; enum mdl_surface_prop surface; struct skeleton_anim *anim_walk, *anim_run, *anim_idle, *anim_jump, *anim_jump_to_air, *anim_drop_in, *anim_intro; - float blend_fly, - blend_run, - blend_walk, - - move_speed, - walk_timer; - - int step_phase; + struct player_walk_animator { + v3f root_co; + v4f root_q; + f32 fly, + run, + walk; + + v3f foot_anchor; + enum walk_outro outro_type; + f32 outro_t, + commit_t; + } + animator; }; VG_STATIC float @@ -80,12 +87,12 @@ VG_STATIC void player__walk_register(void) VG_STATIC void player__walk_pre_update ( player_instance *player ); VG_STATIC void player__walk_update ( player_instance *player ); VG_STATIC void player__walk_post_update ( player_instance *player ); -VG_STATIC void player__walk_animate ( player_instance *player, - player_animation *anim ); +VG_STATIC void player__walk_animate ( player_instance *player ); +VG_STATIC void player__walk_pose( player_instance *player, player_pose *pose ); VG_STATIC void player__walk_post_animate( player_instance *player ); VG_STATIC void player__walk_im_gui ( player_instance *player ); VG_STATIC void player__walk_bind ( player_instance *player ); -VG_STATIC void player__walk_transition ( player_instance *player, v3f angles ); +VG_STATIC void player__walk_transition ( player_instance *player ); VG_STATIC void player__walk_reset ( player_instance *player, ent_spawn *rp ); VG_STATIC void player__walk_restore( player_instance *player );