X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=c2fc2664d0263c16d33f66e4c40d9452da4f2652;hb=4cc4130853138cb88531146e44d6981ec38bf862;hp=e639d05eb0deade48ee1cab867f830fe6d903967;hpb=188685bc8454ff40b733d9e9df8da45e3c2e2c39;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index e639d05..c2fc266 100644 --- a/skaterift.c +++ b/skaterift.c @@ -104,6 +104,9 @@ static void skaterift_restore_state(void){ kvsav.len = sav.len; kvsav.max = sizeof(sav.buf); + u32 board_reg_id = 0, + player_reg_id = 0; + vg_msg player = kvsav; if( vg_msg_seekframe( &player, "player", 0 ) ){ addon_alias q; @@ -111,21 +114,23 @@ static void skaterift_restore_state(void){ /* board */ skaterift_read_addon_alias( &player, "board", k_addon_type_board, &q ); u32 reg_id = addon_match( &q ); - if( reg_id != 0xffffffff ){ - localplayer.board_view_slot = - addon_cache_create_viewer( k_addon_type_board, reg_id ); - } + if( reg_id != 0xffffffff ) + board_reg_id = reg_id; + /* playermodel */ skaterift_read_addon_alias( &player, "playermodel", k_addon_type_player, &q ); reg_id = addon_match( &q ); - - if( reg_id == 0xffffffff ) reg_id = 0; - localplayer.playermodel_view_slot = - addon_cache_create_viewer( k_addon_type_player, reg_id ); + if( reg_id != 0xffffffff ) + player_reg_id = reg_id; } + localplayer.board_view_slot = + addon_cache_create_viewer( k_addon_type_board, board_reg_id ); + localplayer.playermodel_view_slot = + addon_cache_create_viewer( k_addon_type_player, player_reg_id ); + vg_msg world = kvsav; if( vg_msg_seekframe( &world, "world", 0 ) ){ addon_alias q; @@ -143,7 +148,7 @@ static void skaterift_restore_state(void){ }; skaterift_world_load_thread( &args ); - world_static.active_instance = vg_msg_seekkvu32( &world, "index", 0 ); + world_set_active_instance( vg_msg_seekkvu32( &world, "index", 0 ) ); world_static.active_trigger_volume_count = 0; localplayer.viewable_world = world_current_instance(); } @@ -299,7 +304,7 @@ VG_STATIC void vg_pre_update(void){ vg.time_rate = vg_smoothstepf( skaterift.time_rate ); player__pre_update( &localplayer ); - global_skateshop_preupdate(); + world_entity_focus_preupdate(); skaterift_replay_pre_update(); world_update( world_current_instance(), localplayer.rb.co ); @@ -469,8 +474,8 @@ VG_STATIC void render_scene_gate_subview(void){ } VG_STATIC void skaterift_composite_maincamera(void){ - camera_lerp( &localplayer.cam, &global_skateshop.cam, - vg_smoothstepf(global_skateshop.factive), &skaterift.cam ); + camera_lerp( &localplayer.cam, &world_static.focus_cam, + vg_smoothstepf(world_static.focus_strength), &skaterift.cam ); if( skaterift.activity == k_skaterift_replay ){ skaterift_get_replay_camera( &skaterift.cam );