X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=ent_skateshop.c;h=f471f42b1359c6309d5cd3f9840f08e3e120a0fc;hb=d5f400a06400d5322330cfdbb97a661707b3d150;hp=a4cfe22d526afb8cf1a20e9bd9c07468b6085fc6;hpb=22f62f001f21d1b91fefd9fc495c122d9ddf205a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/ent_skateshop.c b/ent_skateshop.c index a4cfe22..f471f42 100644 --- a/ent_skateshop.c +++ b/ent_skateshop.c @@ -15,6 +15,7 @@ #include "steam.h" #include "addon.h" #include "save.h" +#include "network.h" /* * Checks string equality but does a hash check first @@ -74,11 +75,30 @@ static void board_scan_thread( void *_args ){ board_processview_thread(NULL); } +/* TODO: migrate to addon.c */ static void skateshop_op_board_scan(void){ vg_loader_start( board_scan_thread, NULL ); } -static void skateshop_op_processview(void){ +/* TODO: migrate to addon.c */ +static void skateshop_autostart_loading(void){ + if( !vg_loader_availible() ) return; + + SDL_AtomicLock( &addon_system.sl_cache_using_resources ); + for( u32 type=0; typepool.count; id++ ){ + addon_cache_entry *entry = vg_pool_item( &cache->pool, id ); + if( entry->state == k_addon_cache_state_load_request ){ + SDL_AtomicUnlock( &addon_system.sl_cache_using_resources ); + goto launch; + } + } + } + SDL_AtomicUnlock( &addon_system.sl_cache_using_resources ); + return; +launch: vg_loader_start( board_processview_thread, NULL ); } @@ -232,7 +252,7 @@ static void ent_skateshop_preupdate( ent_skateshop *shop, int active ){ if( opage != npage ){ skateshop_update_viewpage(); - skateshop_op_processview(); + //skateshop_op_processview(); } else if( cache_id && button_down( k_srbind_maccept )){ vg_info( "chose board from skateshop (%u)\n", @@ -241,6 +261,7 @@ static void ent_skateshop_preupdate( ent_skateshop *shop, int active ){ addon_cache_unwatch( k_addon_type_board, localplayer.board_view_slot ); addon_cache_watch( k_addon_type_board, cache_id ); localplayer.board_view_slot = cache_id; + network_send_item( k_netmsg_playeritem_board ); world_entity_unfocus(); skaterift_autosave(1); @@ -282,10 +303,11 @@ static void ent_skateshop_preupdate( ent_skateshop *shop, int active ){ if( changed ){ player__use_model( global_skateshop.selected_player_id ); - skateshop_op_processview(); + //skateshop_op_processview(); } if( button_down( k_srbind_maccept ) ){ + network_send_item( k_netmsg_playeritem_player ); world_entity_unfocus(); } } @@ -308,8 +330,7 @@ static void ent_skateshop_preupdate( ent_skateshop *shop, int active ){ if( browseable ){ if( button_down( k_srbind_mleft ) ){ - if( global_skateshop.selected_world_id > 0 ) - { + if( global_skateshop.selected_world_id > 0 ){ global_skateshop.selected_world_id --; change = 1; } @@ -368,6 +389,9 @@ static void ent_skateshop_preupdate( ent_skateshop *shop, int active ){ } if( button_down( k_srbind_mback ) ){ + if( shop->type == k_skateshop_type_charshop ) + network_send_item( k_netmsg_playeritem_player ); + world_entity_unfocus(); return; }