#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;
+#if 0
+ ent_skateshop *ptr_ent; /* TODO */
+ float factive; /* TODO */
+ camera cam;
+#endif
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;
-
- /* only for steam workshop files */
- //struct workshop_file_info workshop;
- struct cache_board *cache_ptr;
-
- char foldername[64]; /* if workshop, string version of its published ID. */
- u32 foldername_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;
-
- /* 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,
+ selected_player_id,
pointcloud_world_id;
+
+ struct {
+ const char *item_title, *item_desc;
+ u32 reg_id;
+
+ const char *world_title, *world_loc;
+ u32 world_reg;
+ }
+ 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 );
+VG_STATIC void ent_skateshop_preupdate( ent_skateshop *shop );
+VG_STATIC void skateshop_render( ent_skateshop *shop );
#endif /* ENT_SKATESHOP_H */