X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=workshop.c;h=5b0d5855e213ebaa0e61b2fc7eb068ec5b707bd0;hb=8090b8da9ce1397ba47d7e2d91b4f1716f708f25;hp=6cb6b6fade73050d2aeb45e6170a9aafa5e5fd64;hpb=333430b27b5f9f73cbe9ad7921a4735aaff444f1;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/workshop.c b/workshop.c index 6cb6b6f..5b0d585 100644 --- a/workshop.c +++ b/workshop.c @@ -7,6 +7,7 @@ #include "vg/vg.h" #include "vg/vg_tex.h" #include "vg/vg_msg.h" +#include "vg/vg_binstr.h" #include "ent_skateshop.h" #include "vg/vg_steam_auth.h" @@ -314,10 +315,8 @@ static void _workshop_form_submit_thread( void *data ) * Create the metadata file * -----------------------------------------------------------------------*/ u8 descriptor_buf[ 512 ]; - vg_msg descriptor = {0}; - descriptor.buf = descriptor_buf; - descriptor.max = sizeof(descriptor_buf); - + vg_msg descriptor; + vg_msg_init( &descriptor, descriptor_buf, sizeof(descriptor_buf) ); vg_linear_clear( vg_mem.scratch ); /* short description */ @@ -329,10 +328,10 @@ static void _workshop_form_submit_thread( void *data ) vg_msg_end_frame( &descriptor ); //vg_msg_wkvstr( &descriptor, "location", "USA" ); - char *short_descriptor_str = vg_linear_alloc( vg_mem.scratch, - vg_align8(descriptor.cur*2+1)); - vg_bin_str( descriptor_buf, short_descriptor_str, descriptor.cur ); - short_descriptor_str[descriptor.cur*2] = '\0'; + char *short_descriptor_str = + vg_linear_alloc( vg_mem.scratch, vg_align8(descriptor.cur.co*2+1)); + vg_bin_str( descriptor_buf, short_descriptor_str, descriptor.cur.co ); + short_descriptor_str[descriptor.cur.co*2] = '\0'; vg_info( "binstr: %s\n", short_descriptor_str ); vg_dir dir; @@ -377,7 +376,7 @@ static void _workshop_form_submit_thread( void *data ) workshop_form.op = k_workshop_op_none; return; } - fwrite( descriptor_buf, descriptor.cur, 1, fp ); + fwrite( descriptor_buf, descriptor.cur.co, 1, fp ); fclose( fp ); /* Save the preview @@ -678,19 +677,15 @@ static void workshop_op_download_and_view_submission( int result_index ) u32 len = strlen(metadata_str); vg_info( "Metadata: %s\n", metadata_str ); vg_str_bin( metadata_str, metadata_buf, len ); - vg_msg root = {0}; - root.buf = metadata_buf; - root.len = len/2; - root.max = len/2; + vg_msg msg; + vg_msg_init( &msg, metadata_buf, len/2 ); - vg_msg workshop = root; - if( vg_msg_seekframe( &workshop, "workshop", k_vg_msg_first )){ - u32 type = vg_msg_seekkvu32( &workshop, "type", k_vg_msg_first ); + if( vg_msg_seekframe( &msg, "workshop" )){ + u32 type = vg_msg_getkvu32( &msg, "type", 0 ); workshop_form.submission.type = type; workshop_form.submission.submission_type_selection = type; - const char *kv_folder = vg_msg_seekkvstr( &workshop, "folder", - k_vg_msg_first ); + const char *kv_folder = vg_msg_getkvstr( &msg, "folder" ); if( kv_folder ){ vg_strncpy( kv_folder, workshop_form.addon_folder, sizeof(workshop_form.addon_folder), @@ -878,7 +873,7 @@ static void workshop_render_player_preview(void){ glEnable( GL_DEPTH_TEST ); glDisable( GL_BLEND ); - struct skeleton *sk = &localplayer.playeravatar->sk; + struct skeleton *sk = &localplayer.skeleton; player_pose res; res.type = k_player_pose_type_ik;