X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=ent_skateshop.h;h=ceefc8bd74d08b231b225cfb52ecb65fd2c0274b;hb=70af79f5399777cdc69cc6939d29df694318ff8d;hp=f73b875d069004144d3123fd18a01fd97a3b9426;hpb=63b5ac44f74599b21c4b9b18398c29b797337bea;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/ent_skateshop.h b/ent_skateshop.h index f73b875..ceefc8b 100644 --- a/ent_skateshop.h +++ b/ent_skateshop.h @@ -2,15 +2,14 @@ #define ENT_SKATESHOP_H #include "world.h" +#include "world_load.h" #include "player.h" #include "vg/vg_steam_remote_storage.h" #include "workshop.h" +#include "addon.h" -#define SKATESHOP_REGISTRY_MAX 64 #define SKATESHOP_BOARD_CACHE_MAX 10 -#define SKATESHOP_WORLDS_MAX 32 #define SKATESHOP_VIEW_SLOT_MAX 6 -#define SKATESHOP_REGISTRYID_NONE 0xffffffff struct{ v3f look_target; @@ -28,7 +27,8 @@ struct{ state; struct player_board board; - u32 registry_id; + u32 reg_index; + addon_reg *reg_ptr; u32 ref_count; double last_use_time; @@ -42,45 +42,22 @@ struct{ } shop_view_slots[ SKATESHOP_VIEW_SLOT_MAX ]; - struct registry_board{ - PublishedFileId_t workshop_id; + u32 selected_world_id, + selected_board_id, + pointcloud_world_id; - /* only for steam workshop files */ - struct workshop_file_info workshop; - struct cache_board *cache_ptr; - - char filename[64]; /* if workshop, string version of its published ID. */ - u32 filename_hash; - - 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; - - u32 selected_registry_id; + struct { + const char *item_title, *item_desc; + u32 reg_id; - /* worlds */ - struct registry_world{ - enum registry_board_state state; - char foldername[64]; - u32 foldername_hash; - - int meta_present; - ent_worldinfo info; + const char *world_title, *world_loc; + u32 world_reg; } - *world_registry; - u32 t1_world_registry_count, - world_registry_count, - selected_world_id; + render; } -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 );