Very slow work on new style slider
[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 k_menu_main_settings = 2
21 };
22
23 struct global_menu
24 {
25 int disable_open;
26 i32 skip_starter;
27 enum menu_page page;
28 i32 main_index,
29 main_row;
30
31 enum menu_input_mode
32 {
33 k_menu_input_mode_keys,
34 k_menu_input_mode_mouse
35 }
36 input_mode;
37 f32 mouse_dist; /* used for waking up mouse */
38
39 f32 repeater;
40 }
41 extern menu;
42
43 void menu_init(void);
44 void menu_at_begin(void);
45 void menu_gui(void);
46 void menu_open( enum menu_page page );
47 bool menu_viewing_map(void);
48
49 #if 0
50 #define MENU_STACK_SIZE 8
51
52 #include "vg/vg_engine.h"
53 #include "entity.h"
54
55 struct global_menu
56 {
57 int credits_open;
58 int disable_open;
59 i32 skip_starter;
60
61 u32 page, /* current page index */
62 page_depth,
63 controls_page_id;
64
65 ent_menuitem *ctr_kbm,
66 *ctr_deck,
67 *ctr_ps,
68 *ctr_steam,
69 *ctr_xbox;
70 f32 slider_offset;
71
72 struct page_stack_frame {
73 u32 page;
74 ent_menuitem *loc;
75 ent_camera *cam;
76 }
77 page_stack[ MENU_STACK_SIZE ];
78
79 ent_menuitem *loc;
80 ent_camera *cam;
81 vg_camera view;
82
83 mdl_context model;
84 GLuint *textures;
85 glmesh mesh;
86
87 mdl_array_ptr items, markers, cameras;
88 }
89 extern menu;
90 void menu_close(void);
91 void menu_open_page( const char *name,
92 enum ent_menuitem_stack_behaviour stackmode );
93 void menu_link(void);
94 void menu_render(void);
95 #endif