X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=ent_skateshop.h;h=68a34f4f7980a2f7224ba07402d2b70ad97bb3db;hb=38514b4ba03412ad51df02dc2ba345e1be41005d;hp=ff11e62f84ff863230358d2eb0fe294b8e68a6c9;hpb=badfa88dd109bbae5628f58504402f4707569f73;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/ent_skateshop.h b/ent_skateshop.h index ff11e62..68a34f4 100644 --- a/ent_skateshop.h +++ b/ent_skateshop.h @@ -8,87 +8,47 @@ #include "workshop.h" #include "addon.h" -#define SKATESHOP_BOARD_CACHE_MAX 10 -#define SKATESHOP_VIEW_SLOT_MAX 6 +#define SKATESHOP_VIEW_SLOT_MAX 5 struct{ v3f look_target; - ent_skateshop *ptr_ent; - - int active; - float factive; - - struct cache_board{ - enum cache_board_state{ - k_cache_board_state_none, - k_cache_board_state_loaded, - k_cache_board_state_load_request - } - state; - - struct player_board board; - u32 reg_index; - addon_reg *reg_ptr; - - u32 ref_count; - double last_use_time; - } - *cache; - SDL_SpinLock sl_cache_access; struct shop_view_slot{ - struct cache_board *cache_ptr; + u16 cache_id; float view_blend; } shop_view_slots[ SKATESHOP_VIEW_SLOT_MAX ]; -#if 0 - struct registry_board{ - PublishedFileId_t workshop_id; + u32 selected_world_id, + selected_board_id, + selected_player_id, + pointcloud_world_id; - /* only for steam workshop files */ - //struct workshop_file_info workshop; - struct cache_board *cache_ptr; + struct { + const char *item_title, *item_desc; + u32 reg_id; - char foldername[64]; /* if workshop, string version of its published ID. */ - u32 foldername_hash; + const char *world_title, *world_loc; + u32 world_reg; + } + render; - enum registry_board_state{ - k_registry_board_state_none, - k_registry_board_state_indexed, - k_registry_board_state_indexed_absent /*was found but is now missing*/ - } - state; - } - *registry; - u32 t1_registry_count, - registry_count; + union { + struct gui_helper *helper_pick, *helper_toggle; + }; - /* worlds */ - struct registry_world{ - PublishedFileId_t workshop_id; - enum registry_board_state state; - char foldername[64]; - u32 foldername_hash; - enum world_load_type type; - -#if 0 - int meta_present; - ent_worldinfo info; -#endif - } - *world_registry; - u32 t1_world_registry_count, - world_registry_count; -#endif - u32 selected_world_id, - selected_board_id, - pointcloud_world_id; + struct gui_helper *helper_browse; + + + addon_reg *reg_preview, *reg_loaded_preview; + GLuint tex_preview; } -static global_skateshop; +static global_skateshop={ + .render={.reg_id=0xffffffff,.world_reg=0xffffffff} +}; -VG_STATIC void global_skateshop_exit(void); -VG_STATIC void watch_cache_board( struct cache_board *ptr ); -VG_STATIC void unwatch_cache_board( struct cache_board *ptr ); +static void ent_skateshop_preupdate( ent_skateshop *shop, int active ); +static void skateshop_render( ent_skateshop *shop ); +static void skateshop_render_nonfocused( world_instance *world, camera *cam ); #endif /* ENT_SKATESHOP_H */