5 #include "workshop_types.h"
6 #define ADDON_MOUNTED_MAX 128
7 #define ADDON_FOLDERNAME_MAX 64
9 typedef struct addon_reg addon_reg
;
12 PublishedFileId_t workshop_id
;
14 enum workshop_file_type type
;
15 u8 metadata
[512]; /* vg_msg buffer */
18 char foldername
[ ADDON_FOLDERNAME_MAX
];
24 k_addon_state_indexed
,
25 k_addon_state_indexed_absent
/* gone but not forgotten */
32 /* deffered: updates in main thread */
33 u32 registry_type_counts
[k_workshop_file_type_max
];
37 static void addon_system_init( void );
38 static u32
addon_count( enum workshop_file_type type
);
39 static addon_reg
*get_addon_from_index(enum workshop_file_type type
, u32 index
);
40 static u32
get_index_from_addon( enum workshop_file_type type
, addon_reg
*a
);
42 /* scanning routines */
43 VG_STATIC
void addon_mount_content_folder( enum workshop_file_type type
,
44 const char *base_folder
,
45 const char *content_ext
);
46 VG_STATIC
void addon_mount_workshop_items(void);
47 VG_STATIC
void async_addon_reg_update( void *data
, u32 size
);
48 VG_STATIC addon_reg
*addon_mount_local_addon( const char *folder
,
49 enum workshop_file_type type
,
50 const char *content_ext
);