#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_VIEW_SLOT_MAX 6
-#define SKATESHOP_REGISTRYID_NONE 0xffffffff
struct{
v3f look_target;
state;
struct player_board board;
- u32 registry_id;
+ u32 reg_index;
+ addon_reg *reg_ptr;
u32 ref_count;
double last_use_time;
}
shop_view_slots[ SKATESHOP_VIEW_SLOT_MAX ];
+#if 0
struct registry_board{
PublishedFileId_t workshop_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;
+ char foldername[64]; /* if workshop, string version of its published ID. */
+ u32 foldername_hash;
enum registry_board_state{
k_registry_board_state_none,
u32 t1_registry_count,
registry_count;
- u32 selected_registry_id;
- float interaction_cooldown;
+ /* 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;
}
static global_skateshop;
+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 );