#include "ent_tornado.c"
#include "vg/vg_rigidbody.h"
#include "scene_rigidbody.h"
+#include "player_glide.h"
static void player__skate_bind(void){
struct skeleton *sk = &localplayer.skeleton;
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;
-
- v3_copy( localplayer.rb.co, player_glide.rb.co );
- v4_copy( localplayer.rb.q, player_glide.rb.q );
- v3_copy( localplayer.rb.v, player_glide.rb.v );
- v3_copy( localplayer.rb.w, player_glide.rb.w );
- rb_update_matrices( &player_glide.rb );
-
- player__begin_holdout( (v3f){0,0,0} );
+ if( (state->activity <= k_skate_activity_air_to_grind) &&
+ localplayer.have_glider ){
+ player_glide_transition( state->reverse < 0.0f );
return;
}
static void player__skate_post_animate(void){
struct player_skate_state *state = &player_skate.state;
localplayer.cam_velocity_influence = 1.0f;
+ localplayer.cam_dist = 1.8f;
v3f head = { 0.0f, 1.8f, 0.0f };
m4x3_mulv( localplayer.final_mtx[ localplayer.id_head ],