upgrade to vg_msgv2
authorhgn <hgodden00@gmail.com>
Sun, 11 Jun 2023 16:53:26 +0000 (17:53 +0100)
committerhgn <hgodden00@gmail.com>
Sun, 11 Jun 2023 16:53:26 +0000 (17:53 +0100)
20 files changed:
addon.c
boards_src/skaterift_fract/addon.inf
boards_src/skaterift_licco/addon.inf
boards_src/skaterift_long/addon.inf
boards_src/skaterift_shark/addon.inf
boards_src/skaterift_spiral/addon.inf
boards_src/skaterift_striped/addon.inf
build.c
common.h
conf.h
ent_skateshop.c
player.c
player.h
player_common.c
render.h
save.h [new file with mode: 0644]
skaterift.c
skaterift.h
workshop.c
world.h

diff --git a/addon.c b/addon.c
index 504904fac98c26546869ecc633033924eb7ef42e..fde9f9d06750dfc0b86311b5c1b703c0dd08e05d 100644 (file)
--- 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;
 
index 745e9720f2e57c374968035cde7ad284f5f79a68..3c85c6491f9e6cddb621508075285c7f0d2082a0 100644 (file)
Binary files a/boards_src/skaterift_fract/addon.inf and b/boards_src/skaterift_fract/addon.inf differ
index f96a5992ec16d6e605e418835ace57fffbac63e6..0cb8f45de25e98fc7ff1325e42f2da1bccabb68f 100644 (file)
Binary files a/boards_src/skaterift_licco/addon.inf and b/boards_src/skaterift_licco/addon.inf differ
index 4e00fd3f7f201d87ec9befe5da172d1c65371518..daf6b76bb7157273648e119ac39cc30f6e956421 100644 (file)
Binary files a/boards_src/skaterift_long/addon.inf and b/boards_src/skaterift_long/addon.inf differ
index f9be7a0edea5da5e5c74c9feb9d7cf28419b73c8..7f8c3fccc96069678d6349fe5595bc6be8053899 100644 (file)
Binary files a/boards_src/skaterift_shark/addon.inf and b/boards_src/skaterift_shark/addon.inf differ
index fd1733b3c98c5d98f48685a6981accbccdbb438d..6cc3ef53049124b98d452759e0d4a1620278d8ad 100644 (file)
Binary files a/boards_src/skaterift_spiral/addon.inf and b/boards_src/skaterift_spiral/addon.inf differ
index 40dd0bff5a3d1c07193e072a8cbd1814d1118a50..2c2ba4e45d54888607c14aae2545697914e63e60 100644 (file)
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 558299bd955045231c2d6e6e0ca7a740d76c5529..3b82a01eaa4d9e669f9b3bb66f952db28fa20aba 100644 (file)
--- 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;
 }
index 7823e1a7e122141245eeacb20e6411e8cef0c410..6f0c2f966e705b17d908534f9a41f9829599bb2c 100644 (file)
--- 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 e00c42bc1ec4fb65bcc3440188f3dbdfa903f12c..f83d5bd858e112a4d88a9a81992ebf11c25e8a9b 100644 (file)
--- 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 */
index 7898f5877d33d7fe185c70a0124d915a0d69963f..99f9a7079d0ce6b6ead4021729f24f72a2d394ca 100644 (file)
@@ -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, 
index e000c513b5f140c4cc5e7167c2b148f8cf526aec..12d30e926dff0ae56be0571ef6e93f992056716b 100644 (file)
--- 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
index 3039bd7991284608ef949713b208dc0cb4de2f7a..1881705fbb46c9e27510c5d51f01d03fae7e8e3b 100644 (file)
--- a/player.h
+++ b/player.h
 #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 */
index b55187588a65b2c1a8c0afeb12dd544bf7450602..169cbf4ba5f7640b0708f7c7966e1a0bba0c5a12 100644 (file)
@@ -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; i<mdl_arrcount(&world->ent_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 );
index 6b956de3eb867a8d261057c95dbf5b34e9243ba3..751ca1ba54bb9f60e9847697548dcfd75409919e 100644 (file)
--- a/render.h
+++ b/render.h
 #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; i<vg_list_size(framebuffers); i++ ){
       struct framebuffer *fb = &framebuffers[i];
@@ -564,9 +565,6 @@ VG_STATIC void async_render_init( void *payload, u32 size )
 
    vg_console_reg_cmd( "fb", render_framebuffer_control, 
                              render_framebuffer_poll );
-   vg_console_reg_var( "render_scale", &gpipeline.view_render_scale,
-                       k_var_dtype_f32, VG_VAR_PERSISTENT );
-
    glGenVertexArrays( 1, &gpipeline.fsquad.vao );
    glGenBuffers( 1, &gpipeline.fsquad.vbo );
    glBindVertexArray( gpipeline.fsquad.vao );
@@ -585,6 +583,14 @@ VG_STATIC void async_render_init( void *payload, u32 size )
 
 VG_STATIC void render_init(void)
 {
+   vg_console_reg_var( "blur_strength", &k_blur_strength, k_var_dtype_f32, 0 );
+   vg_console_reg_var( "render_scale", &k_render_scale,
+                       k_var_dtype_f32, VG_VAR_PERSISTENT );
+   vg_console_reg_var( "fov", &k_fov, k_var_dtype_f32, VG_VAR_PERSISTENT );
+   vg_console_reg_var( "blur_effect", &k_blur_effect, 
+                        k_var_dtype_i32, VG_VAR_PERSISTENT );
+
+
    shader_blit_register();
    shader_blitblur_register();
    shader_blitcolour_register();
diff --git a/save.h b/save.h
new file mode 100644 (file)
index 0000000..945b729
--- /dev/null
+++ b/save.h
@@ -0,0 +1,6 @@
+#ifndef SAVE_H
+#define SAVE_H
+
+
+
+#endif /* SAVE_H */
index fe1c5bc23ce06aecd64540ecff2870a7bb3f398e..5c24b79e12681a1811284109778412f2e217bc69 100644 (file)
@@ -20,7 +20,7 @@
  *     system headers
  * --------------------- */
 
-#include "common.h"
+#include "skaterift.h"
 #include "conf.h"
 #include "steam.h"
 #include "render.h"
@@ -71,7 +71,7 @@ VG_STATIC void vg_launch_opt(void)
 
 VG_STATIC void vg_preload(void)
 {
-   g_conf_init();
+   conf_init();
 
 vg_info(" Copyright  .        . .       -----, ,----- ,---.   .---.  \n" );
 vg_info(" 2021-2023  |\\      /| |           /  |      |    | |    /| \n" );
@@ -107,7 +107,7 @@ VG_STATIC void load_playermodels(void)
 }
 
 void temp_update_playermodel(void){
-   player__use_model( &localplayer, &localplayer_models[cl_playermdl_id] );
+   player__use_model( &localplayer, &localplayer_models[k_playermdl_id] );
 }
 
 VG_STATIC void async_skaterift_complete( void *payload, u32 size )
@@ -145,7 +145,7 @@ VG_STATIC void vg_load(void)
    player__create( &localplayer );
    player_avatar_load( &localplayer_avatar, "models/ch_new.mdl" );
    player__use_avatar( &localplayer, &localplayer_avatar );
-   player__use_model( &localplayer, &localplayer_models[cl_playermdl_id] );
+   player__use_model( &localplayer, &localplayer_models[k_playermdl_id] );
    player__bind( &localplayer );
 
    /* --------------------- */
@@ -165,29 +165,37 @@ VG_STATIC void vg_load(void)
    /* Completing addon registrations
     * -------------------------------------
     */
-   vg_msg msg;
 
    /* understate diy. */
    addon_reg *spawn = addon_mount_local_addon( "maps/mp_spawn", 
                                                 k_workshop_file_type_world, 
                                                 ".mdl" );
-   vg_msg_init( &msg, spawn->metadata, 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 );
 
index a139476f8d3878ed8d5d30bb05c86e2217b0fecc..011985eff886a2552a991f629f411bfe73aff82d 100644 (file)
@@ -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"
index 8c24e03b308de083eabef432d6ae4f22cb3c1c35..1967e7503e2b4bbc5d95257d3bf8592d569bdd01 100644 (file)
@@ -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 a3f69a5dc5043dd9af02998f510d70bcd012a946..ddb82e1be7c2b0e7547e14eea9d3ee3f6d876a75 100644 (file)
--- 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;