skate_integrate();
vg_line_point( state->cog, 0.02f, VG__WHITE );
- ent_gate *gate =
- world_intersect_gates(world, localplayer.rb.co, state->prev_pos );
+ u32 id = world_intersect_gates( world, localplayer.rb.co, state->prev_pos );
+
+ if( id ){
+ ent_gate *gate = mdl_arritm( &world->ent_gate, mdl_entity_id_id(id) );
- if( gate ){
m4x3_mulv( gate->transport, localplayer.rb.co, localplayer.rb.co );
m3x3_mulv( gate->transport, localplayer.rb.v, localplayer.rb.v );
m4x3_mulv( gate->transport, state->cog, state->cog );
q_mul( transport_rotation, state->smoothed_rotation,
state->smoothed_rotation );
rb_update_transform( &localplayer.rb );
- player__pass_gate( gate );
+ player__pass_gate( id );
}
/* FIXME: Rate limit */