From: hgn Date: Mon, 22 Jan 2024 18:01:04 +0000 (+0000) Subject: remove references to glide in master X-Git-Url: https://harrygodden.com/git/?p=carveJwlIkooP6JGAAIwe30JlM.git;a=commitdiff_plain;h=284dd9f21b28acb957eb6f16ef48f4f9527daa54 remove references to glide in master --- diff --git a/player.c b/player.c index 3a5c100..7a099f0 100644 --- a/player.c +++ b/player.c @@ -377,7 +377,6 @@ static void player__networked_sfx( u8 system, u8 priority, u8 id, #include "player_skate.c" #include "player_dead.c" #include "player_drive.c" -#include "player_glide.c" #include "player_basic_info.c" #include "player_render.c" diff --git a/player.h b/player.h index 41d5274..cb37b7c 100644 --- a/player.h +++ b/player.h @@ -12,7 +12,6 @@ enum player_subsystem{ k_player_subsystem_dead = 2, k_player_subsystem_drive = 3, k_player_subsystem_basic_info = 4, - k_player_subsystem_glide = 5, k_player_subsystem_max, k_player_subsystem_invalid = 255 }; @@ -69,7 +68,6 @@ struct player_subsystem_interface{ #include "player_skate.h" #include "player_dead.h" #include "player_drive.h" -#include "player_glide.h" #include "player_basic_info.h" #include "player_replay.h" @@ -195,7 +193,6 @@ struct player_subsystem_interface static *player_subsystems[] = { [k_player_subsystem_drive] = &player_subsystem_drive, [k_player_subsystem_skate] = &player_subsystem_skate, [k_player_subsystem_basic_info]=&player_subsystem_basic_info, - [k_player_subsystem_glide] = &player_subsystem_glide, }; /* diff --git a/player_glide.c b/player_glide.c deleted file mode 100644 index 80cb2bb..0000000 --- a/player_glide.c +++ /dev/null @@ -1,186 +0,0 @@ -#ifndef PLAYER_GLIDE_C -#define PLAYER_GLIDE_C - -#include "player_glide.h" -#include "input.h" - -static f32 k_glide_steer = 2.0f, - k_glide_cl = 0.04f, - k_glide_cs = 0.02f, - k_glide_drag = 0.0001f, - k_glide_slip_yaw = 0.1f, - k_glide_lift_pitch = 0.0f, - k_glide_wing_orient = -0.1f, - k_glide_balance = 1.0f; - -static i32 k_glide_pause = 0; - -static void player_glide_pre_update(void){ -} - -static void massless_accel( rigidbody *rb, v3f delta, v3f impulse ){ - /* linear */ - v3_muladds( rb->v, impulse, k_rb_delta, rb->v ); - - /* Angular velocity */ - v3f wa; - v3_cross( delta, impulse, wa ); - v3_muladds( rb->w, wa, k_rb_delta, rb->w ); -} - -static void calculate_lift( v3f vl, f32 aoa_bias, - v3f axis, v3f back, f32 power, - v3f out_force ){ - v3f up; - v3_cross( back, axis, up ); - - v3f wind; - v3_muladds( vl, axis, -v3_dot(axis,vl), wind ); - - f32 windv2 = v3_length2(wind), - aoa = atan2f( v3_dot( up, wind ), v3_dot( back, wind ) ) + aoa_bias, - cl = aoa / VG_PIf, /* TODO: make it a curve */ - L = windv2 * cl * power; - - v3f lift_dir; - v3_normalize( wind ); - v3_cross( wind, axis, lift_dir ); - - /* this is where induced drag (from the flappy things) would go */ - - v3_muls( lift_dir, L, out_force ); -} - -static void calculate_drag( v3f vl, f32 cd, v3f out_force ){ - f32 v2 = v3_length2( vl ); - v3f dir; - v3_copy( vl, dir ); - v3_normalize( dir ); - v3_muls( vl, -cd*v2, out_force ); -} - -static void player_glide_update(void){ - rigidbody *rb = &localplayer.rb; - vg_line_sphere( rb->to_world, 1.0f, 0 ); - - v2f steer; - joystick_state( k_srjoystick_steer, steer ); - - /* lift */ - v3f vl, wl; - m3x3_mulv( rb->to_local, rb->v, vl ); - m3x3_mulv( rb->to_local, rb->w, wl ); - - v3f F, Flift, Fslip, Fdrag, FslipW, FliftW; - - calculate_lift( vl, steer[1]*k_glide_steer, - (v3f){1,0,0}, - (v3f){0,sinf(k_glide_wing_orient),cosf(k_glide_wing_orient)}, - k_glide_cl, Flift ); - v3_copy( Flift, player_glide.info_lift ); - v3_cross( (v3f){0,0,0}, Flift, FliftW ); - - calculate_lift( vl, 0.0f, - (v3f){0,1,0},(v3f){0,0,1}, - k_glide_cs, Fslip ); - v3_copy( Fslip, player_glide.info_slip ); - v3_cross( (v3f){0,k_glide_lift_pitch,k_glide_slip_yaw}, Fslip, FslipW ); - - calculate_drag( vl, k_glide_drag, Fdrag ); - v3_copy( Fdrag, player_glide.info_drag ); - - v3f balance = {0.0f,-k_glide_balance,0.0f}; - m3x3_mulv( rb->to_local, balance, balance ); - vg_info( PRINTF_v3f( balance ) ); - - v3f Fw = { - steer[1]*k_glide_steer - balance[2], - 0.0f, - -steer[0]*k_glide_steer + balance[0], - }; - - if( player_glide.ticker ){ - player_glide.ticker --; - return; - } - player_glide.ticker += k_glide_pause; - - /* apply forces */ - v3_add( Flift, Fslip, F ); - v3_add( F, Fdrag, F ); - - m3x3_mulv( rb->to_world, F, F ); - v3_muladds( rb->v, F, k_rb_delta, rb->v ); - - v3_add( Fw, FslipW, Fw ); - v3_add( Fw, FliftW, Fw ); - m3x3_mulv( rb->to_world, Fw, Fw ); - v3_muladds( rb->w, Fw, k_rb_delta, rb->w ); - - rb_iter( rb ); - rb_update_transform( rb ); -} - -static void player_glide_post_update(void){ -} - -static void player_glide_animate(void){ - struct player_glide *g = &player_glide; - struct player_glide_animator *animator = &g->animator; - rb_extrapolate( &localplayer.rb, animator->root_co, animator->root_q ); -} - -static void player_glide_pose( void *_animator, player_pose *pose ){ - struct skeleton *sk = &localplayer.skeleton; - struct player_glide_animator *animator = _animator; - - skeleton_sample_anim( sk, player_glide.anim_temp, 0.0f, pose->keyframes ); - - v3_copy( animator->root_co, pose->root_co ); - v4_copy( animator->root_q, pose->root_q ); -} - -static void player_glide_post_animate(void){ - if( localplayer.cam_control.camera_mode == k_cam_firstperson ) - localplayer.cam_velocity_influence = 0.0f; - else - localplayer.cam_velocity_influence = 0.0f; - - v3f fwd; - v3_muls( localplayer.rb.to_world[2], -1.0f, fwd ); - v3_angles( fwd, localplayer.angles ); -} - -static void player_glide_im_gui(void){ - player__debugtext( 1, "Nothing here" ); - player__debugtext( 1, " lift: %.2f %.2f %.2f", - player_glide.info_lift[0], - player_glide.info_lift[1], - player_glide.info_lift[2] ); - player__debugtext( 1, " slip: %.2f %.2f %.2f", - player_glide.info_slip[0], - player_glide.info_slip[1], - player_glide.info_slip[2] ); - player__debugtext( 1, " drag: %.2f %.2f %.2f", - player_glide.info_drag[0], - player_glide.info_drag[1], - player_glide.info_drag[2] ); -} - -static void player_glide_bind(void){ - struct skeleton *sk = &localplayer.skeleton; - player_glide.anim_temp = skeleton_get_anim( sk, "idle_cycle+y" ); - - u32 mask = VG_VAR_CHEAT|VG_VAR_PERSISTENT; - VG_VAR_F32( k_glide_steer, flags=mask ); - VG_VAR_F32( k_glide_cl, flags=mask ); - VG_VAR_F32( k_glide_cs, flags=mask ); - VG_VAR_F32( k_glide_drag, flags=mask ); - VG_VAR_F32( k_glide_slip_yaw, flags=mask ); - VG_VAR_F32( k_glide_lift_pitch, flags=mask ); - VG_VAR_I32( k_glide_pause, flags=mask ); - VG_VAR_F32( k_glide_balance, flags=mask ); - VG_VAR_F32( k_glide_wing_orient, flags=mask ); -} - -#endif /* PLAYER_GLIDE_C */ diff --git a/player_glide.h b/player_glide.h deleted file mode 100644 index e50fde3..0000000 --- a/player_glide.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef PLAYER_GLIDE_H -#define PLAYER_GLIDE_H - -#include "player.h" - -struct player_glide { - struct skeleton_anim *anim_temp; - - struct player_glide_animator { - v3f root_co; - v4f root_q; - } - animator; - - v3f info_lift, - info_slip, - info_drag; - - u32 ticker; -} -static player_glide; - -static void player_glide_pre_update(void); -static void player_glide_update(void); -static void player_glide_post_update(void); -static void player_glide_animate(void); -static void player_glide_pose( void *animator, player_pose *pose ); - -static void player_glide_post_animate(void); -static void player_glide_im_gui(void); -static void player_glide_bind(void); - -struct player_subsystem_interface static player_subsystem_glide = { - .pre_update = player_glide_pre_update, - .update = player_glide_update, - .post_update = player_glide_post_update, - .animate = player_glide_animate, - .pose = player_glide_pose, - .post_animate = player_glide_post_animate, - .im_gui = player_glide_im_gui, - .bind = player_glide_bind, - - .animator_data = &player_glide.animator, - .animator_size = sizeof(player_glide.animator), - .name = "Glide" -}; - -#endif /* PLAYER_GLIDE_H */ diff --git a/player_replay.c b/player_replay.c index 31c4c74..586b733 100644 --- a/player_replay.c +++ b/player_replay.c @@ -274,7 +274,6 @@ static void skaterift_record_frame( replay_buffer *replay, [k_player_subsystem_skate] = sizeof(struct player_skate_state), [k_player_subsystem_dead ] = localplayer.ragdoll.part_count * sizeof(struct replay_rb), - [k_player_subsystem_glide] = 0, }[ localplayer.subsystem ]; } @@ -344,9 +343,6 @@ static void skaterift_record_frame( replay_buffer *replay, else if( localplayer.subsystem == k_player_subsystem_dead ){ memcpy( dst, &player_dead.animator, animator_size ); } - else if( localplayer.subsystem == k_player_subsystem_glide ){ - memcpy( dst, &player_glide.animator, animator_size ); - } /* sound effects */ memcpy( replay_frame_data( frame, k_replay_framedata_sfx ), diff --git a/player_skate.c b/player_skate.c index 6d9aa92..9356aa6 100644 --- a/player_skate.c +++ b/player_skate.c @@ -1219,13 +1219,6 @@ static void player__skate_pre_update(void){ if( button_down(k_srbind_use) && (v3_length2(state->trick_vel) < 0.01f) ){ localplayer.subsystem = k_player_subsystem_walk; - - if( state->activity <= k_skate_activity_air_to_grind ){ - localplayer.subsystem = k_player_subsystem_glide; - player__begin_holdout( (v3f){0,0,0} ); - return; - } - v3f angles; v3_copy( localplayer.cam.angles, localplayer.angles ); localplayer.angles[2] = 0.0f;