X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=save.c;h=a8076c76a9f0fe3434eb7b1c55a2f07cd4d65639;hb=f2e2b3c37719f839bc130625ee0fcf4ef3179750;hp=ed869e67af7aa031f7b332fb063657a2cdd21171;hpb=c77e15a8dc7b976371a473bc8794cb55601d82f6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/save.c b/save.c index ed869e6..a8076c7 100644 --- a/save.c +++ b/save.c @@ -65,13 +65,15 @@ static void skaterift_read_addon_alias( vg_msg *msg, const char *key, alias->workshop_id = 0; alias->type = type; - vg_msg_cmd kv = vg_msg_seekkv( msg, key, 0 ); - if( kv.code == k_vg_msg_kvstring ){ - vg_strncpy( kv.value, alias->foldername, sizeof(alias->foldername), - k_strncpy_allow_cutoff ); + vg_msg_cmd kv; + if( vg_msg_getkvcmd( msg, key, &kv ) ){ + if( kv.code == k_vg_msg_kvstring ){ + vg_strncpy( kv.value, alias->foldername, sizeof(alias->foldername), + k_strncpy_allow_cutoff ); + } + else + vg_msg_cast( kv.value, kv.code, &alias->workshop_id, k_vg_msg_u64 ); } - else - alias->workshop_id = vg_msg_read_as_u64( &kv ); } static void skaterift_populate_world_savedata( savedata_file *file, @@ -89,9 +91,8 @@ static void skaterift_populate_world_savedata( savedata_file *file, skaterift_world_get_save_path( which, file->path ); - vg_msg sav = {0}; - sav.buf = file->buf; - sav.max = sizeof(file->buf); + vg_msg sav; + vg_msg_init( &sav, file->buf, sizeof(file->buf) ); if( which == k_world_purpose_hub ){ if( world_static.instances[0].status == k_world_status_loaded ) @@ -106,15 +107,14 @@ static void skaterift_populate_world_savedata( savedata_file *file, } } - file->len = sav.len; + file->len = sav.cur.co; } static void skaterift_populate_main_savedata( savedata_file *file ){ strcpy( file->path, str_skaterift_main_save ); - vg_msg sav = {0}; - sav.buf = file->buf; - sav.max = sizeof(file->buf); + vg_msg sav; + vg_msg_init( &sav, file->buf, sizeof(file->buf) ); vg_msg_frame( &sav, "player" ); { @@ -130,14 +130,14 @@ static void skaterift_populate_main_savedata( savedata_file *file ){ addon_reg *reg = world_static.addon_client; if( reg && (world_static.active_instance > 0) ){ skaterift_write_addon_alias( &sav, "alias", ®->alias ); - vg_msg_wkvu32( &sav, "index", world_static.active_instance ); - vg_msg_wkvnum( &sav, "position", k_vg_msg_float|k_vg_msg_32b, 3, - localplayer.rb.co ); } + vg_msg_wkvu32( &sav, "index", world_static.active_instance ); + vg_msg_wkvnum( &sav, "position", k_vg_msg_float|k_vg_msg_32b, 3, + localplayer.rb.co ); } vg_msg_end_frame( &sav ); - file->len = sav.len; + file->len = sav.cur.co; } static int skaterift_autosave( int async ){