X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=ent_skateshop.h;h=2f8e3a64917bb885b2671b78573c6185ea31e466;hb=refs%2Fheads%2Fmenu2;hp=e7acd43255d456db1d2bb291431eafcba768ff58;hpb=f24a8cdd8ea6c3d762d26de2fc0700599bedbcad;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/ent_skateshop.h b/ent_skateshop.h index e7acd43..2f8e3a6 100644 --- a/ent_skateshop.h +++ b/ent_skateshop.h @@ -1,78 +1,54 @@ -#ifndef ENT_SKATESHOP_H -#define ENT_SKATESHOP_H - +#pragma once #include "world.h" +#include "world_load.h" #include "player.h" +#include "vg/vg_steam_remote_storage.h" +#include "workshop.h" +#include "addon.h" -#define MAX_LOCAL_BOARDS 64 -#define BILL_TIN_BOARDS 1 -#define MAX_DYNAMIC_BOARDS 9 +#define SKATESHOP_VIEW_SLOT_MAX 5 -struct{ +struct global_skateshop +{ v3f look_target; - ent_skateshop *ptr_ent; - - int active; - float factive; - - enum skateshop_loc{ - k_skateshop_loc_page__viewing, - - k_skateshop_loc_select_use, - k_skateshop_loc_select_cancel, - k_skateshop_loc_select_upload, - k_skateshop_loc_page__selected, - k_skateshop_loc_page__upload, + struct shop_view_slot{ + u16 cache_id; + float view_blend; } - interface_loc; - - struct dynamic_board - { - enum dynamic_board_state{ - k_dynamic_board_state_none, - k_dynamic_board_state_loaded, - k_dynamic_board_state_loading, - } - state; - - u32 ref_count; + shop_view_slots[ SKATESHOP_VIEW_SLOT_MAX ]; - struct player_board board; + u32 selected_world_id, + selected_board_id, + selected_player_id, + pointcloud_world_id; - u32 registry_id; + struct { + const char *item_title, *item_desc; + u32 reg_id; - double last_use_time; + const char *world_title, *world_loc; + u32 world_reg; } - *dynamic_boards; + render; - struct shop_view_slot - { - struct dynamic_board *db; - float view_blend; - } - shop_view_slots[6]; - - struct board_registry - { - int workshop; - u64 uid; + union { + struct gui_helper *helper_pick, *helper_toggle; + }; - struct dynamic_board *dynamic; + struct gui_helper *helper_browse; - char filename[64]; /* if workshop, string version of uid. */ - u32 filename_hash; - int ghost; - } - *registry; - u32 registry_count; - - int loading; - float interaction_cooldown; - - u32 selected_registry_id; + addon_reg *reg_preview, *reg_loaded_preview; + GLuint tex_preview; } -static global_skateshop; - -#endif /* ENT_SKATESHOP_H */ +extern global_skateshop; + +void skateshop_init(void); +void ent_skateshop_preupdate( ent_focus_context *ctx ); +void skateshop_render( ent_skateshop *shop ); +void skateshop_render_nonfocused( world_instance *world, vg_camera *cam ); +void skateshop_autostart_loading(void); +void skateshop_world_preupdate( world_instance *world ); +entity_call_result ent_skateshop_call( world_instance *world, ent_call *call ); +void skateshop_world_preview_preupdate(void);