VG_STATIC void board_scan_thread( void *_args ){
addon_mount_content_folder( k_workshop_file_type_board, "boards", ".mdl" );
addon_mount_workshop_items();
vg_async_call( async_addon_reg_update, NULL, 0 );
vg_async_stall();
VG_STATIC void board_scan_thread( void *_args ){
addon_mount_content_folder( k_workshop_file_type_board, "boards", ".mdl" );
addon_mount_workshop_items();
vg_async_call( async_addon_reg_update, NULL, 0 );
vg_async_stall();
if( button_down( k_srbind_mleft ) ){
if( global_skateshop.selected_board_id > 0 ){
global_skateshop.selected_board_id --;
if( button_down( k_srbind_mleft ) ){
if( global_skateshop.selected_board_id > 0 ){
global_skateshop.selected_board_id --;
- if( selected_cache && button_down( k_srbind_maccept ) ){
+ u32 npage = global_skateshop.selected_board_id/SKATESHOP_VIEW_SLOT_MAX;
+
+ if( opage != npage ){
+ skateshop_update_viewpage();
+ skateshop_op_processview();
+ }
+ else if( selected_cache && button_down( k_srbind_maccept ) ){
vg_info( "chose board from skateshop (%u)\n",
global_skateshop.selected_board_id );
vg_info( "chose board from skateshop (%u)\n",
global_skateshop.selected_board_id );
if( vg_msg_seekframe( &workshop, "workshop", 0 ) ){
const char *title = vg_msg_seekkvstr( &workshop, "title", 0 );
if( title ) global_skateshop.render.item_title = title;
if( vg_msg_seekframe( &workshop, "workshop", 0 ) ){
const char *title = vg_msg_seekkvstr( &workshop, "title", 0 );
if( title ) global_skateshop.render.item_title = title;
* ----------------------------------------------------------------- */
scale *= 0.4f;
m3x3_setdiagonalv3( mlocal, (v3f){ scale, scale, thickness } );
* ----------------------------------------------------------------- */
scale *= 0.4f;
m3x3_setdiagonalv3( mlocal, (v3f){ scale, scale, thickness } );
- mlocal[3][0] = -font3d_string_width( &gui.font, 0, "JA" );
+ mlocal[3][0] = -font3d_string_width( &gui.font, 0,
+ global_skateshop.render.item_desc );