grid based
[carveJwlIkooP6JGAAIwe30JlM.git] / player_skate.c
index 098ce8ad42d1fe26e1bc138e3b193b5318f53278..847f7f5bc6399335eb0f0f131bc3a4de67d7d9a1 100644 (file)
@@ -2219,11 +2219,12 @@ begin_collision:;
    }
 
    skate_integrate( player );
-   vg_line_pt3( s->state.cog, 0.02f,  VG__WHITE );
+   vg_line_pt3( s->state.cog, 0.02f, VG__WHITE );
 
-   teleport_gate *gate;
-   if( (gate = world_intersect_gates(world, player->rb.co, s->state.prev_pos)) )
+   struct gate_hit hit;
+   if( world_intersect_gates(world, player->rb.co, s->state.prev_pos, &hit) )
    {
+      teleport_gate *gate = hit.gate;
       m4x3_mulv( gate->transport, player->rb.co, player->rb.co );
       m3x3_mulv( gate->transport, player->rb.v,  player->rb.v );
       m4x3_mulv( gate->transport, s->state.cog,   s->state.cog );
@@ -2239,7 +2240,7 @@ begin_collision:;
       rb_update_transform( &player->rb );
 
       s->state_gate_storage = s->state;
-      player__pass_gate( player, gate );
+      player__pass_gate( player, &hit );
    }
 }