custom walk filtering
[carveJwlIkooP6JGAAIwe30JlM.git] / player_skate.c
index f971b18037da760d075f57342cb73ffb152df6f3..a7899075d0525f5db0a62a92f74aaf230bc5f4ea 100644 (file)
@@ -499,8 +499,8 @@ void player__approximate_best_trajectory( player_instance *player )
                m4x3_mulv( gate->transport, launch_co, launch_co );
                m3x3_mul( gate->transport, basis, basis );
 
-               if( gate->type == k_gate_type_nonlocel ){
-                  trace_world = &world_static.worlds[ gate->target ];
+               if( gate->flags & k_ent_gate_nonlocal ){
+                  trace_world = &world_static.instances[ gate->target ];
                }
             }
          }
@@ -1119,27 +1119,29 @@ VG_STATIC void player__skate_pre_update( player_instance *player ){
       return;
    }
 
-   enum trick_type trick = k_trick_type_none;
-   if( (s->state.activity <= k_skate_activity_air_to_grind) && 
-       (trick = player_skate_trick_input( player )) )
-   {
-      if( (vg.time - s->state.jump_time) < 0.1f ){
-         v3_zero( s->state.trick_vel );
-         s->state.trick_time = 0.0f;
-
-         if( trick == k_trick_type_kickflip ){
-            s->state.trick_vel[0] = 3.0f;
-         }
-         else if( trick == k_trick_type_shuvit ){
-            s->state.trick_vel[2] = 3.0f;
-         }
-         else if( trick == k_trick_type_treflip ){
-            s->state.trick_vel[0] = 2.0f;
-            s->state.trick_vel[2] = 2.0f;
+   if( s->state.activity <= k_skate_activity_air_to_grind ){
+      enum trick_type trick = k_trick_type_none;
+      if( (trick = player_skate_trick_input( player )) ){
+         if( (vg.time - s->state.jump_time) < 0.1f ){
+            v3_zero( s->state.trick_vel );
+            s->state.trick_time = 0.0f;
+
+            if( trick == k_trick_type_kickflip ){
+               s->state.trick_vel[0] = 3.0f;
+            }
+            else if( trick == k_trick_type_shuvit ){
+               s->state.trick_vel[2] = 3.0f;
+            }
+            else if( trick == k_trick_type_treflip ){
+               s->state.trick_vel[0] = 2.0f;
+               s->state.trick_vel[2] = 2.0f;
+            }
+            s->state.trick_type = trick;
          }
-         s->state.trick_type = trick;
       }
    }
+   else
+      s->state.trick_type = k_trick_type_none;
 }
 
 VG_STATIC void player__skate_post_update( player_instance *player ){
@@ -2781,7 +2783,7 @@ VG_STATIC void player__skate_animate( player_instance *player ){
    if( fabsf(lean1)>fabsf(lean2) ) lean = lean1;
    else                            lean = lean2;
 
-   if( ((int)roundf(animator->board_euler[0])) % 2 ) lean = -lean;
+   if( ((int)roundf(animator->board_euler[0]/VG_PIf)) % 2 ) lean = -lean;
    lean = vg_clampf( lean, -1.0f, 1.0f );
    animator->board_lean = 
       vg_lerpf(animator->board_lean, lean, vg.time_delta*18.0f);