+ SDL_AtomicUnlock( &addon_system.sl_cache_using_resources );
+}
+
+static void skateshop_render_charshop( ent_skateshop *shop ){
+}
+
+static void skateshop_render_worldshop( ent_skateshop *shop ){
+ world_instance *world = world_current_instance();
+
+ ent_marker *mark_display = mdl_arritm( &world->ent_marker,
+ mdl_entity_id_id(shop->worlds.id_display)),
+ *mark_info = mdl_arritm( &world->ent_marker,
+ mdl_entity_id_id(shop->boards.id_info));
+
+ if( global_skateshop.render.world_reg != global_skateshop.selected_world_id){
+ global_skateshop.render.world_title = "";
+
+ addon_reg *reg = get_addon_from_index( k_addon_type_world,
+ global_skateshop.selected_world_id );
+ 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,
+ "title", 0 );
+ }
+ global_skateshop.render.world_loc = vg_msg_seekkvstr(&root,"location",0);
+ global_skateshop.render.world_reg = global_skateshop.selected_world_id;
+ }
+
+ /* Text */
+ char buftext[128], bufsubtext[128];
+ vg_str info, subtext;
+ vg_strnull( &info, buftext, 128 );
+ vg_strnull( &subtext, bufsubtext, 128 );
+
+ if( addon_count(k_addon_type_world) ){
+ addon_reg *reg = get_addon_from_index( k_addon_type_world,
+ global_skateshop.selected_world_id );
+
+ info.i+=highscore_intl( info.buffer+info.i,
+ global_skateshop.selected_world_id+1, 3 );
+ info.buffer[info.i++] = '/';
+ info.i+=highscore_intl( info.buffer+info.i,
+ addon_count(k_addon_type_world), 3 );
+ info.buffer[info.i++] = ' ';
+ info.buffer[info.i] = '\0';
+
+ vg_strcat( &info, global_skateshop.render.world_title );
+ if( !vg_loader_availible() ){
+ vg_strcat( &subtext, "Loading..." );
+ }
+ else{
+ addon_reg *reg = get_addon_from_index( k_addon_type_world,
+ global_skateshop.selected_world_id );
+
+ if( reg->alias.workshop_id )
+ vg_strcat( &subtext, "(Workshop) " );
+
+ vg_strcat( &subtext, global_skateshop.render.world_loc );
+ }
+ }
+ else{
+ vg_strcat( &info, "No worlds installed" );
+ }
+
+
+ m4x3f mtext,mlocal,mtextmdl;
+ mdl_transform_m4x3( &mark_info->transform, mtext );
+
+ font3d_bind( &gui.font, k_font_shader_default, 0, NULL, &skaterift.cam );
+ shader_model_font_uColour( (v4f){1.0f,1.0f,1.0f,1.0f} );
+
+ float scale = 0.2f, thickness = 0.015f, scale1 = 0.08f;