X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=skaterift.c;h=3fec7e0e6a3161ab4dd792aecb223909cc0ede9c;hb=9eb3de757a997becb8406417a4bf613f4cb04900;hp=74e6f75f605236337d891d07a54c2b6ea82b8bc6;hpb=6929408e937dca64da707a2d61f8cdf6ab857e93;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index 74e6f75..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 ); @@ -235,13 +237,13 @@ VG_STATIC void vg_load(void) global_skateshop.pointcloud_world_id=1; skateshop_world_preview_loader_thread( mtzero ); /* HACK */ - vg_async_call( async_addon_reg_update, NULL, 0 ); vg_console_load_autos(); menu_link(); addon_mount_content_folder( k_addon_type_player, "playermodels", ".mdl" ); addon_mount_content_folder( k_addon_type_board, "boards", ".mdl" ); + addon_mount_content_folder( k_addon_type_world, "maps", ".mdl" ); addon_mount_workshop_items(); vg_async_call( async_addon_reg_update, NULL, 0 ); vg_async_stall(); @@ -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(); }