10 static void skaterift_write_savedata_thread(void *_
){
11 FILE *fp
= fopen( "save.bkv", "wb" );
13 fwrite( savedata
.buf
, savedata
.len
, 1, fp
);
19 static void skaterift_write_savedata(void){
20 if( skaterift
.async_op
!= k_async_op_none
) return;
22 skaterift_begin_op( k_async_op_write_savedata
);
25 sav
.buf
= savedata
.buf
;
26 sav
.max
= sizeof(savedata
.buf
);
28 vg_msg_frame( &sav
, "player" );
30 if( localplayer
.board_view_slot
){
31 struct cache_board
*cache_ptr
= localplayer
.board_view_slot
;
32 if( cache_ptr
->reg_ptr
){
33 if( cache_ptr
->reg_ptr
->workshop_id
)
34 vg_msg_wkvu64( &sav
, "board", cache_ptr
->reg_ptr
->workshop_id
);
36 vg_msg_wkvstr( &sav
, "board", cache_ptr
->reg_ptr
->foldername
);
40 vg_msg_end_frame( &sav
);
41 savedata
.len
= sav
.len
;
42 vg_loader_start( skaterift_write_savedata_thread
, NULL
);
45 static void skaterift_read_savedata(void){
46 FILE *fp
= fopen( "save.bkv", "rb" );
48 savedata
.len
= fread( savedata
.buf
, 1, sizeof(savedata
.buf
), fp
);