X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_walk.h;h=29c210dd599d682495cdff3e83f63f5ded7be7df;hb=eb203257efcfe324217de9e733cc6c1371b99de6;hp=7a597c3b6d17b70f594d0a0d6f4eb51b53235135;hpb=e3bf80ff27b675f5e7f87dcebd16fab6fe08df7a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_walk.h b/player_walk.h index 7a597c3..29c210d 100644 --- a/player_walk.h +++ b/player_walk.h @@ -9,22 +9,43 @@ struct player_walk struct { - v3f angles; v3f prev_pos; + v3f drop_in_target, + drop_in_foot_anchor, + drop_in_start, + drop_in_normal; + + float drop_in_start_angle, + drop_in_angle; enum walk_activity { k_walk_activity_air, k_walk_activity_ground, - k_walk_activity_sleep + k_walk_activity_sleep, + k_walk_activity_immobile, + k_walk_activity_lockedmove } activity; + + enum walk_outro + { + k_walk_outro_none, + k_walk_outro_jump_to_air, + k_walk_outro_drop_in, + k_walk_outro_regular + } + outro_type; + + struct skeleton_anim *outro_anim; + double outro_start_time; } state, state_gate_storage; enum mdl_surface_prop surface; - struct skeleton_anim *anim_walk, *anim_run, *anim_idle, *anim_jump; + 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, @@ -32,6 +53,8 @@ struct player_walk move_speed, walk_timer; + + int step_phase; }; VG_STATIC void player__walk_pre_update ( player_instance *player ); @@ -43,5 +66,8 @@ 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_reset ( player_instance *player, + ent_spawn *rp ); +VG_STATIC void player__walk_restore( player_instance *player ); #endif /* PLAYER_WALK_H */