animation board tweaks
[carveJwlIkooP6JGAAIwe30JlM.git] / ent_skateshop.c
index 16225c7c9edf7b047f1819831553f60e591117a3..4c55bb939477117aac5c1cb36ae900aa50830ed9 100644 (file)
@@ -53,20 +53,17 @@ VG_STATIC void world_scan_thread( void *_args ){
    addon_mount_content_folder( k_addon_type_world, "maps", ".mdl" );
    addon_mount_workshop_items();
    vg_async_call( async_addon_reg_update, NULL, 0 );
-   skaterift_end_op();
 }
 
 /*
  * Asynchronous scan of local disk for worlds
  */
 VG_STATIC void skateshop_op_world_scan(void){
-   skaterift_begin_op( k_async_op_world_scan );
    vg_loader_start( world_scan_thread, NULL );
 }
 
 VG_STATIC void board_processview_thread( void *_args ){
    addon_cache_load_loop();
-   skaterift_end_op();
 }
 
 VG_STATIC void board_scan_thread( void *_args ){
@@ -78,12 +75,10 @@ VG_STATIC void board_scan_thread( void *_args ){
 }
 
 VG_STATIC void skateshop_op_board_scan(void){
-   skaterift_begin_op( k_async_op_board_scan );
    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 );
 }
 
@@ -158,12 +153,9 @@ VG_STATIC void skateshop_world_preview_loader_thread( void *_data )
 
 VG_STATIC void skateshop_world_preview_loader_thread_and_end( void *_data ){
    skateshop_world_preview_loader_thread( _data );
-   skaterift_end_op();
 }
 
-VG_STATIC void skateshop_load_world_preview( addon_reg *reg )
-{
-   skaterift_begin_op( k_async_op_world_load_preview );
+VG_STATIC void skateshop_load_world_preview( addon_reg *reg ){
    vg_loader_start( skateshop_world_preview_loader_thread_and_end, reg );
 }
 
@@ -216,7 +208,7 @@ VG_STATIC void global_skateshop_preupdate(void)
 
    /* input */
    if( shop->type == k_skateshop_type_boardshop ){
-      if( skaterift.async_op != k_async_op_none ) return;
+      if( !vg_loader_availible() ) return;
 
       gui_helper_action( axis_display_string( k_sraxis_mbrowse_h ), "browse" );
       gui_helper_action( button_display_string( k_srbind_mback ), "exit" );
@@ -266,7 +258,7 @@ VG_STATIC void global_skateshop_preupdate(void)
       }
    }
    else if( shop->type == k_skateshop_type_charshop ){
-      if( skaterift.async_op != k_async_op_none ) return;
+      if( !vg_loader_availible() ) return;
 
       gui_helper_action( axis_display_string( k_sraxis_mbrowse_h ), "browse" );
       gui_helper_action( button_display_string( k_srbind_mback ), "exit" );
@@ -311,15 +303,12 @@ VG_STATIC void global_skateshop_preupdate(void)
       int browseable = 0,
           loadable = 0;
 
-      if( addon_count(k_addon_type_world) &&
-            ((skaterift.async_op == k_async_op_none)||
-             (skaterift.async_op == k_async_op_world_load_preview))){
+      if( addon_count(k_addon_type_world) && vg_loader_availible() ){
          gui_helper_action( axis_display_string(k_sraxis_mbrowse_h), "browse" );
          browseable = 1;
       }
 
-      if( (skaterift.async_op == k_async_op_none) &&
-           global_skateshop.selected_world_id > 0 ){
+      if( vg_loader_availible() && global_skateshop.selected_world_id > 0 ){
          gui_helper_action( button_display_string(k_srbind_maccept), 
                             "open rift" );
          loadable = 1;
@@ -350,7 +339,7 @@ VG_STATIC void global_skateshop_preupdate(void)
          pointcloud_animate( k_pointcloud_anim_hiding );
       }
 
-      if( skaterift.async_op == k_async_op_none ){
+      if( vg_loader_availible() ){
          addon_reg *reg = get_addon_from_index( k_addon_type_world,
             global_skateshop.selected_world_id );
 
@@ -443,9 +432,11 @@ VG_STATIC void skateshop_render_boardshop(void)
       q_nlerp( xform.q, mark_display->transform.q, t, xform.q );
       v3_lerp( xform.s, mark_display->transform.s, t, xform.s );
 
+      struct board_pose pose = {0};
       m4x3f mmdl;
       mdl_transform_m4x3( &xform, mmdl );
-      render_board( &main_camera, world, board, mmdl, k_board_shader_entity );
+      render_board( &main_camera, world, board, mmdl, 
+                    &pose, k_board_shader_entity );
 
 fade_out:;
       float rate = 5.0f*vg.time_delta;
@@ -610,8 +601,7 @@ VG_STATIC void skateshop_render_worldshop(void)
       info.buffer[info.i] = '\0';
 
       vg_strcat( &info, global_skateshop.render.world_title );
-      if( skaterift.async_op == k_async_op_world_loading ||
-          skaterift.async_op == k_async_op_world_preloading ){
+      if( !vg_loader_availible() ){
          vg_strcat( &subtext, "Loading..." );
       }
       else{
@@ -698,7 +688,7 @@ VG_STATIC void ent_skateshop_call( world_instance *world, ent_call *call )
    vg_info( "skateshop_call\n" );
 
    if( menu.active ) return;
-   if( skaterift.async_op != k_async_op_none ) return;
+   if( !vg_loader_availible() ) return;
 
    if( call->function == k_ent_function_trigger ){
       if( localplayer.subsystem != k_player_subsystem_walk ){