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