add strip for hub switch to map
[carveJwlIkooP6JGAAIwe30JlM.git] / menu.h
1 #pragma once
2
3 #define MENU_STACK_SIZE 8
4
5 #include "vg/vg_engine.h"
6 #include "entity.h"
7
8 enum menu_page
9 {
10 k_menu_page_any,
11 k_menu_page_starter,
12 k_menu_page_premium,
13 k_menu_page_main
14 };
15
16 enum menu_main_subpage
17 {
18 k_menu_main_main = 0,
19 k_menu_main_map = 1
20 };
21
22 struct global_menu
23 {
24 int disable_open;
25 i32 skip_starter;
26 enum menu_page page;
27 i32 main_index;
28
29 enum menu_input_mode
30 {
31 k_menu_input_mode_keys,
32 k_menu_input_mode_mouse
33 }
34 input_mode;
35 f32 mouse_dist; /* used for waking up mouse */
36
37 f32 repeater;
38 }
39 extern menu;
40
41 void menu_init(void);
42 void menu_at_begin(void);
43 void menu_gui(void);
44 void menu_open( enum menu_page page );
45 bool menu_viewing_map(void);
46
47 #if 0
48 #define MENU_STACK_SIZE 8
49
50 #include "vg/vg_engine.h"
51 #include "entity.h"
52
53 struct global_menu
54 {
55 int credits_open;
56 int disable_open;
57 i32 skip_starter;
58
59 u32 page, /* current page index */
60 page_depth,
61 controls_page_id;
62
63 ent_menuitem *ctr_kbm,
64 *ctr_deck,
65 *ctr_ps,
66 *ctr_steam,
67 *ctr_xbox;
68 f32 slider_offset;
69
70 struct page_stack_frame {
71 u32 page;
72 ent_menuitem *loc;
73 ent_camera *cam;
74 }
75 page_stack[ MENU_STACK_SIZE ];
76
77 ent_menuitem *loc;
78 ent_camera *cam;
79 vg_camera view;
80
81 mdl_context model;
82 GLuint *textures;
83 glmesh mesh;
84
85 mdl_array_ptr items, markers, cameras;
86 }
87 extern menu;
88 void menu_close(void);
89 void menu_open_page( const char *name,
90 enum ent_menuitem_stack_behaviour stackmode );
91 void menu_link(void);
92 void menu_render(void);
93 #endif