joystick_state( k_srjoystick_steer, steer );
if( glider_physics( steer ) ){
+ vg_info( "player fell off due to glider hitting ground\n" );
player__dead_transition( k_player_die_type_generic );
localplayer.glider_orphan = 1;
}
localplayer.cam_dist = 2.0f + v3_length( localplayer.rb.v )*0.2f;
}
+static void player_glide_animator_exchange( bitpack_ctx *ctx, void *data ){
+ struct player_glide_animator *animator = data;
+
+ bitpack_qv3f( ctx, 24, -1024.0f, 1024.0f, animator->root_co );
+ bitpack_qquat( ctx, animator->root_q );
+}
+
static void player_glide_im_gui(void){
player__debugtext( 1, "Nothing here" );
player__debugtext( 1, " lift: %.2f %.2f %.2f",
static void player_glide_bind(void);
static void player_glide_transition(void);
static bool glider_physics( v2f steer );
+static void player_glide_animator_exchange( bitpack_ctx *ctx, void *data );
struct player_subsystem_interface static player_subsystem_glide = {
.pre_update = player_glide_pre_update,
.animate = player_glide_animate,
.pose = player_glide_pose,
.post_animate = player_glide_post_animate,
+ .network_animator_exchange = player_glide_animator_exchange,
.im_gui = player_glide_im_gui,
.bind = player_glide_bind,
if( (v3_length2(state->trick_vel) >= 0.0001f ) &&
state->trick_time > 0.2f)
{
+ vg_info( "player fell off due to lack of skill\n" );
player__dead_transition( k_player_die_type_feet );
}
if( world->water.enabled ){
if( localplayer.rb.co[1]+0.25f < world->water.height ){
+ vg_info( "player fell off due to being in water\n" );
player__networked_sfx( k_player_subsystem_walk, 32,
k_player_walk_soundeffect_splash,
localplayer.rb.co, 1.0f );
v3_lerp( start_co, localplayer.rb.co, t, localplayer.rb.co );
rb_update_matrices( &localplayer.rb );
+ vg_info( "player fell of due to hitting head\n" );
player__dead_transition( k_player_die_type_head );
return;
}
f32 nforce = v3_length(normal_total);
if( nforce > 4.0f ){
if( nforce > 17.6f ){
+ vg_info( "player fell off due to hitting ground too hard\n" );
v3_muladds( localplayer.rb.v, normal_total, -1.0f, localplayer.rb.v );
player__dead_transition( k_player_die_type_feet );
return;
player__networked_sfx( k_player_subsystem_walk, 32,
k_player_walk_soundeffect_splash,
localplayer.rb.co, 1.0f );
+ vg_info( "player fell of due to walking into walker\n" );
player__dead_transition( k_player_die_type_generic );
return;
}
#define SR_NETWORKED
#define VG_AUDIO_FORCE_COMPRESSED
#define SDL_MAIN_HANDLED
-//#define SR_ALLOW_REWIND_HUB
+#define SR_ALLOW_REWIND_HUB
#ifndef VG_RELEASE
#define VG_DEVWINDOW
static void vg_gui(void){
if( skaterift.op == k_async_op_clientloading ) return;
+ if( k_tools_mode ){
+ ui_rect null;
+ ui_rect screen = { 0, 0, vg.window_x, vg.window_y };
+ ui_rect panel = { 0, 0, 1000, 700 };
+ ui_rect_center( screen, panel );
+ vg_ui.wants_mouse = 1;
+
+ ui_fill( panel, ui_colour( k_ui_bg+1 ) );
+ ui_outline( panel, 1, ui_colour( k_ui_bg+7 ), 0 );
+
+ ui_rect_pad( panel, (ui_px[2]){ 8, 8 } );
+
+ static i32 example;
+ ui_enum( panel, "example enum", vg_settings_vsync_enum, 3, &example );
+
+ static f32 val = 30.0f;
+ ui_slider( panel, "Slider", 0.0f, 100.0f, &val, NULL );
+
+ ui_dev_colourview();
+
+ static v4f colour = { 0.5f, 0.6f, 0.1f, 1.0f };
+ ui_colourpicker( panel, "hello", colour );
+
+ return;
+ }
+
+ if( k_light_editor )
+ imgui_world_light_edit( world_current_instance() );
+
vg_ui.tex_bg = gpipeline.fb_main->attachments[0].id;
render_fb_inverse_ratio( gpipeline.fb_main, vg_ui.bg_inverse_ratio );