}
__attribute__ ((deprecated))
-VG_STATIC void gate_rotate_angles( teleport_gate *gate, v3f angles, v3f d )
+VG_STATIC void gate_rotate_angles( ent_gate *gate, v3f angles, v3f d )
{
v3_copy( angles, d );
return;
* Applies gate transport to a player_interface
*/
PLAYER_API
-void player__pass_gate( player_instance *player, struct gate_hit *hit )
+void player__pass_gate( player_instance *player, ent_gate *gate )
{
- player->gate_waiting = hit->gate;
+ player->gate_waiting = gate;
+ world_routes_activate_entry_gate( get_active_world(), gate );
- m4x3_mulv( hit->gate->transport, player->tpv_lpf, player->tpv_lpf );
- m3x3_mulv( hit->gate->transport, player->cam_velocity_smooth,
- player->cam_velocity_smooth );
+ m4x3_mulv( gate->transport, player->tpv_lpf, player->tpv_lpf );
+ m3x3_mulv( gate->transport, player->cam_velocity_smooth,
+ player->cam_velocity_smooth );
m3x3_copy( player->basis, player->basis_gate );
v4f q;
- m3x3_q( hit->gate->transport, q );
+ m3x3_q( gate->transport, q );
q_mul( q, player->qbasis, player->qbasis );
q_normalize( player->qbasis );
q_m3x3( player->qbasis, player->basis );
m3x3_transpose( player->basis, player->invbasis );
- if( hit->nonlocal )
- world_global.active_world = hit->nonlocal->target_map_index;
+ if( gate->type == k_gate_type_nonlocal )
+ world_global.active_world = gate->target;
}
VG_STATIC void player__pre_render( player_instance *player )
struct skeleton *sk = &player->playeravatar->sk;
- if( player->holdout_time > 0.0f )
- {
+ if( player->holdout_time > 0.0f ){
skeleton_lerp_pose( sk, res.pose, player->holdout_pose,
player->holdout_time, res.pose );
player->holdout_time -= vg.frame_delta * 2.0f;
skeleton_apply_inverses( sk );
skeleton_apply_transform( sk, transform );
-#if 0
skeleton_debug( sk );
-#endif
}
if( _player_post_animate[ player->subsystem ] )
world_link_lighting_ub( world, _shader_model_character_view.id );
world_bind_position_texture( world, _shader_model_character_view.id,
_uniform_model_character_view_g_world_depth, 2 );
+ world_bind_light_array( world, _shader_model_character_view.id,
+ _uniform_model_character_view_uLightsArray, 3 );
+ world_bind_light_index( world, _shader_model_character_view.id,
+ _uniform_model_character_view_uLightsIndex, 4 );
glUniformMatrix4x3fv( _uniform_model_character_view_uTransforms,
player->playeravatar->sk.bone_count,
}
PLAYER_API void player__spawn( player_instance *player,
- struct respawn_point *rp )
+ ent_spawn *rp )
{
- v3_copy( rp->co, player->rb.co );
+ v3_copy( rp->transform.co, player->rb.co );
v3_zero( player->rb.v );
v3_zero( player->rb.w );
q_identity( player->rb.q );