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 */
localplayer.cam_velocity_influence = 1.0f;
v3f head = { 0.0f, 1.8f, 0.0f };
- m4x3_mulv( av->sk.final_mtx[ av->id_head ], head, state->head_position );
+ m4x3_mulv( localplayer.final_mtx[ av->id_head ],
+ head, state->head_position );
m4x3_mulv( localplayer.rb.to_local,
state->head_position, state->head_position );
}