X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_walk.h;h=28e38a4347825b18bd1c9670e53ea6a9c2b38f3a;hb=74b2136d5b41b18e2eec698f1fd11b503aa1100a;hp=ae0f9c36f77624f466854893efe92db0789ba9c4;hpb=22f62f001f21d1b91fefd9fc495c122d9ddf205a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_walk.h b/player_walk.h index ae0f9c3..28e38a4 100644 --- a/player_walk.h +++ b/player_walk.h @@ -24,7 +24,9 @@ struct player_walk{ k_walk_activity_air, k_walk_activity_ground, k_walk_activity_sleep, - k_walk_activity_lockedmove + k_walk_activity_lockedmove, + k_walk_activity_sit, + k_walk_activity_sit_up } activity; @@ -32,7 +34,8 @@ struct player_walk{ k_walk_outro_none, k_walk_outro_jump_to_air, k_walk_outro_drop_in, - k_walk_outro_regular + k_walk_outro_regular, + k_walk_outro_max } outro_type; double outro_start_time; @@ -41,6 +44,7 @@ struct player_walk{ f64 jump_input_time; f32 walk_timer; + f32 sit_t; int step_phase; } state; @@ -49,7 +53,8 @@ struct player_walk{ 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; + *anim_jump_to_air, *anim_drop_in, *anim_intro, + *anim_sit; struct player_walk_animator { v3f root_co; @@ -58,17 +63,22 @@ struct player_walk{ run, walk; - f32 walk_timer; + f32 walk_timer, yaw, pitch; v3f foot_anchor; enum walk_outro outro_type; f32 outro_t, - commit_t; + commit_t, + sit_t; } animator; } static player_walk; +enum player_walk_soundeffect { + k_player_walk_soundeffect_splash +}; + static f32 k_walkspeed = 10.0f, k_airspeed = 1.2f, @@ -76,7 +86,10 @@ static f32 k_walk_accel = 10.0f, k_walk_air_accel = 7.0f, k_walk_friction = 10.0f, - k_walk_step_height = 0.2f; + k_walk_step_height = 0.2f, + + k_sit_yaw_limit = VG_PIf/1.7f, + k_sit_pitch_limit = VG_PIf/4.0f; static void player__walk_register(void){ VG_VAR_F32( k_walkspeed, flags=VG_VAR_CHEAT ); @@ -96,13 +109,13 @@ static void player__walk_post_animate(void); static void player__walk_im_gui (void); static void player__walk_bind (void); static void player__walk_transition (void); -static void player__walk_reset (ent_spawn *rp ); +static void player__walk_reset (void); static void player__walk_restore (void); +static void player__walk_animator_exchange( bitpack_ctx *ctx, void *data ); struct player_subsystem_interface static player_subsystem_walk = { .system_register = player__walk_register, .bind = player__walk_bind, - .reset = player__walk_reset, .pre_update = player__walk_pre_update, .update = player__walk_update, .post_update = player__walk_post_update, @@ -110,9 +123,11 @@ struct player_subsystem_interface static player_subsystem_walk = { .animate = player__walk_animate, .post_animate = player__walk_post_animate, .pose = player__walk_pose, + .network_animator_exchange = player__walk_animator_exchange, .animator_data = &player_walk.animator, - .animator_size = sizeof(player_walk.animator) + .animator_size = sizeof(player_walk.animator), + .name = "Walk" }; #endif /* PLAYER_WALK_H */