From: hgn Date: Sun, 11 Jun 2023 16:53:26 +0000 (+0100) Subject: upgrade to vg_msgv2 X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=cb1d2f9fbec8a274aaf7a80c5fb552b928148b1e;hp=c2ee05fe23699fd1de7e1d8259b9bc272b232058;p=carveJwlIkooP6JGAAIwe30JlM.git upgrade to vg_msgv2 --- diff --git a/addon.c b/addon.c index 504904f..fde9f9d 100644 --- a/addon.c +++ b/addon.c @@ -157,14 +157,14 @@ VG_STATIC addon_reg *addon_mount_workshop_folder( PublishedFileId_t workshop_id, } enum workshop_file_type type = k_workshop_file_type_none; - vg_msg root; - vg_msg_init( &root, reg->metadata, reg->metadata_len ); + vg_msg root = {0}; + root.buf = reg->metadata; + root.len = reg->metadata_len; + root.max = sizeof(reg->metadata); + vg_msg workshop = root; if( vg_msg_seekframe( &workshop, "workshop", k_vg_msg_first )){ - vg_msg_cmd kv_type = vg_msg_seekkv( &workshop, "type", k_vg_msg_first ); - if( kv_type.code & k_vg_msg_code_integer ){ - type = kv_type.value._u32; - } + type = vg_msg_seekkvu32( &workshop, "type", k_vg_msg_first ); } if( type == k_workshop_file_type_none ){ @@ -209,8 +209,10 @@ VG_STATIC addon_reg *addon_mount_local_addon( const char *folder, if( reg->metadata_len == 0 ){ /* create our own content commands */ - vg_msg msg; - vg_msg_init( &msg, reg->metadata, sizeof(reg->metadata) ); + vg_msg msg = {0}; + msg.buf = reg->metadata; + msg.len = 0; + msg.max = sizeof(reg->metadata); u32 content_count = 0; diff --git a/boards_src/skaterift_fract/addon.inf b/boards_src/skaterift_fract/addon.inf index 745e972..3c85c64 100644 Binary files a/boards_src/skaterift_fract/addon.inf and b/boards_src/skaterift_fract/addon.inf differ diff --git a/boards_src/skaterift_licco/addon.inf b/boards_src/skaterift_licco/addon.inf index f96a599..0cb8f45 100644 Binary files a/boards_src/skaterift_licco/addon.inf and b/boards_src/skaterift_licco/addon.inf differ diff --git a/boards_src/skaterift_long/addon.inf b/boards_src/skaterift_long/addon.inf index 4e00fd3..daf6b76 100644 Binary files a/boards_src/skaterift_long/addon.inf and b/boards_src/skaterift_long/addon.inf differ diff --git a/boards_src/skaterift_shark/addon.inf b/boards_src/skaterift_shark/addon.inf index f9be7a0..7f8c3fc 100644 Binary files a/boards_src/skaterift_shark/addon.inf and b/boards_src/skaterift_shark/addon.inf differ diff --git a/boards_src/skaterift_spiral/addon.inf b/boards_src/skaterift_spiral/addon.inf index fd1733b..6cc3ef5 100644 Binary files a/boards_src/skaterift_spiral/addon.inf and b/boards_src/skaterift_spiral/addon.inf differ diff --git a/boards_src/skaterift_striped/addon.inf b/boards_src/skaterift_striped/addon.inf index 40dd0bf..2c2ba4e 100644 Binary files a/boards_src/skaterift_striped/addon.inf and b/boards_src/skaterift_striped/addon.inf differ diff --git a/build.c b/build.c index 558299b..3b82a01 100644 --- a/build.c +++ b/build.c @@ -67,95 +67,85 @@ void build_game( enum compiler compiler ) vg_build_syscall( "mkdir -p %s/cfg", vg_compiler.build_dir ); u8 descriptor_buf[ 512 ]; - vg_msg descriptor; { - vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg descriptor = {0}; + descriptor.buf = descriptor_buf; + descriptor.max = sizeof(descriptor_buf); vg_msg_frame( &descriptor, "workshop" ); vg_msg_wkvstr( &descriptor, "title", "Longboard" ); vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); - vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board ); vg_msg_end_frame( &descriptor ); vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); write_msg( &descriptor, "boards_src/skaterift_long/addon.inf" ); } { - vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg descriptor = {0}; + descriptor.buf = descriptor_buf; + descriptor.max = sizeof(descriptor_buf); vg_msg_frame( &descriptor, "workshop" ); vg_msg_wkvstr( &descriptor, "title", "Fractal" ); vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); - vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board ); vg_msg_end_frame( &descriptor ); vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); write_msg( &descriptor, "boards_src/skaterift_fract/addon.inf" ); } { - vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg descriptor = {0}; + descriptor.buf = descriptor_buf; + descriptor.max = sizeof(descriptor_buf); vg_msg_frame( &descriptor, "workshop" ); vg_msg_wkvstr( &descriptor, "title", "Striped" ); vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); - vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board ); vg_msg_end_frame( &descriptor ); vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); write_msg( &descriptor, "boards_src/skaterift_striped/addon.inf" ); } { - vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg descriptor = {0}; + descriptor.buf = descriptor_buf; + descriptor.max = sizeof(descriptor_buf); vg_msg_frame( &descriptor, "workshop" ); vg_msg_wkvstr( &descriptor, "title", "Licco" ); vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); - vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board); vg_msg_end_frame( &descriptor ); vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); write_msg( &descriptor, "boards_src/skaterift_licco/addon.inf" ); } { - vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg descriptor = {0}; + descriptor.buf = descriptor_buf; + descriptor.max = sizeof(descriptor_buf); vg_msg_frame( &descriptor, "workshop" ); vg_msg_wkvstr( &descriptor, "title", "Hypno" ); vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); - vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board ); vg_msg_end_frame( &descriptor ); vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); write_msg( &descriptor, "boards_src/skaterift_spiral/addon.inf" ); } { - vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg descriptor = {0}; + descriptor.buf = descriptor_buf; + descriptor.max = sizeof(descriptor_buf); vg_msg_frame( &descriptor, "workshop" ); vg_msg_wkvstr( &descriptor, "title", "Shark" ); vg_msg_wkvstr( &descriptor, "author", "Skaterift" ); - vg_msg_wkvuint(&descriptor, "type", u32 value=k_workshop_file_type_board); + vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board ); vg_msg_end_frame( &descriptor ); vg_msg_wkvstr( &descriptor, "content", "board.mdl" ); write_msg( &descriptor, "boards_src/skaterift_shark/addon.inf" ); } - /* method 2 */ -#if 0 - vg_info( "TRYING OUT METHOD 2 BINGO BONGO\n" ); - vg_msg root; - vg_msg_init( &root, descriptor_buf, descriptor.cur ); - - vg_msg workshop = root; - if( vg_msg_seekframe( &workshop, "workshop", k_vg_msg_first )){ - const char *err = vg_msg_seekkvstr(&workshop,"NOT HERE",k_vg_msg_first); - const char *author = vg_msg_seekkvstr(&workshop,"author",k_vg_msg_first); - const char *title = vg_msg_seekkvstr(&workshop,"title",k_vg_msg_first); - - vg_info( "TITLE: %s\n", title ); - vg_info( "AUTHOR: %s\n", author ); - vg_info( "and error code is: %s\n", err ); - } - - const char *content = vg_msg_seekkvstr(&root, "content", k_vg_msg_first); - vg_info( "CONTENT: %s\n", content ); -#endif - vg_build(); compiled_something = 1; } diff --git a/common.h b/common.h index 7823e1a..6f0c2f9 100644 --- a/common.h +++ b/common.h @@ -5,10 +5,4 @@ #ifndef COMMON_H #define COMMON_H -#define VG_TIMESTEP_FIXED (1.0/60.0) -#define VG_3D -#define VG_GAME - -#include "vg/vg.h" - #endif /* COMMON_H */ diff --git a/conf.h b/conf.h index e00c42b..f83d5bd 100644 --- a/conf.h +++ b/conf.h @@ -4,29 +4,9 @@ #define VG_GAME #include "vg/vg.h" -#define SKATERIFT_APPID 2103940 - -VG_STATIC f32 cl_fov = 0.86f, - cl_blur_strength = 0.3f; -VG_STATIC i32 cl_blur = 1, - cl_playermdl_id = 0, - cl_invert_y = 0; - -static f32 cl_cinema = 0; -static i32 cl_cinema_fixed = 0; - -VG_STATIC void g_conf_init(void) -{ - VG_VAR_F32( cl_blur_strength, flags=VG_VAR_PERSISTENT ); - VG_VAR_I32( cl_playermdl_id, flags=VG_VAR_PERSISTENT ); - - vg_console_reg_var( "blur_effect", &cl_blur, - k_var_dtype_i32, VG_VAR_PERSISTENT ); - vg_console_reg_var( "invert_y", &cl_invert_y, - k_var_dtype_i32, VG_VAR_PERSISTENT ); - vg_console_reg_var( "fov", &cl_fov, k_var_dtype_f32, VG_VAR_PERSISTENT ); - vg_console_reg_var( "cinema", &cl_cinema, k_var_dtype_f32, 0 ); - vg_console_reg_var( "cinema_fixed", &cl_cinema_fixed, k_var_dtype_i32, 0 ); +VG_STATIC i32 k_playermdl_id = 0; +VG_STATIC void conf_init(void){ + VG_VAR_I32( k_playermdl_id, flags=VG_VAR_PERSISTENT ); /* TODO: .sav */ } #endif /* CONF_H */ diff --git a/ent_skateshop.c b/ent_skateshop.c index 7898f58..99f9a70 100644 --- a/ent_skateshop.c +++ b/ent_skateshop.c @@ -145,12 +145,13 @@ VG_STATIC void workshop_visibile_load_loop(void) /* continue with the request */ SDL_AtomicUnlock( &global_skateshop.sl_cache_access ); - cache_ptr->reg_ptr = get_addon_from_index( k_workshop_file_type_board, - cache_ptr->reg_index ); + addon_reg *reg = get_addon_from_index( k_workshop_file_type_board, + cache_ptr->reg_index ); + cache_ptr->reg_ptr = reg; vg_str folder; vg_strnull( &folder, path_buf, 4096 ); - if( !addon_get_content_folder( cache_ptr->reg_ptr, &folder ) ) + if( !addon_get_content_folder( reg, &folder ) ) goto file_is_broken; @@ -159,9 +160,11 @@ VG_STATIC void workshop_visibile_load_loop(void) vg_str content_path = folder; - vg_msg root; - vg_msg_init( &root, cache_ptr->reg_ptr->metadata, - cache_ptr->reg_ptr->metadata_len ); + + vg_msg root = {0}; + root.buf = reg->metadata; + root.len = reg->metadata_len; + root.max = sizeof(reg->metadata); const char *kv_content = vg_msg_seekkvstr( &root, "content", 0 ); if( kv_content ){ @@ -459,21 +462,21 @@ VG_STATIC void global_skateshop_preupdate(void) gui_helper_action( button_display_string( k_srbind_maccept ), "pick" ); if( button_down( k_srbind_mleft ) ){ - if( cl_playermdl_id > 0 ){ - cl_playermdl_id --; + if( k_playermdl_id > 0 ){ + k_playermdl_id --; } else{ - cl_playermdl_id = 2; /* HACK */ + k_playermdl_id = 2; /* HACK */ } temp_update_playermodel(); /* HACK */ } if( button_down( k_srbind_mright ) ){ - if( cl_playermdl_id+1 < 3 ){ - cl_playermdl_id ++; + if( k_playermdl_id+1 < 3 ){ + k_playermdl_id ++; } else{ - cl_playermdl_id = 0; /* HACK */ + k_playermdl_id = 0; /* HACK */ } temp_update_playermodel(); /* HACK */ /*lol*/ @@ -686,8 +689,10 @@ fade_out:; global_skateshop.render.item_title = ""; global_skateshop.render.item_desc = ""; addon_reg *reg = cache_ptr->reg_ptr; - vg_msg root; - vg_msg_init( &root, reg->metadata, reg->metadata_len ); + vg_msg root = {0}; + root.buf = reg->metadata; + root.len = reg->metadata_len; + root.max = sizeof(reg->metadata); vg_msg workshop = root; if( vg_msg_seekframe( &workshop, "workshop", 0 ) ){ @@ -749,8 +754,10 @@ VG_STATIC void skateshop_render_worldshop(void) addon_reg *reg = get_addon_from_index( k_workshop_file_type_world, global_skateshop.selected_world_id ); - vg_msg root; - vg_msg_init( &root, reg->metadata, reg->metadata_len ); + vg_msg root = {0}; + root.buf = reg->metadata; + root.len = reg->metadata_len; + root.max = sizeof(reg->metadata); vg_msg workshop = root; if( vg_msg_seekframe( &workshop, "workshop", 0 ) ){ global_skateshop.render.world_title = vg_msg_seekkvstr( &workshop, diff --git a/player.c b/player.c index e000c51..12d30e9 100644 --- a/player.c +++ b/player.c @@ -40,6 +40,11 @@ VG_STATIC void player_init(void) VG_VAR_F32( k_cam_punch ); VG_VAR_F32( k_cam_shake_strength ); VG_VAR_F32( k_cam_shake_trackspeed ); + + vg_console_reg_var( "cinema", &k_cinema, k_var_dtype_f32, 0 ); + vg_console_reg_var( "cinema_fixed", &k_cinema_fixed, k_var_dtype_i32, 0 ); + vg_console_reg_var( "invert_y", &k_invert_y, + k_var_dtype_i32, VG_VAR_PERSISTENT ); } PLAYER_API diff --git a/player.h b/player.h index 3039bd7..1881705 100644 --- a/player.h +++ b/player.h @@ -13,6 +13,10 @@ #define PLAYER_REWIND_FRAMES 60*4 #define RESET_MAX_TIME 45.0 +static i32 k_cinema_fixed = 0; +static f32 k_cinema = 0.0f; +static i32 k_invert_y = 0; + struct player_instance { /* transform definition */ diff --git a/player_common.c b/player_common.c index b551875..169cbf4 100644 --- a/player_common.c +++ b/player_common.c @@ -119,8 +119,8 @@ VG_STATIC void player__cam_iterate( player_instance *player ) vg.time_frame_delta * 8.0f, player->tpv_offset_smooth ); /* fov -- simple blend */ - float fov_skate = vg_lerpf( 97.0f, 135.0f, cl_fov ), - fov_walk = vg_lerpf( 90.0f, 110.0f, cl_fov ); + float fov_skate = vg_lerpf( 97.0f, 135.0f, k_fov ), + fov_walk = vg_lerpf( 90.0f, 110.0f, k_fov ); player->cam.fov = vg_lerpf( fov_walk, fov_skate, player->camera_type_blend ); @@ -241,9 +241,9 @@ VG_STATIC void player__cam_iterate( player_instance *player ) player->cam_override_strength ); - if( cl_cinema >= 0.0001f ){ + if( k_cinema >= 0.0001f ){ ent_camera *cam = NULL; - f32 min_dist = cl_cinema; + f32 min_dist = k_cinema; world_instance *world = player->viewable_world; for( u32 i=0; ient_camera); i++ ){ @@ -261,7 +261,7 @@ VG_STATIC void player__cam_iterate( player_instance *player ) player->cam.fov = cam->fov; v3_copy( cam->transform.co, player->cam.pos ); v3f v0; - if( cl_cinema_fixed ) + if( k_cinema_fixed ) mdl_transform_vector( &cam->transform, (v3f){0.0f,-1.0f,0.0f}, v0 ); else v3_sub( player->rb.co, cam->transform.co, v0 ); m3x3_mulv( player->invbasis, v0, v0 ); @@ -283,7 +283,7 @@ VG_STATIC void player_look( player_instance *player, v3f angles ) v2f mouse_input; v2_copy( vg.mouse_delta, mouse_input ); - if( cl_invert_y ) mouse_input[1] *= -1.0f; + if( k_invert_y ) mouse_input[1] *= -1.0f; v2_muladds( angles, mouse_input, 0.0025f * sensitivity, angles ); v2f jlook; @@ -291,7 +291,7 @@ VG_STATIC void player_look( player_instance *player, v3f angles ) angles[0] += jlook[0] * vg.time_delta * 4.0f * sensitivity; float input_y = jlook[1] * vg.time_delta * 4.0f; - if( cl_invert_y ) input_y *= -1.0f; + if( k_invert_y ) input_y *= -1.0f; angles[1] += input_y * sensitivity; angles[1] = vg_clampf( angles[1], -VG_PIf*0.5f, VG_PIf*0.5f ); diff --git a/render.h b/render.h index 6b956de..751ca1b 100644 --- a/render.h +++ b/render.h @@ -16,6 +16,11 @@ #ifndef RENDER_H #define RENDER_H +static f32 k_render_scale = 1.0f; +static i32 k_blur_effect = 1; +static f32 k_blur_strength = 0.3f; +static f32 k_fov = 0.86f; + typedef struct framebuffer framebuffer; /* @@ -29,11 +34,8 @@ VG_STATIC struct pipeline{ *fb_water_beneath, *fb_workshop_preview; int ready; - - float view_render_scale, - water_render_scale; } -gpipeline = { .view_render_scale = 1.0f }; +gpipeline; struct framebuffer{ const char *display_name; @@ -231,8 +233,8 @@ VG_STATIC void render_fb_bind( framebuffer *fb, int use_scaling ) render_fb_get_current_res( fb, &x, &y ); if( use_scaling ){ - x = gpipeline.view_render_scale*(float)x; - y = gpipeline.view_render_scale*(float)y; + x = k_render_scale*(float)x; + y = k_render_scale*(float)y; x = VG_MAX( 16, x ); y = VG_MAX( 16, y ); @@ -501,8 +503,7 @@ VG_STATIC void render_fb_allocate( struct framebuffer *fb ) */ VG_STATIC void render_fb_resize(void) { - if( !gpipeline.ready ) - return; + if( !gpipeline.ready ) return; for( int i=0; imetadata, sizeof(spawn->metadata) ); - vg_msg_frame( &msg, "workshop" ); - vg_msg_wkvstr( &msg, "title", "Understate DIY" ); - vg_msg_end_frame( &msg ); - vg_msg_wkvstr( &msg, "location", "USA" ); - spawn->metadata_len = msg.cur; + { + vg_msg msg = {0}; + msg.buf = spawn->metadata; + msg.max = sizeof(spawn->metadata); + vg_msg_frame( &msg, "workshop" ); + vg_msg_wkvstr( &msg, "title", "Understate DIY" ); + vg_msg_end_frame( &msg ); + vg_msg_wkvstr( &msg, "location", "USA" ); + spawn->metadata_len = msg.cur; + } /* mtzero island */ addon_reg *mtzero = addon_mount_local_addon( "maps/mp_mtzero", k_workshop_file_type_world, ".mdl" ); - vg_msg_init( &msg, mtzero->metadata, sizeof(mtzero->metadata) ); - vg_msg_frame( &msg, "workshop" ); - vg_msg_wkvstr( &msg, "title", "Mt.Zero Island" ); - vg_msg_end_frame( &msg ); - vg_msg_wkvstr( &msg, "location", "Australia" ); - mtzero->metadata_len = msg.cur; + { + vg_msg msg = {0}; + msg.buf = mtzero->metadata; + msg.max = sizeof(mtzero->metadata); + vg_msg_frame( &msg, "workshop" ); + vg_msg_wkvstr( &msg, "title", "Mt.Zero Island" ); + vg_msg_end_frame( &msg ); + vg_msg_wkvstr( &msg, "location", "Australia" ); + mtzero->metadata_len = msg.cur; + } + global_skateshop.selected_world_id=1; global_skateshop.pointcloud_world_id=1; skateshop_preview_loader_thread( mtzero ); /* HACK */ @@ -287,11 +295,11 @@ VG_STATIC void present_view_with_post_processing(void) v2f inverse; render_fb_inverse_ratio( gpipeline.fb_main, inverse ); - if( cl_blur ){ + if( k_blur_effect ){ shader_blitblur_use(); shader_blitblur_uTexMain( 0 ); shader_blitblur_uTexMotion( 1 ); - shader_blitblur_uBlurStrength( cl_blur_strength / + shader_blitblur_uBlurStrength( k_blur_strength / (vg.time_frame_delta*60.0) ); shader_blitblur_uInverseRatio( inverse ); diff --git a/skaterift.h b/skaterift.h index a139476..011985e 100644 --- a/skaterift.h +++ b/skaterift.h @@ -1,6 +1,14 @@ #ifndef SKATERIFT_H #define SKATERIFT_H +#define SKATERIFT_APPID 2103940 + +#define VG_TIMESTEP_FIXED (1.0/60.0) +#define VG_3D +#define VG_GAME +#define VG_MSG_V1_SUPPORT +#include "vg/vg.h" + #include "common.h" #include "world.h" #include "addon.h" diff --git a/workshop.c b/workshop.c index 8c24e03..1967e75 100644 --- a/workshop.c +++ b/workshop.c @@ -321,23 +321,26 @@ VG_STATIC void _workshop_form_submit_thread( void *data ) * Create the metadata file * -----------------------------------------------------------------------*/ u8 descriptor_buf[ 512 ]; - vg_msg descriptor; - vg_msg_init( &descriptor, descriptor_buf, 512 ); + vg_msg descriptor = {0}; + descriptor.buf = descriptor_buf; + descriptor.max = sizeof(descriptor_buf); + + vg_linear_clear( vg_mem.scratch ); + + /* short description */ vg_msg_frame( &descriptor, "workshop" ); vg_msg_wkvstr( &descriptor, "title", workshop_form.submission.title ); //vg_msg_wkvstr( &descriptor, "author", "unknown" ); - vg_msg_wkvuint( &descriptor, "type", - u32 value=workshop_form.submission.type); + vg_msg_wkvu32( &descriptor, "type", workshop_form.submission.type ); vg_msg_wkvstr( &descriptor, "folder", workshop_form.addon_folder ); vg_msg_end_frame( &descriptor ); //vg_msg_wkvstr( &descriptor, "location", "USA" ); - // - vg_linear_clear( vg_mem.scratch ); - char *descriptor_str = vg_linear_alloc( vg_mem.scratch, - vg_align8(descriptor.cur*2+1) ); - vg_bin_str( descriptor_buf, descriptor_str, descriptor.cur ); - descriptor_str[descriptor.cur*2] = '\0'; - vg_info( "binstr: %s\n", descriptor_str ); + + 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'; + vg_info( "binstr: %s\n", short_descriptor_str ); vg_dir dir; if( !vg_dir_open( &dir, folder.buffer ) ){ @@ -402,7 +405,7 @@ VG_STATIC void _workshop_form_submit_thread( void *data ) stbi_flip_vertically_on_write(1); stbi_write_jpg( preview.buffer, w,h, 3, workshop_form.img_buffer, 90 ); - vg_async_call( workshop_form_async_submit_begin, descriptor_str, 0 ); + vg_async_call( workshop_form_async_submit_begin, short_descriptor_str, 0 ); } /* @@ -696,18 +699,16 @@ VG_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; - vg_msg_init( &root, metadata_buf, len/2 ); + vg_msg root = {0}; + root.buf = metadata_buf; + root.len = len/2; + root.max = len/2; vg_msg workshop = root; if( vg_msg_seekframe( &workshop, "workshop", k_vg_msg_first )){ - vg_msg_cmd kv_type = vg_msg_seekkv( &workshop, "type", - k_vg_msg_first ); - if( kv_type.code & k_vg_msg_code_integer ){ - u32 u = kv_type.value._u32; - workshop_form.submission.type = u; - workshop_form.submission.submission_type_selection.value = u; - } + u32 type = vg_msg_seekkvu32( &workshop, "type", k_vg_msg_first ); + workshop_form.submission.type = type; + workshop_form.submission.submission_type_selection.value = type; const char *kv_folder = vg_msg_seekkvstr( &workshop, "folder", k_vg_msg_first ); diff --git a/world.h b/world.h index a3f69a5..ddb82e1 100644 --- a/world.h +++ b/world.h @@ -34,8 +34,8 @@ typedef struct world_instance world_instance; /* console variables */ -static float k_day_length = 30.0f; /* minutes */ -static int k_debug_light_indices = 0, +static f32 k_day_length = 30.0f; /* minutes */ +static i32 k_debug_light_indices = 0, k_debug_light_complexity= 0, k_light_preview = 0;