X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=1d7113265d590f539274dee6357ff25cc4652d32;hb=f2e2b3c37719f839bc130625ee0fcf4ef3179750;hp=5b69d566664d31bcbfb8dc84cc5854031b475d9a;hpb=603805f69c5484316a52ee099d03254c5a1096f3;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index 5b69d56..1d71132 100644 --- a/skaterift.c +++ b/skaterift.c @@ -55,6 +55,7 @@ #include "respawn.c" #include "network.c" #include "player_remote.c" +#include "vg/vg_audio_dsp.h" static struct player_avatar localplayer_avatar; @@ -136,27 +137,25 @@ static void skaterift_restore_state(void){ strcpy( sav.path, str_skaterift_main_save ); savedata_file_read( &sav ); - vg_msg kvsav = {0}; - kvsav.buf = sav.buf; - kvsav.len = sav.len; - kvsav.max = sizeof(sav.buf); + vg_msg kvsav; + vg_msg_init( &kvsav, sav.buf, sizeof(sav.buf) ); u32 board_reg_id = 0, player_reg_id = 0; - vg_msg player = kvsav; - if( vg_msg_seekframe( &player, "player", 0 ) ){ + vg_msg_cursor orig = kvsav.cur; + + if( vg_msg_seekframe( &kvsav, "player" ) ){ addon_alias q; /* board */ - skaterift_read_addon_alias( &player, "board", k_addon_type_board, &q ); + skaterift_read_addon_alias( &kvsav, "board", k_addon_type_board, &q ); u32 reg_id = addon_match( &q ); if( reg_id != 0xffffffff ) board_reg_id = reg_id; - /* playermodel */ - skaterift_read_addon_alias( &player, "playermodel", + skaterift_read_addon_alias( &kvsav, "playermodel", k_addon_type_player, &q ); reg_id = addon_match( &q ); if( reg_id != 0xffffffff ) @@ -168,12 +167,12 @@ static void skaterift_restore_state(void){ localplayer.playermodel_view_slot = addon_cache_create_viewer( k_addon_type_player, player_reg_id ); - vg_msg world = kvsav; - if( vg_msg_seekframe( &world, "world", 0 ) ){ + kvsav.cur = orig; + if( vg_msg_seekframe( &kvsav, "world" ) ){ addon_alias q; /* world */ - skaterift_read_addon_alias( &world, "alias", k_addon_type_world, &q ); + skaterift_read_addon_alias( &kvsav, "alias", k_addon_type_world, &q ); u32 reg_id = addon_match( &q ); if( reg_id != 0xffffffff ){ addon_reg *reg = get_addon_from_index( k_addon_type_world, reg_id ); @@ -185,14 +184,13 @@ static void skaterift_restore_state(void){ }; skaterift_world_load_thread( &args ); - world_set_active_instance( vg_msg_seekkvu32( &world, "index", 0 ) ); + world_set_active_instance( vg_msg_getkvu32( &kvsav, "index", 0 ) ); world_static.active_trigger_volume_count = 0; localplayer.viewable_world = world_current_instance(); } - vg_msg_cmd position = vg_msg_seekkv( &world, "position", 0 ); v3f pos; - vg_msg_convert_num( &position, k_vg_msg_float|k_vg_msg_32b, 3, pos ); + vg_msg_getkvv3f( &kvsav, "position", pos, (v3f){0.0f,0.0f,0.0f} ); if( v3_length2(pos) > 1.0f ) player__setpos( pos ); @@ -255,14 +253,13 @@ static void vg_load(void){ k_addon_type_world, ".mdl" ); { - vg_msg msg = {0}; - msg.buf = spawn->metadata; - msg.max = sizeof(spawn->metadata); + vg_msg msg; + 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; + spawn->metadata_len = msg.cur.co; } /* mtzero island */ @@ -270,14 +267,13 @@ static void vg_load(void){ k_addon_type_world, ".mdl" ); { - vg_msg msg = {0}; - msg.buf = mtzero->metadata; - msg.max = sizeof(mtzero->metadata); + vg_msg msg; + vg_msg_init( &msg, spawn->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; + mtzero->metadata_len = msg.cur.co; } /* load home/permanent world manually */