X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=3fec7e0e6a3161ab4dd792aecb223909cc0ede9c;hb=9eb3de757a997becb8406417a4bf613f4cb04900;hp=d8d91078357af8a8db70af7190cd7b991841d848;hpb=960d442e442efab5e1dff05ad3d6613bf228dd71;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index d8d9107..3fec7e0 100644 --- a/skaterift.c +++ b/skaterift.c @@ -144,8 +144,9 @@ static void skaterift_restore_state(void){ localplayer.viewable_world = world_current_instance(); vg_msg_cmd position = vg_msg_seekkv( &world, "position", 0 ); - vg_msg_convert_num( &position, k_vg_msg_float|k_vg_msg_32b, 3, - localplayer.rb.co ); + v3f pos; + vg_msg_convert_num( &position, k_vg_msg_float|k_vg_msg_32b, 3, pos ); + player__setpos( &localplayer, pos ); } } } @@ -174,6 +175,7 @@ VG_STATIC void vg_load(void) vg_loader_step( load_playermodels, NULL ); /* player setup */ + local_replay_init( (1024*1024*1)/2 ); player__create( &localplayer ); player_avatar_load( &localplayer_avatar, "models/ch_none.mdl" ); player__use_avatar( &localplayer, &localplayer_avatar ); @@ -292,8 +294,7 @@ VG_STATIC void vg_update_fixed(void) vehicle_update_fixed(); } -VG_STATIC void vg_update_post(void) -{ +VG_STATIC void vg_update_post(void){ if( skaterift.op == k_async_op_clientloading ) return; player__post_update( &localplayer ); @@ -319,7 +320,11 @@ VG_STATIC void vg_update_post(void) v3_copy( localplayer.rb.v, vg_audio.external_lister_velocity ); audio_unlock(); - vg.time_rate = 1.0f-menu.factive; + f32 target = 1.0f-(f32)(menu.active||k_replay_test); + skaterift.time_rate = vg_lerpf( skaterift.time_rate, target, + vg.time_frame_delta * 6.0f ); + + vg.time_rate = skaterift.time_rate; vehicle_update_post(); } @@ -349,9 +354,12 @@ VG_STATIC void present_view_with_post_processing(void) (vg.time_frame_delta*60.0) ); shader_blitblur_uInverseRatio( inverse ); - v2f menu_blurring; - v2_muls( (v2f){ 0.04f, 0.001f }, menu.factive, menu_blurring ); - shader_blitblur_uOverrideDir( menu_blurring ); + v2f override; + if( menu.active ) + v2_muls( (v2f){ 0.04f, 0.001f }, 1.0f-skaterift.time_rate, override ); + else + v2_zero( override ); + shader_blitblur_uOverrideDir( override ); render_fb_bind_texture( gpipeline.fb_main, 0, 0 ); render_fb_bind_texture( gpipeline.fb_main, 1, 1 ); @@ -504,11 +512,10 @@ VG_STATIC void vg_gui(void) menu_render(); } -#if 0 player__im_gui( &localplayer ); -#endif world_instance *world = world_current_instance(); + replay_imgui( &localplayer ); workshop_form_gui(); render_view_framebuffer_ui(); }