VG_VAR_F32( k_cam_punch );
VG_VAR_F32( k_cam_shake_strength );
VG_VAR_F32( k_cam_shake_trackspeed );
+ VG_VAR_I32( k_player_debug_info, flags=VG_VAR_PERSISTENT );
vg_console_reg_var( "cinema", &k_cinema, k_var_dtype_f32, 0 );
vg_console_reg_var( "cinema_fixed", &k_cinema_fixed, k_var_dtype_i32, 0 );
PLAYER_API
void player__debugtext( int size, const char *fmt, ... )
{
-#if 0
char buffer[ 1024 ];
va_list args;
vsnprintf( buffer, 1024, fmt, args );
va_end( args );
- ui_text( vg_uictx.cursor, buffer, size, k_text_align_right );
- vg_uictx.cursor[1] += 14*size;
-#endif
+ ui_text( g_player_debugger, buffer, size, k_ui_align_left, 0 );
+ g_player_debugger[1] += size*16;
}
/*
d[0] = atan2f( fwd_dir[2], fwd_dir[0] );
}
-PLAYER_API void player__im_gui( player_instance *player )
-{
-#if 0
- vg_uictx.cursor[0] = vg.window_x - 200;
- vg_uictx.cursor[1] = 0;
- vg_uictx.cursor[2] = 200;
- vg_uictx.cursor[3] = 200;
+PLAYER_API void player__im_gui( player_instance *player ){
+ if( !k_player_debug_info ) return;
+
+ ui_rect box = {
+ vg.window_x - 300,
+ 0,
+ 300,
+ vg.window_y
+ };
- struct ui_vert *b = ui_fill_rect( vg_uictx.cursor, 0x70000000 );
+ ui_fill( box, (ui_colour(k_ui_bg)&0x00ffffff)|0x50000000 );
- vg_uictx.cursor[0] = vg.window_x;
+ g_player_debugger[0] = box[0];
+ g_player_debugger[1] = 0;
+ g_player_debugger[2] = 300;
+ g_player_debugger[3] = 16;
player__debugtext( 1, "angles: " PRINTF_v3f( player->cam.angles ) );
player__debugtext( 1, "basis: " PRINTF_v4f( player->qbasis ) );
if( _player_im_gui[ player->subsystem ] )
_player_im_gui[ player->subsystem ]( player );
- b[2].co[1] = vg_uictx.cursor[1];
- b[3].co[1] = vg_uictx.cursor[1];
-#endif
+ replay_debug_info( player );
}
VG_STATIC void global_skateshop_exit(void);
-PLAYER_API void player__spawn( player_instance *player,
- ent_spawn *rp )
-{
- v3_copy( rp->transform.co, player->rb.co );
+
+PLAYER_API void player__setpos( player_instance *player, v3f pos ){
+ v3_copy( pos, player->rb.co );
v3_zero( player->rb.v );
+ rb_update_transform( &player->rb );
+}
+
+PLAYER_API void player__spawn( player_instance *player, ent_spawn *rp ){
+ player__setpos( player, rp->transform.co );
v3_zero( player->rb.w );
q_identity( player->rb.q );
rb_update_transform( &player->rb );
}
-PLAYER_API void player__kill( player_instance *player )
-{
+PLAYER_API void player__kill( player_instance *player ){
}
#include "player_drive.c"
#include "player_render.c"
#include "player_ragdoll.c"
+#include "player_replay.c"
#endif /* PLAYER_C */