+}
+
+static void async_call_ready( void *payload, u32 size ){
+ skaterift.op = k_async_op_none;
+}
+
+static void skaterift_restore_state(void){
+ vg_msg sav = {0};
+ sav.buf = savedata.buf;
+ sav.len = savedata.len;
+ sav.max = sizeof(savedata.buf);
+
+ vg_msg player = sav;
+ if( vg_msg_seekframe( &player, "player", 0 ) ){
+ addon_alias q;
+
+ /* 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 );
+ }
+
+ /* 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 );
+ }