X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=save.c;h=b163cb46ed8fc903dab2ca91d83e2629246ecbd3;hb=fdd41609e59c7df548682b25001f0015dc1acbea;hp=76cfb3cdade24194da2dc6583cd0a50c0745ebb5;hpb=dbdb031ee290892468d24b6dd576fe62c47e778a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/save.c b/save.c index 76cfb3c..b163cb4 100644 --- a/save.c +++ b/save.c @@ -2,12 +2,25 @@ #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); @@ -26,12 +39,7 @@ static void skaterift_write_savedata(void){ 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){