4 #include "player_api.h"
7 #define PLAYER_JUMP_EPSILON 0.1 /* 100ms jump allowance */
12 struct player_walk_state
{
19 float drop_in_start_angle
,
24 k_walk_activity_ground
,
25 k_walk_activity_sleep
,
26 k_walk_activity_lockedmove
32 k_walk_outro_jump_to_air
,
38 struct skeleton_anim
*outro_anim
;
39 double outro_start_time
;
47 enum mdl_surface_prop surface
;
48 struct skeleton_anim
*anim_walk
, *anim_run
, *anim_idle
, *anim_jump
,
49 *anim_jump_to_air
, *anim_drop_in
, *anim_intro
;
66 k_walk_air_accel
= 7.0f
,
67 k_walk_friction
= 10.0f
,
68 k_walk_step_height
= 0.2f
;
70 VG_STATIC
void player__walk_register(void)
72 VG_VAR_F32( k_walkspeed
, flags
=VG_VAR_CHEAT
);
73 VG_VAR_F32( k_stopspeed
, flags
=VG_VAR_CHEAT
);
74 VG_VAR_F32( k_airspeed
, flags
=VG_VAR_CHEAT
);
75 VG_VAR_F32( k_walk_friction
, flags
=VG_VAR_CHEAT
);
76 VG_VAR_F32( k_walk_air_accel
, flags
=VG_VAR_CHEAT
);
77 VG_VAR_F32( k_walk_accel
, flags
=VG_VAR_CHEAT
);
80 VG_STATIC
void player__walk_pre_update ( player_instance
*player
);
81 VG_STATIC
void player__walk_update ( player_instance
*player
);
82 VG_STATIC
void player__walk_post_update ( player_instance
*player
);
83 VG_STATIC
void player__walk_animate ( player_instance
*player
,
84 player_animation
*anim
);
85 VG_STATIC
void player__walk_post_animate( player_instance
*player
);
86 VG_STATIC
void player__walk_im_gui ( player_instance
*player
);
87 VG_STATIC
void player__walk_bind ( player_instance
*player
);
88 VG_STATIC
void player__walk_transition ( player_instance
*player
, v3f angles
);
89 VG_STATIC
void player__walk_reset ( player_instance
*player
,
91 VG_STATIC
void player__walk_restore( player_instance
*player
);
93 #endif /* PLAYER_WALK_H */