}
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 );
rb_update_transform( &player->rb );
s->state_gate_storage = s->state;
- player__pass_gate( player, gate );
+ player__pass_gate( player, &hit );
}
}