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