more gui changes
[carveJwlIkooP6JGAAIwe30JlM.git] / player.c
index 23cb5fcaf4ceeaae7f8d09c020be987e08d5fba0..b6d6a8533a202545b8c89046c05ea36168bcb527 100644 (file)
--- a/player.c
+++ b/player.c
 #include "network_common.h"
 #include "world_routes.h"
 #include "ent_miniworld.h"
+#include "gui.h"
 
 static int localplayer_cmd_respawn( int argc, const char *argv[] ){
    ent_spawn *rp = NULL, *r;
-   world_instance *world = localplayer.viewable_world;
+   world_instance *world = world_current_instance();
 
    if( argc == 1 ){
       rp = world_find_spawn_by_name( world, argv[0] );
@@ -89,7 +90,8 @@ static void player__bind(void){
  */
 
 static void player__pre_update(void){
-   if( button_down( k_srbind_camera ) && !localplayer.immobile ){
+   if( button_down( k_srbind_camera ) && !localplayer.immobile &&
+       (localplayer.subsystem != k_player_subsystem_dead) ){
       if( localplayer.cam_control.camera_mode == k_cam_firstperson )
          localplayer.cam_control.camera_mode = k_cam_thirdperson;
       else
@@ -200,7 +202,6 @@ static void player__im_gui(void){
                                        [k_skaterift_replay]    = "replay",
                                        [k_skaterift_ent_focus] = "ent_focus",
                                        [k_skaterift_default]   = "default",
-                                       [k_skaterift_respawning]= "respawning",
                      } [skaterift.activity] );
    player__debugtext( 1, "time_rate: %.4f", skaterift.time_rate );
 
@@ -221,6 +222,7 @@ static void player__setpos( v3f pos ){
 
 static void player__reset(void){
    replay_clear( &skaterift.replay );
+   gui_helper_clear();
 
    v3_zero( localplayer.rb.v );
    v3_zero( localplayer.rb.w );
@@ -236,7 +238,6 @@ static void player__reset(void){
 
    localplayer.immobile = 0;
    localplayer.gate_waiting = NULL;
-   localplayer.viewable_world = world_current_instance();
 
    world_static.challenge_target = NULL;
    world_static.challenge_timer = 0.0f;
@@ -253,6 +254,8 @@ static void player__reset(void){
          world_routes_clear( instance );
       }
    }
+
+   v3_copy( localplayer.rb.co, localplayer.cam_control.tpv_lpf );
 }
 
 static void player__spawn( ent_spawn *rp ){