i hope your hapy
[carveJwlIkooP6JGAAIwe30JlM.git] / player.c
index ee799d072e073c0d80270a8c2a8f464eb1fd9486..ef23ef43639eed3e367a80c432a0eaf2e3f94df1 100644 (file)
--- a/player.c
+++ b/player.c
@@ -184,7 +184,7 @@ VG_STATIC void player_apply_transport_to_cam( m4x3f transport )
 }
 
 __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;
@@ -202,25 +202,26 @@ VG_STATIC void gate_rotate_angles( teleport_gate *gate, v3f angles, v3f d )
  * 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 )
@@ -238,8 +239,7 @@ 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;
@@ -251,9 +251,7 @@ VG_STATIC void player__pre_render( player_instance *player )
       skeleton_apply_inverses( sk );
       skeleton_apply_transform( sk, transform );
 
-#if 0
       skeleton_debug( sk );
-#endif
    }
 
    if( _player_post_animate[ player->subsystem ] )
@@ -317,9 +315,9 @@ PLAYER_API void player__im_gui( player_instance *player )
 }
 
 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 );