X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_skate.h;h=abbc7c51c82a2e81b06aac344c23b3cd5120453f;hb=refs%2Fheads%2Fmaster;hp=eca4582b5943ebb4c9d960822734b24ed1ad1e0b;hpb=0399d5a0a2e1818c3d4951f42abc1132f7e26421;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_skate.h b/player_skate.h deleted file mode 100644 index eca4582..0000000 --- a/player_skate.h +++ /dev/null @@ -1,269 +0,0 @@ -#ifndef PLAYER_SKATE_H -#define PLAYER_SKATE_H - -#include "player_api.h" - -#define SKATE_CCD - -typedef struct jump_info jump_info; - -struct player_skate{ - struct player_skate_state{ - enum skate_activity{ - k_skate_activity_air, - k_skate_activity_air_to_grind, - k_skate_activity_ground, - k_skate_activity_undefined, - k_skate_activity_grind_any, - k_skate_activity_grind_boardslide, - k_skate_activity_grind_metallic, - k_skate_activity_grind_back50, - k_skate_activity_grind_front50, - k_skate_activity_grind_5050 - } - activity, - activity_prev; - - u32 grind_cooldown, - surface_cooldown; - - f32 reverse, slip, delayed_slip_dir; - int manual_direction; - - /* tricks */ - v3f flip_axis; - float flip_time, - flip_rate; - - v3f trick_vel, /* measured in units of TAU/s */ - trick_euler; /* measured in units of TAU */ - float trick_time; - enum trick_type{ - k_trick_type_none, - k_trick_type_kickflip, - k_trick_type_shuvit, - k_trick_type_treflip - } - trick_type; - float gravity_bias; - - v3f up_dir; - v3f head_position; - - v3f throw_v; - v3f cog_v, cog; - - float grabbing; - v2f grab_mouse_delta; - - int charging_jump, jump_dir; - float jump_charge, - slap; - - double jump_time; - double start_push, - cur_push; - - v3f prev_pos; - - /* initial launch conditions */ - double air_start; - v3f air_init_v, - air_init_co; - - v4f smoothed_rotation; - - /* animator controls which require persistence */ - v3f board_trick_residualv, - board_trick_residuald; - f32 blend_slide, - blend_z, - blend_x, - blend_fly, - blend_grind, - blend_grind_balance, - blend_stand, - blend_push, - blend_jump, - blend_airdir, - blend_weight, - blend_trick_foot, - subslap; - v2f wobble; - } - state; - - /* animation /audio - * --------------------------------------------------------------*/ - struct skeleton_anim *anim_stand, *anim_highg, *anim_slide, - *anim_air, *anim_grind, *anim_grind_jump, - *anim_push, *anim_push_reverse, - *anim_ollie, *anim_ollie_reverse, - *anim_grabs, *anim_stop; - - /* vectors representing the direction of the axels in localspace */ - v3f truckv0[2]; - - audio_channel *aud_main, *aud_slide, *aud_air; - enum mdl_surface_prop surface, audio_surface; - - int wheel_contacts[2]; - float sample_change_cooldown; - - enum { - k_skate_sample_concrete, - k_skate_sample_wood, - k_skate_sample_concrete_scrape_metal, - k_skate_sample_concrete_scrape_wood, - k_skate_sample_metal_scrape_generic - } - main_sample_type; - player_pose holdout; - - /* - * Physics - * ---------------------------------------------------- - */ - - float substep, substep_delta; - - struct jump_info{ - v3f log[50]; - v3f n; - v3f apex; - v3f v; - - float gravity; - - int log_length; - float score, - land_dist; - - enum prediction_type{ - k_prediction_none, - k_prediction_unset, - k_prediction_land, - k_prediction_grind - } - type; - - u32 colour; - } - possible_jumps[36]; - u32 possible_jump_count; - - float land_dist; - v3f land_normal; - - v3f surface_picture, - weight_distribution, - grind_vec, - grind_dir; - - float grind_strength; - struct grind_limit{ - v3f ra, n; - float p; - } - limits[3]; - u32 limit_count; -}; - -VG_STATIC float - k_friction_lat = 12.0f, - k_friction_resistance = 0.01f, - - k_max_push_speed = 16.0f, - k_push_accel = 10.0f, - k_push_cycle_rate = 8.0f, - - k_steer_ground = 2.5f, - k_steer_air = 3.6f, - - k_jump_charge_speed = (1.0f/0.4f), - k_jump_force = 5.0f, - - k_cog_spring = 0.2f, - k_cog_damp = 0.02f, - k_cog_mass_ratio = 0.9f, - - k_mmthrow_steer = 1.0f, - k_mmthrow_scale = 6.0f, - k_mmcollect_lat = 2.0f, - k_mmcollect_vert = 0.0f, - k_mmdecay = 12.0f, - k_spring_angular = 1.0f, - - k_spring_force = 300.0f, - k_spring_dampener = 5.0f, - - k_grind_spring = 50.0f, - k_grind_aligment = 10.0f, - k_grind_dampener = 5.0f, - - k_surface_spring = 100.0f, - k_surface_dampener = 40.0f, - k_manul_spring = 200.0f, - k_manul_dampener = 30.0f, - k_board_interia = 8.0f, - - k_grind_decayxy = 30.0f, - k_grind_axel_min_vel = 1.0f, - k_grind_axel_max_angle = 0.95f, /* cosine(|a|) */ - k_grind_axel_max_vangle = 0.4f, - k_grind_max_friction = 3.0f, - k_grind_max_edge_angle = 0.97f, - - k_board_length = 0.45f, - k_board_width = 0.13f, - k_board_end_radius = 0.1f, - k_board_radius = 0.14f, /* 0.07 */ - - k_grind_balance = -40.0f; - -VG_STATIC void player__skate_register(void) -{ - VG_VAR_F32( k_grind_dampener, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_grind_spring, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_grind_aligment, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_surface_spring, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_surface_dampener, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_board_interia, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_grind_decayxy, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_grind_axel_min_vel, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_grind_axel_max_angle, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_grind_max_friction, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_grind_balance, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_friction_lat, flags=VG_VAR_CHEAT ); - - VG_VAR_F32( k_cog_spring, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_cog_damp, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_cog_mass_ratio, flags=VG_VAR_CHEAT ); - - VG_VAR_F32( k_spring_force, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_spring_dampener, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_spring_angular, flags=VG_VAR_CHEAT ); - - VG_VAR_F32( k_mmthrow_scale, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_mmcollect_lat, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_mmcollect_vert, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_mmdecay, flags=VG_VAR_CHEAT ); - VG_VAR_F32( k_mmthrow_steer, flags=VG_VAR_CHEAT ); -} - -VG_STATIC void player__skate_bind ( player_instance *player ); -VG_STATIC void player__skate_pre_update ( player_instance *player ); -VG_STATIC void player__skate_update ( player_instance *player ); -VG_STATIC void player__skate_post_update ( player_instance *player ); -VG_STATIC void player__skate_im_gui ( player_instance *player ); -VG_STATIC void player__skate_animate ( player_instance *player, - player_animation *anim ); -VG_STATIC void player__skate_post_animate ( player_instance *player ); -VG_STATIC void player__skate_reset ( player_instance *player, - ent_spawn *rp ); - -VG_STATIC void player__skate_clear_mechanics( player_instance *player ); -VG_STATIC void player__skate_reset_animator( player_instance *player ); -VG_STATIC void player__approximate_best_trajectory( player_instance *player ); - -#endif /* PLAYER_SKATE_H */