basic php site
[carveJwlIkooP6JGAAIwe30JlM.git] / ent_skateshop.c
index 47d8de29333b9a6b4971f4ad3574ef2f5e45f8a3..08d32e82e265cccb351394a7fdb72050b4ca8d46 100644 (file)
@@ -232,13 +232,17 @@ VG_STATIC void skateshop_op_world_scan(void){
    vg_loader_start( world_scan_thread, NULL );
 }
 
+VG_STATIC void board_processview_thread( void *_args ){
+   workshop_visibile_load_loop();
+   skaterift_end_op();
+}
+
 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();
-   workshop_visibile_load_loop();
-   skaterift_end_op();
+   board_processview_thread(NULL);
 }
 
 VG_STATIC void skateshop_op_board_scan(void){
@@ -246,6 +250,11 @@ VG_STATIC void skateshop_op_board_scan(void){
    vg_loader_start( board_scan_thread, NULL );
 }
 
+VG_STATIC void skateshop_op_processview(void){
+   skaterift_begin_op( k_async_op_board_scan );
+   vg_loader_start( board_processview_thread, NULL );
+}
+
 /*
  * Regular stuff
  * -----------------------------------------------------------------------------
@@ -438,6 +447,8 @@ VG_STATIC void global_skateshop_preupdate(void)
        * ----------------------
        */
 
+      u32 opage = global_skateshop.selected_board_id/SKATESHOP_VIEW_SLOT_MAX;
+
       if( button_down( k_srbind_mleft ) ){
          if( global_skateshop.selected_board_id > 0 ){
             global_skateshop.selected_board_id --;
@@ -452,7 +463,13 @@ VG_STATIC void global_skateshop_preupdate(void)
          }
       }
 
-      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 );
 
@@ -702,6 +719,9 @@ fade_out:;
       if( vg_msg_seekframe( &workshop, "workshop", 0 ) ){
          const char *title = vg_msg_seekkvstr( &workshop, "title", 0 );
          if( title ) global_skateshop.render.item_title = title;
+
+         const char *dsc = vg_msg_seekkvstr( &workshop, "author", 0 );
+         if( dsc ) global_skateshop.render.item_desc = dsc;
       }
 
       global_skateshop.render.reg_id = global_skateshop.selected_board_id;
@@ -726,7 +746,8 @@ fade_out:;
     * ----------------------------------------------------------------- */
    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 );
    mlocal[3][0] *= scale*0.5f;
    mlocal[3][1] = 0.0f;
    mlocal[3][2] = 0.0f;