skateshop basics
[carveJwlIkooP6JGAAIwe30JlM.git] / player.c
index da097071804d7a6e18d5faaef5a1c56c59451bb7..e2052029635dc3cc40cd8a7ab036fd0461043d54 100644 (file)
--- a/player.c
+++ b/player.c
@@ -154,12 +154,6 @@ void player__use_model( player_instance *player, struct player_model *mdl )
    player->playermodel = mdl;
 }
 
-PLAYER_API
-void player__use_board( player_instance *player, struct player_board *mdl )
-{
-   player->playerboard = mdl;
-}
-
 PLAYER_API
 void player__bind( player_instance *player )
 {
@@ -198,7 +192,7 @@ void player__pre_update( player_instance *player )
       return;
    }
 
-   if( vg_input_button_down( player->input_reset ) ){
+   if( vg_input_button_down( player->input_reset ) && !player->immobile ){
       double delta = world_global.time - world_global.last_use;
 
       if( (delta <= RESET_MAX_TIME) && (world_global.last_use != 0.0) ){
@@ -242,7 +236,7 @@ void player__pre_update( player_instance *player )
       }
    }
 
-   if( vg_input_button_down( player->input_camera ) ){
+   if( vg_input_button_down( player->input_camera ) && !player->immobile ){
       if( player->camera_mode == k_cam_firstperson )
          player->camera_mode = k_cam_thirdperson;
       else
@@ -383,6 +377,7 @@ PLAYER_API void player__im_gui( player_instance *player )
    b[3].co[1] = vg_uictx.cursor[1];
 }
 
+VG_STATIC void global_skateshop_exit(void);
 PLAYER_API void player__spawn( player_instance *player, 
                                ent_spawn *rp )
 {
@@ -397,8 +392,11 @@ PLAYER_API void player__spawn( player_instance *player,
    m3x3_identity( player->invbasis );
 
    player->subsystem = k_player_subsystem_walk;
+   player->immobile = 0;
    player->gate_waiting = NULL;
 
+   global_skateshop_exit();
+
    if( _player_reset[ player->subsystem ] )
       _player_reset[ player->subsystem ]( player, rp );
 }