0bbeb8d0e02cf7ddf09ef7bd1d33e42beca83dc6
[carveJwlIkooP6JGAAIwe30JlM.git] / ent_skateshop.h
1 #pragma once
2 #include "world.h"
3 #include "world_load.h"
4 #include "player.h"
5 #include "vg/vg_steam_remote_storage.h"
6 #include "workshop.h"
7 #include "addon.h"
8
9 #define SKATESHOP_VIEW_SLOT_MAX 5
10
11 struct global_skateshop
12 {
13 v3f look_target;
14
15 struct shop_view_slot{
16 u16 cache_id;
17 float view_blend;
18 }
19 shop_view_slots[ SKATESHOP_VIEW_SLOT_MAX ];
20
21 u32 selected_world_id,
22 selected_board_id,
23 selected_player_id,
24 pointcloud_world_id;
25
26 struct {
27 const char *item_title, *item_desc;
28 u32 reg_id;
29
30 const char *world_title, *world_loc;
31 u32 world_reg;
32 }
33 render;
34
35 union {
36 struct gui_helper *helper_pick, *helper_toggle;
37 };
38
39 struct gui_helper *helper_browse;
40
41
42 addon_reg *reg_preview, *reg_loaded_preview;
43 GLuint tex_preview;
44 }
45 extern global_skateshop;
46
47 void skateshop_init(void);
48 void ent_skateshop_preupdate( ent_skateshop *shop, int active );
49 void skateshop_render( ent_skateshop *shop );
50 void skateshop_render_nonfocused( world_instance *world, vg_camera *cam );
51 void skateshop_autostart_loading(void);
52 void skateshop_world_preupdate( world_instance *world );
53 void ent_skateshop_call( world_instance *world, ent_call *call );