#define SAVE_C
struct {
- u8 buf[ 1024 ];
+ u8 buf[1024];
u32 len;
}
static savedata;
+static void skaterift_write_savedata_thread(void *){
+ FILE *fp = fopen( "save.bkv", "wb" );
+ if( fp ){
+ fwrite( savedata.buf, savedata.len, 1, fp );
+ fclose( fp );
+ }
+ skaterift_end_op();
+}
+
static void skaterift_write_savedata(void){
+ if( skaterift.async_op != k_async_op_none ) return;
+
+ skaterift_begin_op( k_async_op_write_savedata );
+
vg_msg sav = {0};
sav.buf = savedata.buf;
sav.max = sizeof(savedata.buf);
vg_msg_end_frame( &sav );
savedata.len = sav.len;
-
- FILE *fp = fopen( "save.bkv", "wb" );
- if( fp ){
- fwrite( savedata.buf, sav.len, 1, fp );
- fclose( fp );
- }
+ vg_loader_start( skaterift_write_savedata_thread, NULL );
}
static void skaterift_read_savedata(void){
k_async_op_world_load_preview,
k_async_op_board_scan,
k_async_op_board_load,
+ k_async_op_write_savedata,
k_workshop_form_op_loading_model,
k_workshop_form_op_downloading_submission,
k_workshop_form_op_publishing_update,