update build script
[carveJwlIkooP6JGAAIwe30JlM.git] / ent_skateshop.h
index 12cfd218e1b1675270673c552f262dba388c1c44..68a34f4f7980a2f7224ba07402d2b70ad97bb3db 100644 (file)
@@ -8,45 +8,20 @@
 #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;
-      
-      struct cache_board *left, *right;
-      /* double last_use_time; */
-   }
-   *cache, *cache_head, *cache_tail;
-
-   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 ];
 
    u32 selected_world_id,
        selected_board_id,
+       selected_player_id,
        pointcloud_world_id;
 
    struct {
@@ -57,12 +32,23 @@ struct{
       u32 world_reg;
    }
    render;
+
+   union {
+      struct gui_helper *helper_pick, *helper_toggle;
+   };
+
+   struct gui_helper *helper_browse;
+
+
+   addon_reg *reg_preview, *reg_loaded_preview;
+   GLuint tex_preview;
 }
-static global_skateshop={.render={.reg_id=0xffffffff,.world_reg=0xffffffff}};
+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 struct cache_board *lru_volatile_cache_board(void);
+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 */