13 static void skaterift_write_savedata_thread(void *_
){
14 FILE *fp
= fopen( "save.bkv", "wb" );
16 fwrite( savedata
.buf
, savedata
.len
, 1, fp
);
22 static void skaterift_write_savedata(void){
23 if( skaterift
.async_op
!= k_async_op_none
) return;
25 skaterift_begin_op( k_async_op_write_savedata
);
28 sav
.buf
= savedata
.buf
;
29 sav
.max
= sizeof(savedata
.buf
);
31 vg_msg_frame( &sav
, "player" );
33 struct addon_cache
*cache
= &addon_system
.cache
[k_workshop_file_type_board
];
35 if( localplayer
.board_view_slot
){
36 addon_cache_entry
*entry
= vg_pool_item( &cache
->pool
,
37 localplayer
.board_view_slot
);
40 if( entry
->reg_ptr
->workshop_id
)
41 vg_msg_wkvu64( &sav
, "board", entry
->reg_ptr
->workshop_id
);
43 vg_msg_wkvstr( &sav
, "board", entry
->reg_ptr
->foldername
);
47 vg_msg_end_frame( &sav
);
48 savedata
.len
= sav
.len
;
49 vg_loader_start( skaterift_write_savedata_thread
, NULL
);
52 static void skaterift_read_savedata(void){
53 FILE *fp
= fopen( "save.bkv", "rb" );
55 savedata
.len
= fread( savedata
.buf
, 1, sizeof(savedata
.buf
), fp
);