move location of main camera to g_render
[carveJwlIkooP6JGAAIwe30JlM.git] / player.c
index b11eacb1777618a4d66740358ebf939cec038b89..ff3e6dd784ceb13027741db69a428b2d4079106d 100644 (file)
--- a/player.c
+++ b/player.c
@@ -22,6 +22,7 @@
 #include "player_skate.h"
 #include "player_basic_info.h"
 #include "player_glide.h"
+#include <string.h>
 
 i32 k_invert_y = 0;
 struct localplayer localplayer = 
@@ -90,7 +91,7 @@ void player_init(void)
                         k_var_dtype_i32, VG_VAR_PERSISTENT );
 }
 
-void player__debugtext( int size, const char *fmt, ... )
+void player__debugtext( ui_context *ctx, int size, const char *fmt, ... )
 {
        char buffer[ 1024 ];
 
@@ -99,7 +100,7 @@ void player__debugtext( int size, const char *fmt, ... )
    vsnprintf( buffer, 1024, fmt, args );
    va_end( args );
 
-   ui_text( g_player_debugger, buffer, size, k_ui_align_left, 0 );
+   ui_text( ctx, g_player_debugger, buffer, size, k_ui_align_left, 0 );
    g_player_debugger[1] += size*16;
 }
 
@@ -224,8 +225,8 @@ void player_apply_transport_to_cam( m4x3f transport )
    m4x4f transport_4;
    m4x3_invert_affine( transport, transport_i );
    m4x3_expand( transport_i, transport_4 );
-   m4x4_mul( skaterift.cam.mtx.pv, transport_4, skaterift.cam.mtx.pv );
-   m4x4_mul( skaterift.cam.mtx.v,  transport_4, skaterift.cam.mtx.v );
+   m4x4_mul( g_render.cam.mtx.pv, transport_4, g_render.cam.mtx.pv );
+   m4x4_mul( g_render.cam.mtx.v,  transport_4, g_render.cam.mtx.v );
 
    /* we want the regular transform here no the inversion */
    m4x3_expand( transport, transport_4 );
@@ -233,7 +234,7 @@ void player_apply_transport_to_cam( m4x3f transport )
    m4x4_mul( world_gates.cam.mtx.v,  transport_4, world_gates.cam.mtx.v );
 }
 
-void player__im_gui(void)
+void player__im_gui( ui_context *ctx )
 {
    if( !k_player_debug_info ) return;
 
@@ -244,42 +245,42 @@ void player__im_gui(void)
       vg.window_y
    };
 
-   ui_fill( box, (ui_colour(k_ui_bg)&0x00ffffff)|0x50000000 );
+   ui_fill( ctx, box, (ui_colour(ctx, k_ui_bg)&0x00ffffff)|0x50000000 );
 
    g_player_debugger[0] = box[0];
    g_player_debugger[1] = 0;
    g_player_debugger[2] = 300;
    g_player_debugger[3] = 32;
 
-   player__debugtext( 2, "instance #%u", world_static.active_instance );
+   player__debugtext( ctx, 2, "instance #%u", world_static.active_instance );
 
    char buf[96];
-   for( u32 i=0; i<k_world_max; i++ ){
+   for( u32 i=0; i<k_world_max; i++ )
+   {
       if( world_static.instance_addons[ i ] )
          addon_alias_uid( &world_static.instance_addons[ i ]->alias, buf );
       else
          strcpy( buf, "none" );
 
-      player__debugtext( 1, "world #%u: %s", i, buf );
+      player__debugtext( ctx, 1, "world #%u: %s", i, buf );
    }
 
-   player__debugtext( 2, "director" );
-   player__debugtext( 1, "activity: %s", 
+   player__debugtext( ctx, 2, "director" );
+   player__debugtext( ctx, 1, "activity: %s", 
                      (const char *[]){ [k_skaterift_menu]      = "menu",
                                        [k_skaterift_replay]    = "replay",
                                        [k_skaterift_ent_focus] = "ent_focus",
                                        [k_skaterift_default]   = "default",
-                                       [k_skaterift_world_map] = "world map"
                      } [skaterift.activity] );
-   player__debugtext( 1, "time_rate: %.4f", skaterift.time_rate );
+   player__debugtext( ctx, 1, "time_rate: %.4f", skaterift.time_rate );
 
-   player__debugtext( 2, "player" );
-   player__debugtext( 1, "angles: " PRINTF_v3f( localplayer.cam.angles ) );
+   player__debugtext( ctx, 2, "player" );
+   player__debugtext( ctx, 1, "angles: " PRINTF_v3f( localplayer.cam.angles ) );
 
    if( player_subsystems[ localplayer.subsystem ]->im_gui )
-      player_subsystems[ localplayer.subsystem ]->im_gui();
+      player_subsystems[ localplayer.subsystem ]->im_gui( ctx );
 
-   skaterift_replay_debug_info();
+   skaterift_replay_debug_info( ctx );
 }
 
 void player__setpos( v3f pos )
@@ -296,10 +297,10 @@ void player__clean_refs(void)
 
    world_static.challenge_target = NULL;
    world_static.challenge_timer = 0.0f;
-   world_static.focused_entity = 0;
    world_static.active_trigger_volume_count = 0;
    world_static.last_use = 0.0;
-   world_entity_unfocus();
+   world_entity_exit_modal();
+   world_entity_clear_focus();
 
    localplayer.boundary_hash ^= NETMSG_BOUNDARY_BIT;
 
@@ -329,6 +330,7 @@ void player__reset(void)
    localplayer.gate_waiting = NULL;
    localplayer.have_glider = 0;
    localplayer.glider_orphan = 0;
+   localplayer.drowned = 0;
 
    v3_copy( localplayer.rb.co, localplayer.cam_control.tpv_lpf );
    player__clean_refs();