add skybox editor
[carveJwlIkooP6JGAAIwe30JlM.git] / player_skate.c
index c6ed4e073b6b65233ba98e10879c46ccef72e400..cbf43ec36fc57837463f29be2d6ffd43195248f3 100644 (file)
@@ -11,6 +11,7 @@
 #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;
@@ -764,6 +765,7 @@ static void skate_apply_trick_model(void){
       if( (v3_length2(state->trick_vel) >= 0.0001f ) &&
           state->trick_time > 0.2f)
       {
+         vg_info( "player fell off due to lack of skill\n" );
          player__dead_transition( k_player_die_type_feet );
       }
 
@@ -1222,16 +1224,9 @@ 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;
-
-         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();
          return;
       }
 
@@ -2214,6 +2209,7 @@ static void player__skate_update(void){
 
    if( world->water.enabled ){
       if( localplayer.rb.co[1]+0.25f < world->water.height ){
+         vg_info( "player fell off due to being in water\n" );
          player__networked_sfx( k_player_subsystem_walk, 32, 
                                 k_player_walk_soundeffect_splash,
                                 localplayer.rb.co, 1.0f );
@@ -2497,6 +2493,7 @@ begin_collision:;
       v3_lerp( start_co, localplayer.rb.co, t, localplayer.rb.co );
       rb_update_matrices( &localplayer.rb );
 
+      vg_info( "player fell of due to hitting head\n" );
       player__dead_transition( k_player_die_type_head );
       return;
    }
@@ -2662,6 +2659,7 @@ begin_collision:;
    f32 nforce = v3_length(normal_total);
    if( nforce > 4.0f ){
       if( nforce > 17.6f ){
+         vg_info( "player fell off due to hitting ground too hard\n" );
          v3_muladds( localplayer.rb.v, normal_total, -1.0f, localplayer.rb.v );
          player__dead_transition( k_player_die_type_feet );
          return;
@@ -3509,6 +3507,7 @@ static void player__skate_effects( void *_animator, m4x3f *final_mtx,
 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 ],